diff options
Diffstat (limited to 'src/gui/ApplicationSettingsWidget.cpp')
-rw-r--r-- | src/gui/ApplicationSettingsWidget.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/gui/ApplicationSettingsWidget.cpp b/src/gui/ApplicationSettingsWidget.cpp index 691115368..cf09df39b 100644 --- a/src/gui/ApplicationSettingsWidget.cpp +++ b/src/gui/ApplicationSettingsWidget.cpp @@ -27,6 +27,7 @@ #include "core/Global.h" #include "core/Resources.h" #include "core/Translator.h" +#include "gui/MainWindow.h" #include "gui/osutils/OSUtils.h" #include "MessageBox.h" @@ -125,6 +126,7 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent) m_generalUi->faviconTimeoutSpinBox->installEventFilter(mouseWheelFilter); m_generalUi->toolButtonStyleComboBox->installEventFilter(mouseWheelFilter); m_generalUi->languageComboBox->installEventFilter(mouseWheelFilter); + m_generalUi->trayIconAppearance->installEventFilter(mouseWheelFilter); #ifdef WITH_XC_UPDATECHECK connect(m_generalUi->checkForUpdatesOnStartupCheckBox, SIGNAL(toggled(bool)), SLOT(checkUpdatesToggled(bool))); @@ -182,6 +184,7 @@ void ApplicationSettingsWidget::loadSettings() config()->get(Config::OpenPreviousDatabasesOnStartup).toBool()); m_generalUi->autoSaveAfterEveryChangeCheckBox->setChecked(config()->get(Config::AutoSaveAfterEveryChange).toBool()); m_generalUi->autoSaveOnExitCheckBox->setChecked(config()->get(Config::AutoSaveOnExit).toBool()); + m_generalUi->autoSaveNonDataChangesCheckBox->setChecked(config()->get(Config::AutoSaveNonDataChanges).toBool()); m_generalUi->backupBeforeSaveCheckBox->setChecked(config()->get(Config::BackupBeforeSave).toBool()); m_generalUi->useAtomicSavesCheckBox->setChecked(config()->get(Config::UseAtomicSaves).toBool()); m_generalUi->autoReloadOnChangeCheckBox->setChecked(config()->get(Config::AutoReloadOnChange).toBool()); @@ -195,7 +198,6 @@ void ApplicationSettingsWidget::loadSettings() config()->get(Config::UseGroupIconOnEntryCreation).toBool()); m_generalUi->autoTypeEntryTitleMatchCheckBox->setChecked(config()->get(Config::AutoTypeEntryTitleMatch).toBool()); m_generalUi->autoTypeEntryURLMatchCheckBox->setChecked(config()->get(Config::AutoTypeEntryURLMatch).toBool()); - m_generalUi->trackNonDataChangesCheckBox->setChecked(config()->get(Config::TrackNonDataChanges).toBool()); m_generalUi->faviconTimeoutSpinBox->setValue(config()->get(Config::FaviconDownloadTimeout).toInt()); m_generalUi->languageComboBox->clear(); @@ -310,6 +312,7 @@ void ApplicationSettingsWidget::saveSettings() m_generalUi->openPreviousDatabasesOnStartupCheckBox->isChecked()); config()->set(Config::AutoSaveAfterEveryChange, m_generalUi->autoSaveAfterEveryChangeCheckBox->isChecked()); config()->set(Config::AutoSaveOnExit, m_generalUi->autoSaveOnExitCheckBox->isChecked()); + config()->set(Config::AutoSaveNonDataChanges, m_generalUi->autoSaveNonDataChangesCheckBox->isChecked()); config()->set(Config::BackupBeforeSave, m_generalUi->backupBeforeSaveCheckBox->isChecked()); config()->set(Config::UseAtomicSaves, m_generalUi->useAtomicSavesCheckBox->isChecked()); config()->set(Config::AutoReloadOnChange, m_generalUi->autoReloadOnChangeCheckBox->isChecked()); @@ -319,12 +322,19 @@ void ApplicationSettingsWidget::saveSettings() config()->set(Config::MinimizeOnCopy, m_generalUi->minimizeOnCopyRadioButton->isChecked()); config()->set(Config::DropToBackgroundOnCopy, m_generalUi->dropToBackgroundOnCopyRadioButton->isChecked()); config()->set(Config::UseGroupIconOnEntryCreation, m_generalUi->useGroupIconOnEntryCreationCheckBox->isChecked()); - config()->set(Config::TrackNonDataChanges, m_generalUi->trackNonDataChangesCheckBox->isChecked()); config()->set(Config::AutoTypeEntryTitleMatch, m_generalUi->autoTypeEntryTitleMatchCheckBox->isChecked()); config()->set(Config::AutoTypeEntryURLMatch, m_generalUi->autoTypeEntryURLMatchCheckBox->isChecked()); config()->set(Config::FaviconDownloadTimeout, m_generalUi->faviconTimeoutSpinBox->value()); - config()->set(Config::GUI_Language, m_generalUi->languageComboBox->currentData().toString()); + auto language = m_generalUi->languageComboBox->currentData().toString(); + if (config()->get(Config::GUI_Language) != language) { + QTimer::singleShot(200, [] { + getMainWindow()->restartApp( + tr("You must restart the application to set the new language. Would you like to restart now?")); + }); + } + config()->set(Config::GUI_Language, language); + config()->set(Config::GUI_MovableToolbar, m_generalUi->toolbarMovableCheckBox->isChecked()); config()->set(Config::GUI_MonospaceNotes, m_generalUi->monospaceNotesCheckBox->isChecked()); @@ -375,7 +385,6 @@ void ApplicationSettingsWidget::saveSettings() // Security: clear storage if related settings are disabled if (!config()->get(Config::RememberLastDatabases).toBool()) { config()->remove(Config::LastDatabases); - config()->remove(Config::OpenPreviousDatabasesOnStartup); config()->remove(Config::LastActiveDatabase); config()->remove(Config::LastAttachmentDir); } @@ -415,7 +424,6 @@ void ApplicationSettingsWidget::resetSettings() // Clear recently used data config()->remove(Config::LastDatabases); - config()->remove(Config::OpenPreviousDatabasesOnStartup); config()->remove(Config::LastActiveDatabase); config()->remove(Config::LastAttachmentDir); config()->remove(Config::LastKeyFiles); @@ -443,11 +451,13 @@ void ApplicationSettingsWidget::reject() void ApplicationSettingsWidget::autoSaveToggled(bool checked) { - // Explicitly enable auto-save on exit if it wasn't already - if (checked && !m_generalUi->autoSaveOnExitCheckBox->isChecked()) { + // Explicitly enable other auto-save options + if (checked) { m_generalUi->autoSaveOnExitCheckBox->setChecked(true); + m_generalUi->autoSaveNonDataChangesCheckBox->setChecked(true); } m_generalUi->autoSaveOnExitCheckBox->setEnabled(!checked); + m_generalUi->autoSaveNonDataChangesCheckBox->setEnabled(!checked); } void ApplicationSettingsWidget::hideWindowOnCopyCheckBoxToggled(bool checked) |