diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp index 7bf4c9bd9..025d10992 100755 --- a/src/gui/formsettings.cpp +++ b/src/gui/formsettings.cpp @@ -463,13 +463,13 @@ void FormSettings::loadDataStorage() { m_ui->m_txtMysqlUsername->lineEdit()->setPlaceholderText(tr("Username to login with")); m_ui->m_txtMysqlPassword->lineEdit()->setPlaceholderText(tr("Password for your username")); - m_ui->m_txtMysqlHostname->lineEdit()->setText(settings->value(GROUP(Database), "mysql_hostname").toString()); - m_ui->m_txtMysqlUsername->lineEdit()->setText(settings->value(GROUP(Database), "mysql_username").toString()); - m_ui->m_txtMysqlPassword->lineEdit()->setText(settings->value(GROUP(Database), "mysql_password").toString()); - m_ui->m_spinMysqlPort->setValue(settings->value(GROUP(Database), "mysql_port", APP_DB_MYSQL_PORT).toInt()); + m_ui->m_txtMysqlHostname->lineEdit()->setText(settings->value(GROUP(Database), SETTING(Database::MySQLHostname)).toString()); + m_ui->m_txtMysqlUsername->lineEdit()->setText(settings->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString()); + m_ui->m_txtMysqlPassword->lineEdit()->setText(settings->value(GROUP(Database), SETTING(Database::MySQLUsername)).toString()); + m_ui->m_spinMysqlPort->setValue(settings->value(GROUP(Database), SETTING(Database::MySQLPort)).toInt()); } - int index_current_backend = m_ui->m_cmbDatabaseDriver->findData(settings->value(GROUP(Database), "database_driver", APP_DB_SQLITE_DRIVER).toString()); + int index_current_backend = m_ui->m_cmbDatabaseDriver->findData(settings->value(GROUP(Database), SETTING(Database::ActiveDriver)).toString()); if (index_current_backend >= 0) { m_ui->m_cmbDatabaseDriver->setCurrentIndex(index_current_backend); @@ -480,7 +480,7 @@ void FormSettings::saveDataStorage() { // Setup in-memory database status. Settings *settings = qApp->settings(); - bool original_inmemory = settings->value(GROUP(Database), "use_in_memory_db", false).toBool(); + bool original_inmemory = settings->value(GROUP(Database), SETTING(Database::UseInMemory)).toBool(); bool new_inmemory = m_ui->m_checkSqliteUseInMemoryDatabase->isChecked(); if (original_inmemory != new_inmemory) { @@ -488,21 +488,21 @@ void FormSettings::saveDataStorage() { } // Save data storage settings. - QString original_db_driver = settings->value(GROUP(Database), "database_driver", APP_DB_SQLITE_DRIVER).toString(); + QString original_db_driver = settings->value(GROUP(Database), SETTING(Database::ActiveDriver)).toString(); QString selected_db_driver = m_ui->m_cmbDatabaseDriver->itemData(m_ui->m_cmbDatabaseDriver->currentIndex()).toString(); // Save SQLite. - settings->setValue(GROUP(Database), "use_in_memory_db", new_inmemory); + settings->setValue(GROUP(Database), Database::UseInMemory, new_inmemory); if (QSqlDatabase::isDriverAvailable(APP_DB_MYSQL_DRIVER)) { // Save MySQL. - settings->setValue(GROUP(Database), "mysql_hostname", m_ui->m_txtMysqlHostname->lineEdit()->text()); - settings->setValue(GROUP(Database), "mysql_username", m_ui->m_txtMysqlUsername->lineEdit()->text()); - settings->setValue(GROUP(Database), "mysql_password", m_ui->m_txtMysqlPassword->lineEdit()->text()); - settings->setValue(GROUP(Database), "mysql_port", m_ui->m_spinMysqlPort->value()); + settings->setValue(GROUP(Database), Database::MySQLHostname, m_ui->m_txtMysqlHostname->lineEdit()->text()); + settings->setValue(GROUP(Database), Database::MySQLUsername, m_ui->m_txtMysqlUsername->lineEdit()->text()); + settings->setValue(GROUP(Database), Database::MySQLPassword, m_ui->m_txtMysqlPassword->lineEdit()->text()); + settings->setValue(GROUP(Database), Database::MySQLPort, m_ui->m_spinMysqlPort->value()); } - settings->setValue(GROUP(Database), "database_driver", selected_db_driver); + settings->setValue(GROUP(Database), Database::ActiveDriver, selected_db_driver); if (original_db_driver != selected_db_driver || m_initialSettings.m_dataStorageDataChanged) { @@ -519,15 +519,11 @@ void FormSettings::mysqlTestConnection() { switch (error_code) { case DatabaseFactory::MySQLOk: - m_ui->m_lblMysqlTestResult->setStatus(WidgetWithStatus::Ok, - interpretation, - interpretation); + m_ui->m_lblMysqlTestResult->setStatus(WidgetWithStatus::Ok, interpretation, interpretation); break; default: - m_ui->m_lblMysqlTestResult->setStatus(WidgetWithStatus::Error, - interpretation, - interpretation); + m_ui->m_lblMysqlTestResult->setStatus(WidgetWithStatus::Error, interpretation, interpretation); break; } } @@ -579,7 +575,7 @@ void FormSettings::selectSqlBackend(int index) { void FormSettings::loadGeneral() { m_ui->m_checkAutostart->setText(m_ui->m_checkAutostart->text().arg(APP_NAME)); - m_ui->m_checkForUpdatesOnStart->setChecked(qApp->settings()->value(GROUP(General), "update_on_start", true).toBool()); + m_ui->m_checkForUpdatesOnStart->setChecked(qApp->settings()->value(GROUP(General), SETTING(General::UpdateOnStartup)).toBool()); // Load auto-start status. SystemFactory::AutoStartStatus autostart_status = qApp->system()->getAutoStartStatus(); @@ -598,7 +594,7 @@ void FormSettings::loadGeneral() { #if defined(Q_OS_WIN) m_ui->m_checkRemoveTrolltechJunk->setEnabled(true); - m_ui->m_checkRemoveTrolltechJunk->setChecked(qApp->settings()->value(GROUP(General), "remove_trolltech_junk", false).toBool()); + m_ui->m_checkRemoveTrolltechJunk->setChecked(qApp->settings()->value(GROUP(General), SETTING(General::RemoveTrolltechJunk)).toBool()); #endif } @@ -611,8 +607,8 @@ void FormSettings::saveGeneral() { qApp->system()->setAutoStartStatus(SystemFactory::Disabled); } - qApp->settings()->setValue(GROUP(General), "update_on_start", m_ui->m_checkForUpdatesOnStart->isChecked()); - qApp->settings()->setValue(GROUP(General), "remove_trolltech_junk", m_ui->m_checkRemoveTrolltechJunk->isChecked()); + qApp->settings()->setValue(GROUP(General), General::UpdateOnStartup, m_ui->m_checkForUpdatesOnStart->isChecked()); + qApp->settings()->setValue(GROUP(General), General::RemoveTrolltechJunk, m_ui->m_checkRemoveTrolltechJunk->isChecked()); } void FormSettings::loadInterface() { @@ -620,7 +616,7 @@ void FormSettings::loadInterface() { // Load settings of tray icon. if (SystemTrayIcon::isSystemTrayAvailable()) { - m_ui->m_radioTrayOff->setChecked(!settings->value(GROUP(GUI), "use_tray_icon", true).toBool()); + m_ui->m_radioTrayOff->setChecked(!settings->value(GROUP(GUI), SETTING(GUI::UseTrayIcon)).toBool()); } // Tray icon is not supported on this machine. else { @@ -629,8 +625,8 @@ void FormSettings::loadInterface() { m_ui->m_grpTray->setDisabled(true); } - m_ui->m_checkHidden->setChecked(settings->value(GROUP(GUI), "start_hidden", false).toBool()); - m_ui->m_checkHideWhenMinimized->setChecked(settings->value(GROUP(GUI), "hide_when_minimized", false).toBool()); + m_ui->m_checkHidden->setChecked(settings->value(GROUP(GUI), SETTING(GUI::MainWindowStartsHidden)).toBool()); + m_ui->m_checkHideWhenMinimized->setChecked(settings->value(GROUP(GUI), SETTING(GUI::HideMainWindowWhenMinimized)).toBool()); // Load settings of icon theme. QString current_theme = qApp->icons()->currentIconTheme(); @@ -690,10 +686,10 @@ void FormSettings::loadInterface() { } // Load tab settings. - m_ui->m_checkCloseTabsMiddleClick->setChecked(settings->value(GROUP(GUI), "tab_close_mid_button", true).toBool()); - m_ui->m_checkCloseTabsDoubleClick->setChecked(settings->value(GROUP(GUI), "tab_close_double_button", true).toBool()); - m_ui->m_checkNewTabDoubleClick->setChecked(settings->value(GROUP(GUI), "tab_new_double_button", true).toBool()); - m_ui->m_hideTabBarIfOneTabVisible->setChecked(settings->value(GROUP(GUI), "hide_tabbar_one_tab", true).toBool()); + m_ui->m_checkCloseTabsMiddleClick->setChecked(settings->value(GROUP(GUI), SETTING(GUI::TabCloseMiddleClick)).toBool()); + m_ui->m_checkCloseTabsDoubleClick->setChecked(settings->value(GROUP(GUI), SETTING(GUI::TabCloseDoubleClick)).toBool()); + m_ui->m_checkNewTabDoubleClick->setChecked(settings->value(GROUP(GUI), SETTING(GUI::TabNewDoubleClick)).toBool()); + m_ui->m_hideTabBarIfOneTabVisible->setChecked(settings->value(GROUP(GUI), SETTING(GUI::HideTabBarIfOnlyOneTab)).toBool()); // Load toolbar button style. m_ui->m_cmbToolbarButtonStyle->addItem(tr("Icon only"), Qt::ToolButtonIconOnly); @@ -703,8 +699,7 @@ void FormSettings::loadInterface() { m_ui->m_cmbToolbarButtonStyle->addItem(tr("Follow OS style"), Qt::ToolButtonFollowStyle); m_ui->m_cmbToolbarButtonStyle->setCurrentIndex(m_ui->m_cmbToolbarButtonStyle->findData(qApp->settings()->value(GROUP(GUI), - "toolbar_style", - Qt::ToolButtonIconOnly).toInt())); + SETTING(GUI::ToolbarStyle)).toInt())); // Load toolbars. m_ui->m_editorFeedsToolbar->loadFromToolBar(qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsToolBar()); @@ -715,13 +710,13 @@ void FormSettings::saveInterface() { Settings *settings = qApp->settings(); // Save toolbar. - settings->setValue(GROUP(GUI), "toolbar_style", m_ui->m_cmbToolbarButtonStyle->itemData(m_ui->m_cmbToolbarButtonStyle->currentIndex())); + settings->setValue(GROUP(GUI), GUI::ToolbarStyle, m_ui->m_cmbToolbarButtonStyle->itemData(m_ui->m_cmbToolbarButtonStyle->currentIndex())); // Save tray icon. if (SystemTrayIcon::isSystemTrayAvailable()) { - settings->setValue(GROUP(GUI), "use_tray_icon", m_ui->m_radioTrayOn->isChecked()); + settings->setValue(GROUP(GUI), GUI::UseTrayIcon, m_ui->m_radioTrayOn->isChecked()); - if (settings->value(GROUP(GUI), "use_tray_icon", true).toBool()) { + if (m_ui->m_radioTrayOn->isChecked()) { qApp->showTrayIcon(); } else { @@ -729,8 +724,8 @@ void FormSettings::saveInterface() { } } - settings->setValue(GROUP(GUI), "start_hidden", m_ui->m_checkHidden->isChecked()); - settings->setValue(GROUP(GUI), "hide_when_minimized", m_ui->m_checkHideWhenMinimized->isChecked()); + settings->setValue(GROUP(GUI), GUI::MainWindowStartsHidden, m_ui->m_checkHidden->isChecked()); + settings->setValue(GROUP(GUI), GUI::HideMainWindowWhenMinimized, m_ui->m_checkHideWhenMinimized->isChecked()); // Save selected icon theme. QString selected_icon_theme = m_ui->m_cmbIconTheme->itemData(m_ui->m_cmbIconTheme->currentIndex()).toString(); diff --git a/src/miscellaneous/settings.cpp b/src/miscellaneous/settings.cpp index 56c965507..3b56a047c 100755 --- a/src/miscellaneous/settings.cpp +++ b/src/miscellaneous/settings.cpp @@ -80,6 +80,9 @@ DKEY GUI::MainWindowInitialPosition = "window_position"; DKEY GUI::MainWindowStartsFullscreen = "start_in_fullscreen"; DVALUE(bool) GUI::MainWindowStartsFullscreenDef = false; +DKEY GUI::MainWindowStartsHidden = "start_hidden"; +DVALUE(bool) GUI::MainWindowStartsHiddenDef = false; + DKEY GUI::MainWindowStartsMaximized = "window_is_maximized"; DVALUE(bool) GUI::MainWindowStartsMaximizedDef = false; @@ -95,8 +98,29 @@ DVALUE(bool) GUI::ListHeadersVisibleDef = true; DKEY GUI::HideMainWindowWhenMinimized = "hide_when_minimized"; DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false; +DKEY GUI::UseTrayIcon = "use_tray_icon"; +DVALUE(bool) GUI::UseTrayIconDef = true; + +KEY GUI::TabCloseMiddleClick = "tab_close_mid_button"; +VALUE(bool) GUI::TabCloseMiddleClickDef = true; + +KEY GUI::TabCloseDoubleClick = "tab_close_double_button"; +VALUE(bool) GUI::TabCloseDoubleClickDef = true; + +KEY GUI::TabNewDoubleClick = "tab_new_double_button"; +VALUE(bool) GUI::TabNewDoubleClickDef = true; + +KEY GUI::HideTabBarIfOnlyOneTab = "hide_tabbar_one_tab"; +VALUE(bool) GUI::HideTabBarIfOnlyOneTabDef = true; + // General. -DKEY General::ID = "main"; +DKEY General::ID = "main"; + +DKEY General::UpdateOnStartup = "update_on_start"; +DVALUE(bool) General::UpdateOnStartupDef = true; + +DKEY General::RemoveTrolltechJunk = "remove_trolltech_junk"; +DVALUE(bool) General::RemoveTrolltechJunkDef = false; // Proxy. DKEY Proxy::ID = "proxy"; @@ -117,11 +141,26 @@ DKEY Proxy::Port = "port"; DVALUE(int) Proxy::PortDef = 80; // Database. -DKEY Database::ID = "database"; +DKEY Database::ID = "database"; DKEY Database::UseInMemory = "use_in_memory_db"; DVALUE(bool) Database::UseInMemoryDef = false; +DKEY Database::MySQLHostname = "mysql_hostname"; +DVALUE(char*) Database::MySQLHostnameDef = ""; + +DKEY Database::MySQLUsername = "mysql_username"; +DVALUE(char*) Database::MySQLUsernameDef = ""; + +DKEY Database::MySQLPassword = "mysql_password"; +DVALUE(char*) Database::MySQLPasswordDef = ""; + +DKEY Database::MySQLPort = "mysql_port"; +DVALUE(int) Database::MySQLPortDef = APP_DB_MYSQL_PORT; + +DKEY Database::ActiveDriver = "database_driver"; +DVALUE(char*) Database::ActiveDriverDef = APP_DB_SQLITE_DRIVER; + // Keyboard. DKEY Keyboard::ID = "keyboard"; diff --git a/src/miscellaneous/settings.h b/src/miscellaneous/settings.h index 7d42f238c..604392d82 100755 --- a/src/miscellaneous/settings.h +++ b/src/miscellaneous/settings.h @@ -92,6 +92,9 @@ namespace GUI { KEY MainWindowStartsFullscreen; VALUE(bool) MainWindowStartsFullscreenDef; + KEY MainWindowStartsHidden; + VALUE(bool) MainWindowStartsHiddenDef; + KEY MainWindowStartsMaximized; VALUE(bool) MainWindowStartsMaximizedDef; @@ -106,11 +109,32 @@ namespace GUI { KEY HideMainWindowWhenMinimized; VALUE(bool) HideMainWindowWhenMinimizedDef; + + KEY UseTrayIcon; + VALUE(bool) UseTrayIconDef; + + KEY TabCloseMiddleClick; + VALUE(bool) TabCloseMiddleClickDef; + + KEY TabCloseDoubleClick; + VALUE(bool) TabCloseDoubleClickDef; + + KEY TabNewDoubleClick; + VALUE(bool) TabNewDoubleClickDef; + + KEY HideTabBarIfOnlyOneTab; + VALUE(bool) HideTabBarIfOnlyOneTabDef; } // General. namespace General { KEY ID; + + KEY UpdateOnStartup; + VALUE(bool) UpdateOnStartupDef; + + KEY RemoveTrolltechJunk; + VALUE(bool) RemoveTrolltechJunkDef; } // Proxy. @@ -139,6 +163,21 @@ namespace Database { KEY UseInMemory; VALUE(bool) UseInMemoryDef; + + KEY MySQLHostname; + VALUE(char*) MySQLHostnameDef; + + KEY MySQLUsername; + VALUE(char*) MySQLUsernameDef; + + KEY MySQLPassword; + VALUE(char*) MySQLPasswordDef; + + KEY MySQLPort; + VALUE(int) MySQLPortDef; + + KEY ActiveDriver; + VALUE(char*) ActiveDriverDef; } // Keyboard.