From 98e850e031a65ee87d0156f458f50beeba5bec5d Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 4 Jun 2021 13:44:29 +0200 Subject: [PATCH] save --- .../desktop/com.github.rssguard.appdata.xml | 2 +- src/librssguard/gui/dialogs/formmain.ui | 4 +- src/librssguard/gui/dialogs/formsettings.cpp | 4 ++ src/librssguard/gui/settings/settingsgui.cpp | 7 --- src/librssguard/gui/settings/settingsgui.ui | 42 +++++++-------- .../gui/settings/settingsnotifications.cpp | 29 ++++++++++ .../gui/settings/settingsnotifications.h | 30 +++++++++++ .../gui/settings/settingsnotifications.ui | 53 +++++++++++++++++++ src/librssguard/gui/systemtrayicon.cpp | 2 +- src/librssguard/librssguard.pro | 3 ++ src/librssguard/miscellaneous/settings.cpp | 6 +-- src/librssguard/miscellaneous/settings.h | 6 +-- 12 files changed, 149 insertions(+), 39 deletions(-) create mode 100755 src/librssguard/gui/settings/settingsnotifications.cpp create mode 100755 src/librssguard/gui/settings/settingsnotifications.h create mode 100755 src/librssguard/gui/settings/settingsnotifications.ui diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index e4680aa99..8a9bc673d 100644 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -30,7 +30,7 @@ https://martinrotter.github.io/donate/ - + none diff --git a/src/librssguard/gui/dialogs/formmain.ui b/src/librssguard/gui/dialogs/formmain.ui index fc0644130..bd44b283d 100755 --- a/src/librssguard/gui/dialogs/formmain.ui +++ b/src/librssguard/gui/dialogs/formmain.ui @@ -738,7 +738,7 @@ - New web browser tab + New browser tab Ctrl+T @@ -795,7 +795,7 @@ true - &Show tree branches + &Show tree expanders diff --git a/src/librssguard/gui/dialogs/formsettings.cpp b/src/librssguard/gui/dialogs/formsettings.cpp index a3f826946..4f4e26293 100644 --- a/src/librssguard/gui/dialogs/formsettings.cpp +++ b/src/librssguard/gui/dialogs/formsettings.cpp @@ -16,6 +16,7 @@ #include "gui/settings/settingsgeneral.h" #include "gui/settings/settingsgui.h" #include "gui/settings/settingslocalization.h" +#include "gui/settings/settingsnotifications.h" #include "gui/settings/settingsshortcuts.h" FormSettings::FormSettings(QWidget& parent) @@ -33,14 +34,17 @@ FormSettings::FormSettings(QWidget& parent) connect(m_ui.m_buttonBox, &QDialogButtonBox::accepted, this, &FormSettings::saveSettings); connect(m_ui.m_buttonBox, &QDialogButtonBox::rejected, this, &FormSettings::cancelSettings); connect(m_btnApply, &QPushButton::clicked, this, &FormSettings::applySettings); + addSettingsPanel(new SettingsGeneral(&m_settings, this)); addSettingsPanel(new SettingsDatabase(&m_settings, this)); addSettingsPanel(new SettingsGui(&m_settings, this)); + addSettingsPanel(new SettingsNotifications(&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); } diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 68f70c990..f79c7c5f9 100755 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -42,7 +42,6 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se &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_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkCountUnreadMessages, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); @@ -95,9 +94,6 @@ void SettingsGui::loadSettings() { 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 fancy notification settings. - m_ui->m_checkEnableNotifications->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::EnableNotifications)).toBool()); - // Load settings of icon theme. const QString current_theme = qApp->icons()->currentIconTheme(); auto icons = qApp->icons()->installedIconThemes(); @@ -227,9 +223,6 @@ void SettingsGui::saveSettings() { // Make sure that number of unread messages is shown in tray icon as requested. qApp->feedReader()->feedsModel()->notifyWithCounts(); - // Save notifications. - settings()->setValue(GROUP(GUI), GUI::EnableNotifications, m_ui->m_checkEnableNotifications->isChecked()); - // Save selected icon theme. QString selected_icon_theme = m_ui->m_cmbIconTheme->itemData(m_ui->m_cmbIconTheme->currentIndex()).toString(); QString original_icon_theme = qApp->icons()->currentIconTheme(); diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index e8cf48268..e895d0966 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -121,6 +121,12 @@ + + + 0 + 0 + + Tray icon @@ -131,27 +137,6 @@ QFormLayout::ExpandingFieldsGrow - - - - Hide main window when it is minimized - - - - - - - Start application hidden - - - - - - - Enable popup balloon tooltips - - - @@ -166,6 +151,20 @@ + + + + Hide main window when it is minimized + + + + + + + Start application hidden + + + @@ -386,7 +385,6 @@ m_grpTray m_checkMonochromeIcons m_checkCountUnreadMessages - m_checkEnableNotifications m_checkHideWhenMinimized m_checkHidden m_checkCloseTabsDoubleClick diff --git a/src/librssguard/gui/settings/settingsnotifications.cpp b/src/librssguard/gui/settings/settingsnotifications.cpp new file mode 100755 index 000000000..16245f7f2 --- /dev/null +++ b/src/librssguard/gui/settings/settingsnotifications.cpp @@ -0,0 +1,29 @@ +// For license of this file, see /LICENSE.md. + +#include "gui/settings/settingsnotifications.h" + +#include "miscellaneous/settings.h" + +SettingsNotifications::SettingsNotifications(Settings* settings, QWidget* parent) : SettingsPanel(settings, parent) { + m_ui.setupUi(this); + + connect(m_ui.m_checkEnableNotifications, &QCheckBox::toggled, this, &SettingsNotifications::dirtifySettings); +} + +void SettingsNotifications::loadSettings() { + onBeginLoadSettings(); + + // Load fancy notification settings. + m_ui.m_checkEnableNotifications->setChecked(settings()->value(GROUP(Notifications), SETTING(Notifications::EnableNotifications)).toBool()); + + onEndLoadSettings(); +} + +void SettingsNotifications::saveSettings() { + onBeginSaveSettings(); + + // Save notifications. + settings()->setValue(GROUP(Notifications), Notifications::EnableNotifications, m_ui.m_checkEnableNotifications->isChecked()); + + onEndSaveSettings(); +} diff --git a/src/librssguard/gui/settings/settingsnotifications.h b/src/librssguard/gui/settings/settingsnotifications.h new file mode 100755 index 000000000..eac55fb4f --- /dev/null +++ b/src/librssguard/gui/settings/settingsnotifications.h @@ -0,0 +1,30 @@ +// For license of this file, see /LICENSE.md. + +#ifndef SETTINGSNOTIFICATIONS_H +#define SETTINGSNOTIFICATIONS_H + +#include "gui/settings/settingspanel.h" + +#include "ui_settingsnotifications.h" + +class Settings; + +class SettingsNotifications : public SettingsPanel { + Q_OBJECT + + public: + explicit SettingsNotifications(Settings* settings, QWidget* parent = nullptr); + + virtual QString title() const; + virtual void loadSettings(); + virtual void saveSettings(); + + private: + Ui::SettingsNotifications m_ui; +}; + +inline QString SettingsNotifications::title() const { + return tr("Notifications"); +} + +#endif // SETTINGSNOTIFICATIONS_H diff --git a/src/librssguard/gui/settings/settingsnotifications.ui b/src/librssguard/gui/settings/settingsnotifications.ui new file mode 100755 index 000000000..ebde7f9b8 --- /dev/null +++ b/src/librssguard/gui/settings/settingsnotifications.ui @@ -0,0 +1,53 @@ + + + SettingsNotifications + + + + 0 + 0 + 400 + 300 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Enable popup balloon tooltips + + + + + + + + diff --git a/src/librssguard/gui/systemtrayicon.cpp b/src/librssguard/gui/systemtrayicon.cpp index b662b9caa..038f09a79 100644 --- a/src/librssguard/gui/systemtrayicon.cpp +++ b/src/librssguard/gui/systemtrayicon.cpp @@ -69,7 +69,7 @@ bool SystemTrayIcon::isSystemTrayDesired() { } bool SystemTrayIcon::areNotificationsEnabled() { - return qApp->settings()->value(GROUP(GUI), SETTING(GUI::EnableNotifications)).toBool(); + return qApp->settings()->value(GROUP(Notifications), SETTING(Notifications::EnableNotifications)).toBool(); } void SystemTrayIcon::showPrivate() { diff --git a/src/librssguard/librssguard.pro b/src/librssguard/librssguard.pro index 07b6f9531..c255b4dc9 100644 --- a/src/librssguard/librssguard.pro +++ b/src/librssguard/librssguard.pro @@ -61,6 +61,7 @@ HEADERS += core/feeddownloader.h \ exceptions/networkexception.h \ exceptions/scriptexception.h \ gui/reusable/baselineedit.h \ + gui/settings/settingsnotifications.h \ gui/toolbars/basetoolbar.h \ gui/reusable/comboboxwithstatus.h \ gui/reusable/colortoolbutton.h \ @@ -242,6 +243,7 @@ SOURCES += core/feeddownloader.cpp \ exceptions/networkexception.cpp \ exceptions/scriptexception.cpp \ gui/reusable/baselineedit.cpp \ + gui/settings/settingsnotifications.cpp \ gui/toolbars/basetoolbar.cpp \ gui/reusable/comboboxwithstatus.cpp \ gui/reusable/colortoolbutton.cpp \ @@ -410,6 +412,7 @@ FORMS += gui/dialogs/formabout.ui \ gui/settings/settingsgeneral.ui \ gui/settings/settingsgui.ui \ gui/settings/settingslocalization.ui \ + gui/settings/settingsnotifications.ui \ gui/settings/settingsshortcuts.ui \ gui/toolbars/toolbareditor.ui \ network-web/downloaditem.ui \ diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 62a8739b7..adf44ddcb 100755 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -193,9 +193,6 @@ DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true; DKEY GUI::UseTrayIcon = "use_tray_icon"; DVALUE(bool) GUI::UseTrayIconDef = true; -DKEY GUI::EnableNotifications = "enable_notifications"; -DVALUE(bool) GUI::EnableNotificationsDef = true; - DKEY GUI::TabCloseMiddleClick = "tab_close_mid_button"; DVALUE(bool) GUI::TabCloseMiddleClickDef = true; @@ -315,6 +312,9 @@ DKEY Keyboard::ID = "keyboard"; // Notifications. DKEY Notifications::ID = "notifications"; +DKEY Notifications::EnableNotifications = "enable_notifications"; +DVALUE(bool) Notifications::EnableNotificationsDef = true; + // Web browser. DKEY Browser::ID = "browser"; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index 93a88ee83..30e644adf 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -207,9 +207,6 @@ namespace GUI { KEY UnreadNumbersInTrayIcon; VALUE(bool) UnreadNumbersInTrayIconDef; - KEY EnableNotifications; - VALUE(bool) EnableNotificationsDef; - KEY TabCloseMiddleClick; VALUE(bool) TabCloseMiddleClickDef; @@ -363,6 +360,9 @@ namespace Keyboard { // Notifications. namespace Notifications { KEY ID; + + KEY EnableNotifications; + VALUE(bool) EnableNotificationsDef; } // Web browser.