From a6a8ca1e40e7579826118e99e49a97230a28f695 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 2 Aug 2016 09:16:05 +0200 Subject: [PATCH] Working loading of new settings and appearance of "Apply" btn. --- .../dynamicshortcutswidget.cpp | 2 ++ .../dynamicshortcutswidget.h | 3 ++ src/gui/dialogs/formsettings.cpp | 36 ++++++++++++++++++- src/gui/dialogs/formsettings.h | 5 +++ src/gui/dialogs/formsettings.ui | 2 +- src/gui/settings/settingsbrowsermail.cpp | 20 ++++++++++- src/gui/settings/settingsdatabase.cpp | 8 +++++ src/gui/settings/settingsdownloads.cpp | 13 +++++++ src/gui/settings/settingsfeedsmessages.cpp | 24 ++++++++++++- src/gui/settings/settingsgui.cpp | 20 +++++++++-- src/gui/settings/settingsgui.ui | 2 +- src/gui/settings/settingslocalization.cpp | 2 ++ src/gui/settings/settingsshortcuts.cpp | 6 ++++ src/gui/toolbareditor.cpp | 13 +++++++ src/gui/toolbareditor.h | 3 ++ 15 files changed, 152 insertions(+), 7 deletions(-) diff --git a/src/dynamic-shortcuts/dynamicshortcutswidget.cpp b/src/dynamic-shortcuts/dynamicshortcutswidget.cpp index 9d2f199a5..7a9f9c0e4 100755 --- a/src/dynamic-shortcuts/dynamicshortcutswidget.cpp +++ b/src/dynamic-shortcuts/dynamicshortcutswidget.cpp @@ -106,6 +106,8 @@ void DynamicShortcutsWidget::populate(QList actions) { m_layout->addWidget(catcher, row_id, 2); row_id++; + + connect(catcher, &ShortcutCatcher::shortcutChanged, this, &DynamicShortcutsWidget::setupChanged); } // Make sure that "spacer" is added. diff --git a/src/dynamic-shortcuts/dynamicshortcutswidget.h b/src/dynamic-shortcuts/dynamicshortcutswidget.h index 1f3db4358..0e4be60c6 100755 --- a/src/dynamic-shortcuts/dynamicshortcutswidget.h +++ b/src/dynamic-shortcuts/dynamicshortcutswidget.h @@ -50,6 +50,9 @@ class DynamicShortcutsWidget : public QWidget { // assigned to actions before calling this method. void populate(QList actions); + signals: + void setupChanged(); + private: static bool lessThan(QAction *lhs, QAction *rhs); diff --git a/src/gui/dialogs/formsettings.cpp b/src/gui/dialogs/formsettings.cpp index 0498ab0d7..5ec37872b 100755 --- a/src/gui/dialogs/formsettings.cpp +++ b/src/gui/dialogs/formsettings.cpp @@ -43,6 +43,15 @@ #include "gui/dialogs/formmain.h" #include "dynamic-shortcuts/dynamicshortcuts.h" +#include "gui/settings/settingsbrowsermail.h" +#include "gui/settings/settingsdatabase.h" +#include "gui/settings/settingsdownloads.h" +#include "gui/settings/settingsfeedsmessages.h" +#include "gui/settings/settingsgeneral.h" +#include "gui/settings/settingsgui.h" +#include "gui/settings/settingslocalization.h" +#include "gui/settings/settingsshortcuts.h" + #include #include #include @@ -52,15 +61,29 @@ #include -FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_ui(new Ui::FormSettings), m_settings(qApp->settings()) { +FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_panels(QList()), m_ui(new Ui::FormSettings), m_settings(qApp->settings()) { m_ui->setupUi(this); // Set flags and attributes. setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::Dialog | Qt::WindowSystemMenuHint | Qt::WindowTitleHint); setWindowIcon(qApp->icons()->fromTheme(QSL("emblem-system"))); + m_btnApply = m_ui->m_buttonBox->button(QDialogButtonBox::Apply); + m_btnApply->setEnabled(false); + // Establish needed connections. connect(m_ui->m_buttonBox, SIGNAL(accepted()), this, SLOT(saveSettings())); + + addSettingsPanel(new SettingsGeneral(m_settings, this)); + addSettingsPanel(new SettingsDatabase(m_settings, this)); + addSettingsPanel(new SettingsGui(m_settings, this)); + addSettingsPanel(new SettingsLocalization(m_settings, this)); + addSettingsPanel(new SettingsShortcuts(m_settings, this)); + addSettingsPanel(new SettingsBrowserMail(m_settings, this)); + addSettingsPanel(new SettingsDownloads(m_settings, this)); + addSettingsPanel(new SettingsFeedsMessages(m_settings, this)); + + m_ui->m_listSettings->setCurrentRow(0); } FormSettings::~FormSettings() { @@ -87,3 +110,14 @@ void FormSettings::saveSettings() { promptForRestart(); accept(); } + +void FormSettings::addSettingsPanel(SettingsPanel *panel) { + m_ui->m_listSettings->addItem(panel->title()); + m_panels.append(panel); + m_ui->m_stackedSettings->addWidget(panel); + panel->loadSettings(); + + connect(panel, &SettingsPanel::settingsChanged, [this]() { + m_btnApply->setEnabled(true); + }); +} diff --git a/src/gui/dialogs/formsettings.h b/src/gui/dialogs/formsettings.h index 07c324472..44facaaa1 100755 --- a/src/gui/dialogs/formsettings.h +++ b/src/gui/dialogs/formsettings.h @@ -24,6 +24,7 @@ class Settings; +class SettingsPanel; class FormSettings : public QDialog { Q_OBJECT @@ -41,7 +42,11 @@ class FormSettings : public QDialog { void saveSettings(); private: + void addSettingsPanel(SettingsPanel *panel); + + QList m_panels; QScopedPointer m_ui; + QPushButton *m_btnApply; Settings *m_settings; }; diff --git a/src/gui/dialogs/formsettings.ui b/src/gui/dialogs/formsettings.ui index 7e1097e3b..38a367bfa 100755 --- a/src/gui/dialogs/formsettings.ui +++ b/src/gui/dialogs/formsettings.ui @@ -58,7 +58,7 @@ Qt::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok diff --git a/src/gui/settings/settingsbrowsermail.cpp b/src/gui/settings/settingsbrowsermail.cpp index 87d907b13..ae3c8a9dc 100755 --- a/src/gui/settings/settingsbrowsermail.cpp +++ b/src/gui/settings/settingsbrowsermail.cpp @@ -29,6 +29,18 @@ SettingsBrowserMail::SettingsBrowserMail(Settings *settings, QWidget *parent) : SettingsPanel(settings, parent), m_ui(new Ui::SettingsBrowserMail) { m_ui->setupUi(this); + connect(m_ui->m_cmbProxyType, static_cast(&QComboBox::currentIndexChanged), this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtProxyHost, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtProxyPassword, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtProxyUsername, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_spinProxyPort, static_cast(&QSpinBox::valueChanged), this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_grpCustomExternalBrowser, &QGroupBox::toggled, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_grpCustomExternalEmail, &QGroupBox::toggled, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtExternalBrowserArguments, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtExternalBrowserExecutable, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtExternalEmailArguments, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtExternalEmailExecutable, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_cmbProxyType, static_cast(&QComboBox::currentIndexChanged), this, &SettingsBrowserMail::onProxyTypeChanged); connect(m_ui->m_checkShowPassword, &QCheckBox::stateChanged, this, &SettingsBrowserMail::displayProxyPassword); connect(m_ui->m_cmbExternalBrowserPreset, static_cast(&QComboBox::currentIndexChanged), this, &SettingsBrowserMail::changeDefaultBrowserArguments); @@ -113,6 +125,8 @@ void SettingsBrowserMail::selectEmailExecutable() { } void SettingsBrowserMail::loadSettings() { + onBeginLoadSettings(); + // Load settings of web browser GUI. m_ui->m_cmbExternalBrowserPreset->addItem(tr("Opera 12 or older"), QSL("-nosession %1")); m_ui->m_txtExternalBrowserExecutable->setText(settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString()); @@ -139,10 +153,12 @@ void SettingsBrowserMail::loadSettings() { m_ui->m_txtProxyPassword->setText(TextFactory::decrypt(settings()->value(GROUP(Proxy), SETTING(Proxy::Password)).toString())); m_ui->m_spinProxyPort->setValue(settings()->value(GROUP(Proxy), SETTING(Proxy::Port)).toInt()); - + onEndLoadSettings(); } void SettingsBrowserMail::saveSettings() { + onBeginSaveSettings(); + // Save settings of GUI of web browser. settings()->setValue(GROUP(Browser), Browser::CustomExternalBrowserEnabled, m_ui->m_grpCustomExternalBrowser->isChecked()); settings()->setValue(GROUP(Browser), Browser::CustomExternalBrowserExecutable, m_ui->m_txtExternalBrowserExecutable->text()); @@ -161,4 +177,6 @@ void SettingsBrowserMail::saveSettings() { // Reload settings for all network access managers. SilentNetworkAccessManager::instance()->loadSettings(); + + onEndSaveSettings(); } diff --git a/src/gui/settings/settingsdatabase.cpp b/src/gui/settings/settingsdatabase.cpp index 39271bb63..0231e0a09 100755 --- a/src/gui/settings/settingsdatabase.cpp +++ b/src/gui/settings/settingsdatabase.cpp @@ -27,6 +27,14 @@ SettingsDatabase::SettingsDatabase(Settings *settings, QWidget *parent) : SettingsPanel(settings, parent), m_ui(new Ui::SettingsDatabase) { m_ui->setupUi(this); + connect(m_ui->m_cmbDatabaseDriver, static_cast(&QComboBox::currentIndexChanged), this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_checkSqliteUseInMemoryDatabase, &QCheckBox::toggled, this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_txtMysqlDatabase->lineEdit(), &QLineEdit::textChanged, this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_txtMysqlHostname->lineEdit(), &QLineEdit::textChanged, this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_txtMysqlPassword->lineEdit(), &QLineEdit::textChanged, this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_txtMysqlUsername->lineEdit(), &QLineEdit::textChanged, this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_spinMysqlPort, static_cast(&QSpinBox::valueChanged), this, &SettingsDatabase::dirtifySettings); + connect(m_ui->m_cmbDatabaseDriver, static_cast(&QComboBox::currentIndexChanged), this, &SettingsDatabase::selectSqlBackend); connect(m_ui->m_checkMysqlShowPassword, &QCheckBox::toggled, this, &SettingsDatabase::switchMysqlPasswordVisiblity); connect(m_ui->m_txtMysqlUsername->lineEdit(), &BaseLineEdit::textChanged, this, &SettingsDatabase::onMysqlUsernameChanged); diff --git a/src/gui/settings/settingsdownloads.cpp b/src/gui/settings/settingsdownloads.cpp index dc45eaea0..06dbbefbc 100755 --- a/src/gui/settings/settingsdownloads.cpp +++ b/src/gui/settings/settingsdownloads.cpp @@ -27,6 +27,11 @@ SettingsDownloads::SettingsDownloads(Settings *settings, QWidget *parent) : SettingsPanel(settings, parent), m_ui(new Ui::SettingsDownloads) { m_ui->setupUi(this); + + connect(m_ui->m_checkOpenManagerWhenDownloadStarts, &QCheckBox::toggled, this, &SettingsDownloads::dirtifySettings); + connect(m_ui->m_txtDownloadsTargetDirectory, &QLineEdit::textChanged, this, &SettingsDownloads::dirtifySettings); + connect(m_ui->m_rbDownloadsAskEachFile, &QRadioButton::toggled, this, &SettingsDownloads::dirtifySettings); + connect(m_ui->m_btnDownloadsTargetDirectory, &QPushButton::clicked, this, &SettingsDownloads::selectDownloadsDirectory); } @@ -46,17 +51,25 @@ void SettingsDownloads::selectDownloadsDirectory() { } void SettingsDownloads::loadSettings() { + onBeginLoadSettings(); + m_ui->m_checkOpenManagerWhenDownloadStarts->setChecked(settings()->value(GROUP(Downloads), SETTING(Downloads::ShowDownloadsWhenNewDownloadStarts)).toBool()); m_ui->m_txtDownloadsTargetDirectory->setText(QDir::toNativeSeparators(settings()->value(GROUP(Downloads), SETTING(Downloads::TargetDirectory)).toString())); m_ui->m_rbDownloadsAskEachFile->setChecked(settings()->value(GROUP(Downloads), SETTING(Downloads::AlwaysPromptForFilename)).toBool()); + + onEndLoadSettings(); } void SettingsDownloads::saveSettings() { + onBeginSaveSettings(); + settings()->setValue(GROUP(Downloads), Downloads::ShowDownloadsWhenNewDownloadStarts, m_ui->m_checkOpenManagerWhenDownloadStarts->isChecked()); settings()->setValue(GROUP(Downloads), Downloads::TargetDirectory, m_ui->m_txtDownloadsTargetDirectory->text()); settings()->setValue(GROUP(Downloads), Downloads::AlwaysPromptForFilename, m_ui->m_rbDownloadsAskEachFile->isChecked()); qApp->downloadManager()->setDownloadDirectory(m_ui->m_txtDownloadsTargetDirectory->text()); + + onEndSaveSettings(); } diff --git a/src/gui/settings/settingsfeedsmessages.cpp b/src/gui/settings/settingsfeedsmessages.cpp index b8e721115..95962448c 100755 --- a/src/gui/settings/settingsfeedsmessages.cpp +++ b/src/gui/settings/settingsfeedsmessages.cpp @@ -23,6 +23,7 @@ #include "gui/feedmessageviewer.h" #include "gui/feedsview.h" #include "gui/messagesview.h" +#include "gui/timespinbox.h" #include @@ -31,6 +32,19 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings *settings, QWidget *parent : SettingsPanel(settings, parent), m_ui(new Ui::SettingsFeedsMessages){ m_ui->setupUi(this); initializeMessageDateFormats(); + + connect(m_ui->m_checkAutoUpdate, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_checkKeppMessagesInTheMiddle, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_checkMessagesDateTimeFormat, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_checkRemoveReadMessagesOnExit, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_checkUpdateAllFeedsOnStartup, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinAutoUpdateInterval, static_cast(&QDoubleSpinBox::valueChanged), + this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinFeedUpdateTimeout, static_cast(&QSpinBox::valueChanged), this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_cmbMessagesDateTimeFormat, static_cast(&QComboBox::currentIndexChanged), this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_cmbCountsFeedList, &QComboBox::currentTextChanged, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_cmbCountsFeedList, static_cast(&QComboBox::currentIndexChanged), this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_btnChangeMessagesFont, &QPushButton::clicked, this, &SettingsFeedsMessages::changeMessagesFont); } @@ -38,7 +52,6 @@ SettingsFeedsMessages::~SettingsFeedsMessages() { delete m_ui; } - void SettingsFeedsMessages::initializeMessageDateFormats() { QStringList best_formats; best_formats << QSL("d/M/yyyy hh:mm:ss") << QSL("ddd, d. M. yy hh:mm:ss") << QSL("yyyy-MM-dd HH:mm:ss.z") << QSL("yyyy-MM-ddThh:mm:ss") << @@ -59,10 +72,13 @@ void SettingsFeedsMessages::changeMessagesFont() { if (ok) { m_ui->m_lblMessagesFont->setFont(new_font); + dirtifySettings(); } } void SettingsFeedsMessages::loadSettings() { + onBeginLoadSettings(); + m_ui->m_checkKeppMessagesInTheMiddle->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()); m_ui->m_checkRemoveReadMessagesOnExit->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::ClearReadOnExit)).toBool()); m_ui->m_checkAutoUpdate->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::AutoUpdateEnabled)).toBool()); @@ -86,9 +102,13 @@ void SettingsFeedsMessages::loadSettings() { fon.fromString(settings()->value(GROUP(Messages), SETTING(Messages::PreviewerFontStandard)).toString()); m_ui->m_lblMessagesFont->setFont(fon); + + onEndLoadSettings(); } void SettingsFeedsMessages::saveSettings() { + onBeginSaveSettings(); + settings()->setValue(GROUP(Messages), Messages::KeepCursorInCenter, m_ui->m_checkKeppMessagesInTheMiddle->isChecked()); settings()->setValue(GROUP(Messages), Messages::ClearReadOnExit, m_ui->m_checkRemoveReadMessagesOnExit->isChecked()); settings()->setValue(GROUP(Feeds), Feeds::AutoUpdateEnabled, m_ui->m_checkAutoUpdate->isChecked()); @@ -108,4 +128,6 @@ void SettingsFeedsMessages::saveSettings() { qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout(); qApp->mainForm()->tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->updateDateFormat(); qApp->mainForm()->tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->reloadWholeLayout(); + + onEndSaveSettings(); } diff --git a/src/gui/settings/settingsgui.cpp b/src/gui/settings/settingsgui.cpp index e742f8bd6..e38c43d56 100755 --- a/src/gui/settings/settingsgui.cpp +++ b/src/gui/settings/settingsgui.cpp @@ -53,6 +53,22 @@ SettingsGui::SettingsGui(Settings *settings, QWidget *parent) : SettingsPanel(se m_ui->m_treeSkins->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents); m_ui->m_treeSkins->header()->setSectionResizeMode(3, QHeaderView::ResizeToContents); + connect(m_ui->m_cmbIconTheme, static_cast(&QComboBox::currentIndexChanged), this, &SettingsGui::dirtifySettings); + connect(m_ui->m_treeSkins, &QTreeWidget::currentItemChanged, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_grpTray, &QGroupBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkEnableNotifications, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkHidden, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkHideWhenMinimized, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkHideTabBarIfOneTabVisible, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkCloseTabsDoubleClick, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkCloseTabsMiddleClick, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkNewTabDoubleClick, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_grbCloseTabs, &QGroupBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_cmbToolbarButtonStyle, static_cast(&QComboBox::currentIndexChanged), this, &SettingsGui::dirtifySettings); + connect(m_ui->m_editorFeedsToolbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_editorMessagesToolbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_editorStatusbar, &ToolBarEditor::setupChanged, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_treeSkins, &QTreeWidget::currentItemChanged, this, &SettingsGui::onSkinSelected); connect(m_ui->m_cmbSelectToolBar, static_cast(&QComboBox::currentIndexChanged), m_ui->m_stackedToolbars, &QStackedWidget::setCurrentIndex); } @@ -149,7 +165,7 @@ void SettingsGui::loadSettings() { 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()); + m_ui->m_checkHideTabBarIfOneTabVisible->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::HideTabBarIfOnlyOneTab)).toBool()); // Load toolbar button style. m_ui->m_cmbToolbarButtonStyle->addItem(tr("Icon only"), Qt::ToolButtonIconOnly); @@ -217,7 +233,7 @@ void SettingsGui::saveSettings() { settings()->setValue(GROUP(GUI), GUI::TabCloseMiddleClick, m_ui->m_checkCloseTabsMiddleClick->isChecked()); settings()->setValue(GROUP(GUI), GUI::TabCloseDoubleClick, m_ui->m_checkCloseTabsDoubleClick->isChecked()); settings()->setValue(GROUP(GUI), GUI::TabNewDoubleClick, m_ui->m_checkNewTabDoubleClick->isChecked()); - settings()->setValue(GROUP(GUI), GUI::HideTabBarIfOnlyOneTab, m_ui->m_hideTabBarIfOneTabVisible->isChecked()); + settings()->setValue(GROUP(GUI), GUI::HideTabBarIfOnlyOneTab, m_ui->m_checkHideTabBarIfOneTabVisible->isChecked()); m_ui->m_editorFeedsToolbar->saveToolBar(); m_ui->m_editorMessagesToolbar->saveToolBar(); diff --git a/src/gui/settings/settingsgui.ui b/src/gui/settings/settingsgui.ui index 5de773f9d..2322550e3 100755 --- a/src/gui/settings/settingsgui.ui +++ b/src/gui/settings/settingsgui.ui @@ -229,7 +229,7 @@ - + Hide tab bar if just one tab is visible diff --git a/src/gui/settings/settingslocalization.cpp b/src/gui/settings/settingslocalization.cpp index c1a04b4bb..545d502ab 100755 --- a/src/gui/settings/settingslocalization.cpp +++ b/src/gui/settings/settingslocalization.cpp @@ -38,6 +38,8 @@ SettingsLocalization::SettingsLocalization(Settings *settings, QWidget *parent) m_ui->m_treeLanguages->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); m_ui->m_treeLanguages->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); m_ui->m_treeLanguages->header()->setSectionResizeMode(2, QHeaderView::ResizeToContents); + + connect(m_ui->m_treeLanguages, &QTreeWidget::currentItemChanged, this, &SettingsLocalization::dirtifySettings); } SettingsLocalization::~SettingsLocalization() { diff --git a/src/gui/settings/settingsshortcuts.cpp b/src/gui/settings/settingsshortcuts.cpp index dc453fc3f..4bc55d38c 100755 --- a/src/gui/settings/settingsshortcuts.cpp +++ b/src/gui/settings/settingsshortcuts.cpp @@ -25,6 +25,8 @@ SettingsShortcuts::SettingsShortcuts(Settings *settings, QWidget *parent) : SettingsPanel(settings, parent), m_ui(new Ui::SettingsShortcuts) { m_ui->setupUi(this); + + connect(m_ui->m_shortcuts, &DynamicShortcutsWidget::setupChanged, this, &SettingsShortcuts::dirtifySettings); } SettingsShortcuts::~SettingsShortcuts() { @@ -33,13 +35,17 @@ SettingsShortcuts::~SettingsShortcuts() { void SettingsShortcuts::loadSettings() { onBeginLoadSettings(); + m_ui->m_shortcuts->populate(qApp->mainForm()->allActions()); + onEndLoadSettings(); } void SettingsShortcuts::saveSettings() { onBeginSaveSettings(); + m_ui->m_shortcuts->updateShortcuts(); DynamicShortcuts::save(qApp->mainForm()->allActions()); + onEndSaveSettings(); } diff --git a/src/gui/toolbareditor.cpp b/src/gui/toolbareditor.cpp index 7cc97f145..557a9980f 100755 --- a/src/gui/toolbareditor.cpp +++ b/src/gui/toolbareditor.cpp @@ -154,6 +154,8 @@ void ToolBarEditor::insertSpacer() { m_ui->m_listActivatedActions->insertItem(current_row + 1, item); m_ui->m_listActivatedActions->setCurrentRow(current_row + 1); + + emit setupChanged(); } void ToolBarEditor::insertSeparator() { @@ -166,6 +168,8 @@ void ToolBarEditor::insertSeparator() { m_ui->m_listActivatedActions->insertItem(current_row + 1, item); m_ui->m_listActivatedActions->setCurrentRow(current_row + 1); + + emit setupChanged(); } void ToolBarEditor::moveActionDown() { @@ -178,6 +182,8 @@ void ToolBarEditor::moveActionDown() { m_ui->m_listActivatedActions->takeItem(row++); m_ui->m_listActivatedActions->insertItem(row, selected_item); m_ui->m_listActivatedActions->setCurrentRow(row); + + emit setupChanged(); } } @@ -191,6 +197,8 @@ void ToolBarEditor::moveActionUp() { m_ui->m_listActivatedActions->takeItem(row--); m_ui->m_listActivatedActions->insertItem(row, selected_item); m_ui->m_listActivatedActions->setCurrentRow(row); + + emit setupChanged(); } } @@ -204,6 +212,8 @@ void ToolBarEditor::addSelectedAction() { m_ui->m_listActivatedActions->currentRow() + 1, m_ui->m_listAvailableActions->takeItem(m_ui->m_listAvailableActions->row(selected_item))); m_ui->m_listActivatedActions->setCurrentRow(m_ui->m_listActivatedActions->currentRow() + 1); + + emit setupChanged(); } } @@ -226,6 +236,8 @@ void ToolBarEditor::deleteSelectedAction() { m_ui->m_listAvailableActions->sortItems(Qt::AscendingOrder); m_ui->m_listAvailableActions->setCurrentRow(m_ui->m_listAvailableActions->currentRow() + 1); } + + emit setupChanged(); } } @@ -243,4 +255,5 @@ void ToolBarEditor::deleteAllActions() { m_ui->m_listAvailableActions->sortItems(Qt::AscendingOrder); updateActionsAvailability(); + emit setupChanged(); } diff --git a/src/gui/toolbareditor.h b/src/gui/toolbareditor.h index fae5003bb..53cc933c2 100755 --- a/src/gui/toolbareditor.h +++ b/src/gui/toolbareditor.h @@ -66,6 +66,9 @@ class ToolBarEditor : public QWidget { void deleteSelectedAction(); void deleteAllActions(); + signals: + void setupChanged(); + private: QScopedPointer m_ui; BaseBar *m_toolBar;