diff --git a/CMakeLists.txt b/CMakeLists.txt index d067d4119..ba30d50de 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -522,9 +522,7 @@ if(WIN32) resources/binaries/windows/deployment/qt4-msvc2010/QtWebKit4.dll resources/binaries/windows/deployment/qt4-msvc2010/QtXml4.dll resources/binaries/windows/deployment/qt4-msvc2010/ssleay32.dll - resources/binaries/windows/deployment/qt4-msvc2010/libintl.dll resources/binaries/windows/deployment/qt4-msvc2010/libmysql.dll - resources/binaries/windows/deployment/qt4-msvc2010/libpq.dll ) set(APP_DLLS_QT4_MSVC2010_IMAGEFORMATS @@ -540,7 +538,6 @@ if(WIN32) set(APP_DLLS_QT4_MSVC2010_SQLDRIVERS resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlite4.dll resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlmysql4.dll - resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlpsql4.dll ) endif(WIN32) diff --git a/resources/binaries/windows/deployment/qt4-msvc2010/libintl.dll b/resources/binaries/windows/deployment/qt4-msvc2010/libintl.dll deleted file mode 100644 index 12f25af97..000000000 Binary files a/resources/binaries/windows/deployment/qt4-msvc2010/libintl.dll and /dev/null differ diff --git a/resources/binaries/windows/deployment/qt4-msvc2010/libpq.dll b/resources/binaries/windows/deployment/qt4-msvc2010/libpq.dll deleted file mode 100644 index 192b8e92a..000000000 Binary files a/resources/binaries/windows/deployment/qt4-msvc2010/libpq.dll and /dev/null differ diff --git a/resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlpsql4.dll b/resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlpsql4.dll deleted file mode 100644 index ddcb00190..000000000 Binary files a/resources/binaries/windows/deployment/qt4-msvc2010/sqldrivers/qsqlpsql4.dll and /dev/null differ diff --git a/resources/misc/db_init_postgresql.sql b/resources/misc/db_init_postgresql.sql deleted file mode 100644 index f2aacc33a..000000000 --- a/resources/misc/db_init_postgresql.sql +++ /dev/null @@ -1,85 +0,0 @@ -DROP DATABASE IF EXISTS rssguard; --- ! -CREATE DATABASE IF NOT EXISTS rssguard CHARACTER SET utf8 COLLATE utf8_general_ci; --- ! -USE rssguard; --- ! -DROP TABLE IF EXISTS Information; --- ! -CREATE TABLE IF NOT EXISTS Information ( - id INTEGER AUTO_INCREMENT PRIMARY KEY, - inf_key TEXT NOT NULL, - inf_value TEXT NOT NULL -); --- ! -INSERT INTO Information VALUES (1, 'schema_version', '0.0.1'); --- ! -DROP TABLE IF EXISTS Categories; --- ! -CREATE TABLE IF NOT EXISTS Categories ( - id INTEGER AUTO_INCREMENT PRIMARY KEY, - parent_id INTEGER NOT NULL, - title VARCHAR(100) NOT NULL UNIQUE CHECK (title != ''), - description TEXT, - date_created BIGINT NOT NULL CHECK (date_created != 0), - icon BLOB -); --- ! -DROP TABLE IF EXISTS Feeds; --- ! -CREATE TABLE IF NOT EXISTS Feeds ( - id INTEGER AUTO_INCREMENT PRIMARY KEY, - title TEXT NOT NULL CHECK (title != ''), - description TEXT, - date_created BIGINT NOT NULL CHECK (date_created != 0), - icon BLOB, - category INTEGER NOT NULL CHECK (category >= -1), - encoding TEXT NOT NULL CHECK (encoding != ''), - url VARCHAR(100) NOT NULL UNIQUE CHECK (url != ''), - protected INTEGER(1) NOT NULL CHECK (protected >= 0 AND protected <= 1), - username TEXT, - password TEXT, - update_type INTEGER(1) NOT NULL CHECK (update_type >= 0), - update_interval INTEGER NOT NULL DEFAULT 15 CHECK (update_interval >= 5), - type INTEGER NOT NULL CHECK (type >= 0) -); --- ! -DROP TABLE IF EXISTS FeedsData; --- ! -CREATE TABLE IF NOT EXISTS FeedsData ( - feed_id INTEGER NOT NULL, - feed_key VARCHAR(100) NOT NULL, - feed_value TEXT, - - PRIMARY KEY (feed_id, feed_key), - FOREIGN KEY (feed_id) REFERENCES Feeds (id) -); --- ! -DROP TABLE IF EXISTS Messages; --- ! -CREATE TABLE IF NOT EXISTS Messages ( - id INTEGER AUTO_INCREMENT PRIMARY KEY, - is_read INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_read >= 0 AND is_read <= 1), - is_deleted INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_deleted >= 0 AND is_deleted <= 1), - is_important INTEGER(1) NOT NULL DEFAULT 0 CHECK (is_important >= 0 AND is_important <= 1), - feed INTEGER NOT NULL, - title TEXT NOT NULL CHECK (title != ''), - url TEXT NOT NULL, - author TEXT NOT NULL, - date_created BIGINT NOT NULL CHECK (date_created != 0), - contents TEXT, - - FOREIGN KEY (feed) REFERENCES Feeds (id) -); --- ! -INSERT INTO Categories (id, parent_id, title, description, date_created, icon) VALUES (1, -1, 'Linux', 'Collections of GNU/Linux-related feeds.', 1388678961000, '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'); --- ! -INSERT INTO Categories (id, parent_id, title, description, date_created, icon) VALUES (2, -1, 'RSS Guard', 'News and updates on RSS Guard.', 1388678961000, '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'); --- ! -INSERT INTO Feeds (title, description, date_created, category, encoding, url, protected, update_type, type) VALUES ('Linux Today', 'Linux Today - Linux News on Internet Time.', 1388678961000, 1, 'UTF-8', 'http://feeds.feedburner.com/linuxtoday/linux?format=xml', 0, 1, 1); --- ! -INSERT INTO Feeds (title, description, date_created, category, encoding, url, protected, update_type, type) VALUES ('LinuxInsider', 'LinuxInsider: Linux News & Information from Around the World.', 1388678961000, 1, 'UTF-8', 'http://www.linuxinsider.com/perl/syndication/rssfull.pl', 0, 1, 1); --- ! -INSERT INTO Feeds (title, description, date_created, category, encoding, url, protected, update_type, type) VALUES ('LXer: Linux News', 'The world is talking about GNU/Linux and Free/Open Source Software.', 1388678961000, 1, 'UTF-8', 'http://lxer.com/module/newswire/headlines.rss', 0, 1, 2); --- ! -INSERT INTO Feeds (title, description, date_created, category, encoding, url, protected, update_type, update_interval, type) VALUES ('Recent Commits', 'Recent commits for RSS Guard project.', 1388678961000, 2, 'UTF-8', 'http://bitbucket.org/skunkos/rssguard/rss', 0, 2, 30, 1); \ No newline at end of file diff --git a/src/definitions/definitions.h.in b/src/definitions/definitions.h.in index 1febad631..f9e056b23 100755 --- a/src/definitions/definitions.h.in +++ b/src/definitions/definitions.h.in @@ -67,12 +67,6 @@ #define FILTER_WIDTH 150 #define FILTER_RIGHT_MARGIN 5 -#define APP_DB_PSQL_DRIVER "QPSQL" -#define APP_DB_PSQL_PORT 5432 -#define APP_DB_PSQL_FALLBACK_DB "postgres" -#define APP_DB_PSQL_INIT "db_init_postgresql.sql" -#define APP_DB_PSQL_TEST "PostgreSQLTest" - #define APP_DB_MYSQL_DRIVER "QMYSQL" #define APP_DB_MYSQL_INIT "db_init_mysql.sql" #define APP_DB_MYSQL_TEST "MySQLTest" diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp index ef11dcb33..1f2acc3eb 100755 --- a/src/gui/formsettings.cpp +++ b/src/gui/formsettings.cpp @@ -106,36 +106,22 @@ FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_ui(new Ui::Form #endif // Establish needed connections. - connect(m_ui->m_buttonBox, SIGNAL(accepted()), - this, SLOT(saveSettings())); - connect(m_ui->m_cmbProxyType, SIGNAL(currentIndexChanged(int)), - this, SLOT(onProxyTypeChanged(int))); - connect(m_ui->m_checkShowPassword, SIGNAL(stateChanged(int)), - this, SLOT(displayProxyPassword(int))); - connect(m_ui->m_treeSkins, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), - this, SLOT(onSkinSelected(QTreeWidgetItem*,QTreeWidgetItem*))); - connect(m_ui->m_cmbExternalBrowserPreset, SIGNAL(currentIndexChanged(int)), - this, SLOT(changeDefaultBrowserArguments(int))); - connect(m_ui->m_btnExternalBrowserExecutable, SIGNAL(clicked()), - this, SLOT(selectBrowserExecutable())); - connect(m_ui->m_txtMysqlUsername->lineEdit(), SIGNAL(textChanged(QString)), - this, SLOT(onMysqlUsernameChanged(QString))); - connect(m_ui->m_txtMysqlHostname->lineEdit(), SIGNAL(textChanged(QString)), - this, SLOT(onMysqlHostnameChanged(QString))); - connect(m_ui->m_txtMysqlPassword->lineEdit(), SIGNAL(textChanged(QString)), - this, SLOT(onMysqlPasswordChanged(QString))); - connect(m_ui->m_btnMysqlTestSetup, SIGNAL(clicked()), - this, SLOT(mysqlTestConnection())); - connect(m_ui->m_spinMysqlPort, SIGNAL(editingFinished()), - this, SLOT(onMysqlDataStorageEdited())); - connect(m_ui->m_txtMysqlHostname->lineEdit(), SIGNAL(textEdited(QString)), - this, SLOT(onMysqlDataStorageEdited())); - connect(m_ui->m_txtMysqlPassword->lineEdit(), SIGNAL(textEdited(QString)), - this, SLOT(onMysqlDataStorageEdited())); - connect(m_ui->m_txtMysqlUsername->lineEdit(), SIGNAL(textEdited(QString)), - this, SLOT(onMysqlDataStorageEdited())); - connect(m_ui->m_cmbSelectToolBar, SIGNAL(currentIndexChanged(int)), - m_ui->m_stackedToolbars, SLOT(setCurrentIndex(int))); + connect(m_ui->m_buttonBox, SIGNAL(accepted()), this, SLOT(saveSettings())); + connect(m_ui->m_cmbProxyType, SIGNAL(currentIndexChanged(int)), this, SLOT(onProxyTypeChanged(int))); + connect(m_ui->m_checkShowPassword, SIGNAL(stateChanged(int)), this, SLOT(displayProxyPassword(int))); + connect(m_ui->m_treeSkins, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(onSkinSelected(QTreeWidgetItem*,QTreeWidgetItem*))); + connect(m_ui->m_cmbExternalBrowserPreset, SIGNAL(currentIndexChanged(int)), this, SLOT(changeDefaultBrowserArguments(int))); + connect(m_ui->m_btnExternalBrowserExecutable, SIGNAL(clicked()), this, SLOT(selectBrowserExecutable())); + connect(m_ui->m_txtMysqlUsername->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onMysqlUsernameChanged(QString))); + connect(m_ui->m_txtMysqlHostname->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onMysqlHostnameChanged(QString))); + connect(m_ui->m_txtMysqlPassword->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onMysqlPasswordChanged(QString))); + connect(m_ui->m_btnMysqlTestSetup, SIGNAL(clicked()), this, SLOT(mysqlTestConnection())); + connect(m_ui->m_spinMysqlPort, SIGNAL(editingFinished()), this, SLOT(onMysqlDataStorageEdited())); + connect(m_ui->m_txtMysqlHostname->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(onMysqlDataStorageEdited())); + connect(m_ui->m_txtMysqlPassword->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(onMysqlDataStorageEdited())); + connect(m_ui->m_txtMysqlUsername->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(onMysqlDataStorageEdited())); + connect(m_ui->m_cmbSelectToolBar, SIGNAL(currentIndexChanged(int)), m_ui->m_stackedToolbars, SLOT(setCurrentIndex(int))); + connect(m_ui->m_cmbDatabaseDriver, SIGNAL(currentIndexChanged(int)), this, SLOT(selectSqlBackend(int))); // Load all settings. loadGeneral(); @@ -446,17 +432,12 @@ void FormSettings::saveShortcuts() { } void FormSettings::loadDataStorage() { - onMysqlHostnameChanged(QString()); - onMysqlUsernameChanged(QString()); - onMysqlPasswordChanged(QString()); - m_ui->m_lblMysqlTestResult->setStatus(WidgetWithStatus::Information, tr("No connection test triggered so far."), tr("You did not executed any connection test yet.")); // Load SQLite. - m_ui->m_cmbDatabaseDriver->addItem( - tr("SQLite (embedded database)"), APP_DB_SQLITE_DRIVER); + m_ui->m_cmbDatabaseDriver->addItem(tr("SQLite (embedded database)"), APP_DB_SQLITE_DRIVER); // Load in-memory database status. Settings *settings = qApp->settings(); @@ -464,6 +445,10 @@ void FormSettings::loadDataStorage() { m_ui->m_checkSqliteUseInMemoryDatabase->setChecked(settings->value(APP_CFG_DB, "use_in_memory_db", false).toBool()); if (QSqlDatabase::isDriverAvailable(APP_DB_MYSQL_DRIVER)) { + onMysqlHostnameChanged(QString()); + onMysqlUsernameChanged(QString()); + onMysqlPasswordChanged(QString()); + // Load MySQL. m_ui->m_cmbDatabaseDriver->addItem(tr("MySQL/MariaDB (dedicated database)"), APP_DB_MYSQL_DRIVER); @@ -478,8 +463,7 @@ void FormSettings::loadDataStorage() { m_ui->m_spinMysqlPort->setValue(settings->value(APP_CFG_DB, "mysql_port", APP_DB_MYSQL_PORT).toInt()); } - int index_current_backend = m_ui->m_cmbDatabaseDriver->findData(settings->value(APP_CFG_DB, - "database_driver", + int index_current_backend = m_ui->m_cmbDatabaseDriver->findData(settings->value(APP_CFG_DB, "database_driver", APP_DB_SQLITE_DRIVER).toString()); if (index_current_backend >= 0) { @@ -516,7 +500,7 @@ void FormSettings::saveDataStorage() { settings->setValue(APP_CFG_DB, "database_driver", selected_db_driver); if (original_db_driver != selected_db_driver || - m_initialSettings.m_mysqlDataStorageChanged) { + m_initialSettings.m_dataStorageDataChanged) { m_changedDataTexts.append(tr("data storage backend changed")); } } @@ -540,8 +524,6 @@ void FormSettings::mysqlTestConnection() { interpretation, interpretation); break; - - } } @@ -579,7 +561,21 @@ void FormSettings::onMysqlPasswordChanged(const QString &new_password) { } void FormSettings::onMysqlDataStorageEdited() { - m_initialSettings.m_mysqlDataStorageChanged = true; + m_initialSettings.m_dataStorageDataChanged = true; +} + +void FormSettings::selectSqlBackend(int index) { + QString selected_db_driver = m_ui->m_cmbDatabaseDriver->itemData(index).toString(); + + if (selected_db_driver == APP_DB_SQLITE_DRIVER) { + m_ui->m_stackedDatabaseDriver->setCurrentIndex(0); + } + else if (selected_db_driver == APP_DB_MYSQL_DRIVER) { + m_ui->m_stackedDatabaseDriver->setCurrentIndex(1); + } + else { + qWarning("GUI for given database driver '%s' is not available.", qPrintable(selected_db_driver)); + } } void FormSettings::loadGeneral() { diff --git a/src/gui/formsettings.h b/src/gui/formsettings.h index 47c9ab2b6..f49d8747f 100644 --- a/src/gui/formsettings.h +++ b/src/gui/formsettings.h @@ -31,10 +31,10 @@ namespace Ui { struct TemporarySettings { public: - TemporarySettings() : m_mysqlDataStorageChanged(false) { + TemporarySettings() : m_dataStorageDataChanged(false) { } - bool m_mysqlDataStorageChanged; + bool m_dataStorageDataChanged; }; class FormSettings : public QDialog { @@ -70,6 +70,7 @@ class FormSettings : public QDialog { void onMysqlUsernameChanged(const QString &new_username); void onMysqlPasswordChanged(const QString &new_password); void onMysqlDataStorageEdited(); + void selectSqlBackend(int index); void loadLanguage(); void saveLanguage(); diff --git a/src/gui/formsettings.ui b/src/gui/formsettings.ui index 099ad5438..98aa1c664 100644 --- a/src/gui/formsettings.ui +++ b/src/gui/formsettings.ui @@ -17,11 +17,20 @@ - 0 + 1 - + + 0 + + + 0 + + + 0 + + 0 @@ -35,7 +44,19 @@ - + + QFormLayout::AllNonFixedFieldsGrow + + + 0 + + + 0 + + + 0 + + 0 @@ -64,14 +85,23 @@ - 0 + 1 QFormLayout::AllNonFixedFieldsGrow - + + 0 + + + 0 + + + 0 + + 0 @@ -111,7 +141,19 @@ Authors of this application are NOT responsible for lost data. - + + QFormLayout::AllNonFixedFieldsGrow + + + 0 + + + 0 + + + 0 + + 0 @@ -225,7 +267,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -241,12 +292,21 @@ Authors of this application are NOT responsible for lost data. 0 0 - 588 - 390 + 100 + 30 - + + 0 + + + 0 + + + 0 + + 0 @@ -260,7 +320,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -276,7 +345,16 @@ Authors of this application are NOT responsible for lost data. Icons && skins - + + 0 + + + 0 + + + 0 + + 0 @@ -292,8 +370,8 @@ Authors of this application are NOT responsible for lost data. 0 0 - 580 - 361 + 167 + 219 @@ -533,7 +611,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -543,7 +630,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -575,7 +671,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -604,7 +709,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -923,7 +1037,16 @@ Authors of this application are NOT responsible for lost data. - + + 0 + + + 0 + + + 0 + + 0 @@ -1230,22 +1353,6 @@ Authors of this application are NOT responsible for lost data. - - m_cmbDatabaseDriver - currentIndexChanged(int) - m_stackedDatabaseDriver - setCurrentIndex(int) - - - 558 - 50 - - - 516 - 154 - - - m_radioTrayOn toggled(bool) diff --git a/src/miscellaneous/databasefactory.cpp b/src/miscellaneous/databasefactory.cpp index 6c7fc666f..e0a1b740c 100755 --- a/src/miscellaneous/databasefactory.cpp +++ b/src/miscellaneous/databasefactory.cpp @@ -28,7 +28,6 @@ DatabaseFactory::DatabaseFactory(QObject *parent) : QObject(parent), m_mysqlDatabaseInitialized(false), - m_postgresqlDatabaseInitialized(false), m_sqliteFileBasedDatabaseinitialized(false), m_sqliteInMemoryDatabaseInitialized(false) { setObjectName("DatabaseFactory"); @@ -280,9 +279,6 @@ QSqlDatabase DatabaseFactory::connection(const QString &connection_name, case MYSQL: return mysqlConnection(connection_name); - case POSTGRESQL: - return postgresqlConnection(connection_name); - case SQLITE: case SQLITE_MEMORY: default: @@ -460,63 +456,6 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_ return database; } -QSqlDatabase DatabaseFactory::postgresqlConnection(const QString& connection_name) { - if (!m_postgresqlDatabaseInitialized) { - // Return initialized database. - return postgresqlInitializeDatabase(connection_name); - } - else { - QSqlDatabase database; - - if (QSqlDatabase::contains(connection_name)) { - qDebug("PostgreSQL connection '%s' is already active.", - qPrintable(connection_name)); - - // This database connection was added previously, no need to - // setup its properties. - database = QSqlDatabase::database(connection_name); - } - else { - // Database connection with this name does not exist - // yet, add it and set it up. - database = QSqlDatabase::addDatabase(APP_DB_PSQL_DRIVER, connection_name); - - database.setHostName(qApp->settings()->value(APP_CFG_DB, "postgresql_hostname").toString()); - database.setPort(qApp->settings()->value(APP_CFG_DB, "postgresql_port", APP_DB_PSQL_PORT).toInt()); - database.setUserName(qApp->settings()->value(APP_CFG_DB, "postgresql_username").toString()); - database.setPassword(qApp->settings()->value(APP_CFG_DB, "postgresql_password").toString()); - database.setDatabaseName(APP_LOW_NAME); - } - - if (!database.isOpen() && !database.open()) { - qFatal("MySQL database was NOT opened. Delivered error message: '%s'.", - qPrintable(database.lastError().text())); - } - else { - qDebug("MySQL database connection '%s' to file '%s' seems to be established.", - qPrintable(connection_name), - qPrintable(QDir::toNativeSeparators(database.databaseName()))); - } - - return database; - } -} - -QSqlDatabase DatabaseFactory::postgresqlInitializeDatabase(const QString& connection_name) { - // Try to connect to "rssguard" database. - // If connection fails due to rssguard db does not exist - // then join to fallback database and create "rssguard" database - // the rejoin to rssguard database and create needed schema. - return QSqlDatabase(); -} - -bool DatabaseFactory::postgresqlVacuumDatabase() { - QSqlDatabase database = postgresqlConnection(objectName()); - QSqlQuery query_vacuum(database); - - return query_vacuum.exec("VACUUM;"); -} - QSqlDatabase DatabaseFactory::sqliteConnection(const QString &connection_name, DatabaseFactory::DesiredType desired_type) { if (desired_type == DatabaseFactory::StrictlyInMemory || @@ -611,9 +550,6 @@ bool DatabaseFactory::vacuumDatabase() { case SQLITE: return sqliteVacuumDatabase(); - case POSTGRESQL: - return postgresqlVacuumDatabase(); - case MYSQL: default: return false; diff --git a/src/miscellaneous/databasefactory.h b/src/miscellaneous/databasefactory.h index fc2156d86..901300464 100755 --- a/src/miscellaneous/databasefactory.h +++ b/src/miscellaneous/databasefactory.h @@ -30,8 +30,7 @@ class DatabaseFactory : public QObject { enum UsedDriver { SQLITE, SQLITE_MEMORY, - MYSQL, - POSTGRESQL + MYSQL }; // Describes what type of database user wants. @@ -82,8 +81,7 @@ class DatabaseFactory : public QObject { // Tests if database connection with given data // can be established and returns 0 if it can. // Otherwise returns MySQL-specific error code. - MySQLError mysqlTestConnection(const QString &hostname, int port, - const QString &username, const QString &password); + MySQLError mysqlTestConnection(const QString &hostname, int port, const QString &username, const QString &password); QString mysqlInterpretErrorCode(MySQLError error_code); @@ -113,16 +111,6 @@ class DatabaseFactory : public QObject { // otherwise false. bool m_mysqlDatabaseInitialized; - // - // POSTGRESQL stuff. - // - - QSqlDatabase postgresqlConnection(const QString &connection_name); - QSqlDatabase postgresqlInitializeDatabase(const QString &connection_name); - bool postgresqlVacuumDatabase(); - bool m_postgresqlDatabaseInitialized; - - // // SQLITE stuff. //