From e02ceb82bc9d76d24b5301257599a7ec2c25e58d Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 27 Jul 2016 06:26:07 +0200 Subject: [PATCH] Added needed classes. --- rssguard.pro | 27 +- src/gui/dialogs/formsettings.ui | 2 +- src/gui/settings/settingsbrowsermail.cpp | 14 + src/gui/settings/settingsbrowsermail.h | 22 ++ src/gui/settings/settingsbrowsermail.ui | 382 ++++++++++++++++++++ src/gui/settings/settingsdatabase.cpp | 25 ++ src/gui/settings/settingsdatabase.h | 23 ++ src/gui/settings/settingsdatabase.ui | 291 +++++++++++++++ src/gui/settings/settingsdownloads.cpp | 14 + src/gui/settings/settingsdownloads.h | 22 ++ src/gui/settings/settingsdownloads.ui | 75 ++++ src/gui/settings/settingsfeedsmessages.cpp | 14 + src/gui/settings/settingsfeedsmessages.h | 22 ++ src/gui/settings/settingsfeedsmessages.ui | 221 ++++++++++++ src/gui/settings/settingsgeneral.cpp | 25 +- src/gui/settings/settingsgeneral.h | 17 + src/gui/settings/settingsgui.cpp | 14 + src/gui/settings/settingsgui.h | 22 ++ src/gui/settings/settingsgui.ui | 393 +++++++++++++++++++++ src/gui/settings/settingslocalization.cpp | 14 + src/gui/settings/settingslocalization.h | 22 ++ src/gui/settings/settingslocalization.ui | 58 +++ src/gui/settings/settingspanel.cpp | 22 +- src/gui/settings/settingspanel.h | 20 +- src/gui/settings/settingsshortcuts.cpp | 25 ++ src/gui/settings/settingsshortcuts.h | 23 ++ src/gui/settings/settingsshortcuts.ui | 78 ++++ 27 files changed, 1867 insertions(+), 20 deletions(-) create mode 100755 src/gui/settings/settingsbrowsermail.cpp create mode 100755 src/gui/settings/settingsbrowsermail.h create mode 100755 src/gui/settings/settingsbrowsermail.ui create mode 100755 src/gui/settings/settingsdatabase.cpp create mode 100755 src/gui/settings/settingsdatabase.h create mode 100755 src/gui/settings/settingsdatabase.ui create mode 100755 src/gui/settings/settingsdownloads.cpp create mode 100755 src/gui/settings/settingsdownloads.h create mode 100755 src/gui/settings/settingsdownloads.ui create mode 100755 src/gui/settings/settingsfeedsmessages.cpp create mode 100755 src/gui/settings/settingsfeedsmessages.h create mode 100755 src/gui/settings/settingsfeedsmessages.ui create mode 100755 src/gui/settings/settingsgui.cpp create mode 100755 src/gui/settings/settingsgui.h create mode 100755 src/gui/settings/settingsgui.ui create mode 100755 src/gui/settings/settingslocalization.cpp create mode 100755 src/gui/settings/settingslocalization.h create mode 100755 src/gui/settings/settingslocalization.ui create mode 100755 src/gui/settings/settingsshortcuts.cpp create mode 100755 src/gui/settings/settingsshortcuts.h create mode 100755 src/gui/settings/settingsshortcuts.ui diff --git a/rssguard.pro b/rssguard.pro index bcbcd3d35..0f7146574 100755 --- a/rssguard.pro +++ b/rssguard.pro @@ -268,7 +268,14 @@ HEADERS += src/core/feeddownloader.h \ src/network-web/googlesuggest.h \ src/gui/discoverfeedsbutton.h \ src/gui/settings/settingspanel.h \ - src/gui/settings/settingsgeneral.h + src/gui/settings/settingsgeneral.h \ + src/gui/settings/settingsdatabase.h \ + src/gui/settings/settingsshortcuts.h \ + src/gui/settings/settingsgui.h \ + src/gui/settings/settingslocalization.h \ + src/gui/settings/settingsbrowsermail.h \ + src/gui/settings/settingsfeedsmessages.h \ + src/gui/settings/settingsdownloads.h SOURCES += src/core/feeddownloader.cpp \ src/core/feedsmodel.cpp \ @@ -381,7 +388,14 @@ SOURCES += src/core/feeddownloader.cpp \ src/network-web/googlesuggest.cpp \ src/gui/discoverfeedsbutton.cpp \ src/gui/settings/settingspanel.cpp \ - src/gui/settings/settingsgeneral.cpp + src/gui/settings/settingsgeneral.cpp \ + src/gui/settings/settingsdatabase.cpp \ + src/gui/settings/settingsshortcuts.cpp \ + src/gui/settings/settingsgui.cpp \ + src/gui/settings/settingslocalization.cpp \ + src/gui/settings/settingsbrowsermail.cpp \ + src/gui/settings/settingsfeedsmessages.cpp \ + src/gui/settings/settingsdownloads.cpp FORMS += \ src/gui/toolbareditor.ui \ @@ -400,7 +414,14 @@ FORMS += \ src/services/standard/gui/formstandardcategorydetails.ui \ src/services/standard/gui/formstandardimportexport.ui \ src/services/tt-rss/gui/formeditaccount.ui \ - src/gui/settings/settingsgeneral.ui + src/gui/settings/settingsgeneral.ui \ + src/gui/settings/settingsdatabase.ui \ + src/gui/settings/settingsshortcuts.ui \ + src/gui/settings/settingsgui.ui \ + src/gui/settings/settingslocalization.ui \ + src/gui/settings/settingsbrowsermail.ui \ + src/gui/settings/settingsfeedsmessages.ui \ + src/gui/settings/settingsdownloads.ui TRANSLATIONS += localization/qtbase-cs.ts \ localization/qtbase-da.ts \ diff --git a/src/gui/dialogs/formsettings.ui b/src/gui/dialogs/formsettings.ui index 018f987c2..48607423c 100755 --- a/src/gui/dialogs/formsettings.ui +++ b/src/gui/dialogs/formsettings.ui @@ -88,7 +88,7 @@ - 0 + 7 diff --git a/src/gui/settings/settingsbrowsermail.cpp b/src/gui/settings/settingsbrowsermail.cpp new file mode 100755 index 000000000..f75f7f774 --- /dev/null +++ b/src/gui/settings/settingsbrowsermail.cpp @@ -0,0 +1,14 @@ +#include "settingsbrowsermail.h" +#include "ui_settingsbrowsermail.h" + +SettingsBrowserMail::SettingsBrowserMail(QWidget *parent) : + QWidget(parent), + ui(new Ui::SettingsBrowserMail) +{ + ui->setupUi(this); +} + +SettingsBrowserMail::~SettingsBrowserMail() +{ + delete ui; +} diff --git a/src/gui/settings/settingsbrowsermail.h b/src/gui/settings/settingsbrowsermail.h new file mode 100755 index 000000000..4518304e2 --- /dev/null +++ b/src/gui/settings/settingsbrowsermail.h @@ -0,0 +1,22 @@ +#ifndef SETTINGSBROWSERMAIL_H +#define SETTINGSBROWSERMAIL_H + +#include + +namespace Ui { + class SettingsBrowserMail; +} + +class SettingsBrowserMail : public QWidget +{ + Q_OBJECT + + public: + explicit SettingsBrowserMail(QWidget *parent = 0); + ~SettingsBrowserMail(); + + private: + Ui::SettingsBrowserMail *ui; +}; + +#endif // SETTINGSBROWSERMAIL_H diff --git a/src/gui/settings/settingsbrowsermail.ui b/src/gui/settings/settingsbrowsermail.ui new file mode 100755 index 000000000..489b7aa38 --- /dev/null +++ b/src/gui/settings/settingsbrowsermail.ui @@ -0,0 +1,382 @@ + + + SettingsBrowserMail + + + + 0 + 0 + 658 + 200 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + External web browser + + + + + + <html><head/><body><p>If unchecked, then default system-wide web browser is used.</p></body></html> + + + Use custom external web browser + + + false + + + true + + + + + + Web browser executable + + + + + + + + + true + + + Executable file of web browser + + + + + + + &Browse + + + + + + + + + Executable parameters + + + + + + + Parameters to executable + + + + + + + Use sample arguments for + + + + + + + QComboBox::AdjustToContents + + + + Select browser + + + + + + + + Note that "%1" (without quotation marks) is placeholder for URL of selected message. + + + Qt::AlignCenter + + + + + + + + + + + External e-mail client + + + + + + <html><head/><body><p>If unchecked, then default system-wide web browser is used.</p></body></html> + + + Use custom external e-mail client + + + false + + + true + + + + + + E-mail client executable + + + + + + + + + true + + + Executable file of e-mail client + + + + + + + &Browse + + + + + + + + + Executable parameters + + + + + + + Parameters to executable + + + + + + + Use sample arguments for + + + + + + + QComboBox::AdjustToContents + + + + Select client + + + + + + + + Placeholders: + • %1 - title of selected message, + • %2 - body of selected message. + + + 20 + + + + + + + + + + + Proxy + + + + + + Type + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + m_cmbProxyType + + + + + + + + + + Host + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + m_txtProxyHost + + + + + + + + + true + + + Hostname or IP of your proxy server + + + + + + + Port + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + m_spinProxyPort + + + + + + + true + + + 65535 + + + 80 + + + + + + + + + Username + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + m_txtProxyUsername + + + + + + + true + + + Your username for proxy server authentication + + + + + + + Password + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + m_txtProxyPassword + + + + + + + true + + + QLineEdit::PasswordEchoOnEdit + + + Your password for proxy server authentication + + + + + + + true + + + Display password + + + + + + + Note that these settings are applied only on newly established connections. + + + Qt::AlignCenter + + + true + + + + + + + + + + + + diff --git a/src/gui/settings/settingsdatabase.cpp b/src/gui/settings/settingsdatabase.cpp new file mode 100755 index 000000000..8a4820e71 --- /dev/null +++ b/src/gui/settings/settingsdatabase.cpp @@ -0,0 +1,25 @@ +#include "gui/settings/settingsdatabase.h" + + +SettingsDatabase::SettingsDatabase(QWidget *parent) + : QWidget(parent), m_ui(new Ui::SettingsDatabase) { + m_ui->setupUi(this); +} + +SettingsDatabase::~SettingsDatabase() { + delete m_ui; +} + +void SettingsDatabase::loadSettings() { + onBeginLoadSettings(); + + + onEndLoadSettings(); +} + +void SettingsDatabase::saveSettings() { + onBeginSaveSettings(); + + + onEndSaveSettings(); +} diff --git a/src/gui/settings/settingsdatabase.h b/src/gui/settings/settingsdatabase.h new file mode 100755 index 000000000..b0c3c33a6 --- /dev/null +++ b/src/gui/settings/settingsdatabase.h @@ -0,0 +1,23 @@ +#ifndef SETTINGSDATABASE_H +#define SETTINGSDATABASE_H + +#include "gui/settings/settingspanel.h" + +#include "ui_settingsdatabase.h" + + +class SettingsDatabase : public SettingsPanel { + Q_OBJECT + + public: + explicit SettingsDatabase(QWidget *parent = 0); + virtual ~SettingsDatabase(); + + void loadSettings(); + void saveSettings(); + + private: + Ui::SettingsDatabase *m_ui; +}; + +#endif // SETTINGSDATABASE_H diff --git a/src/gui/settings/settingsdatabase.ui b/src/gui/settings/settingsdatabase.ui new file mode 100755 index 000000000..0f726e32d --- /dev/null +++ b/src/gui/settings/settingsdatabase.ui @@ -0,0 +1,291 @@ + + + SettingsDatabase + + + + 0 + 0 + 558 + 282 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + WARNING: Note that switching to another data storage type will NOT copy existing your data from currently active data storage to newly selected one. + + + Qt::AlignCenter + + + true + + + + + + + Database driver + + + m_cmbDatabaseDriver + + + + + + + + + + 1 + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Use in-memory database as the working database + + + + + + + Usage of in-memory working database has several advantages and pitfalls. Make sure that you are familiar with these before you turn this feature on. Advantages: +<ul> +<li>higher speed for feed/message manipulations (especially with thousands of messages displayed),</li> +<li>whole database stored in RAM, thus your hard drive can rest more.</li> +</ul> +Disadvantages: +<ul> +<li>if application crashes, your changes from last session are lost,</li> +<li>application startup and shutdown can take little longer (max. 2 seconds).</li> +</ul> +Authors of this application are NOT responsible for lost data. + + + Qt::RichText + + + true + + + 20 + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Hostname + + + m_txtMysqlHostname + + + + + + + + + + + + Port + + + m_spinMysqlPort + + + + + + + + 100 + 0 + + + + 1 + + + 65536 + + + 3306 + + + + + + + + + Username + + + m_txtMysqlUsername + + + + + + + + + + Password + + + m_txtMysqlPassword + + + + + + + + + + + + Test setup + + + false + + + + + + + + 0 + 0 + + + + Qt::RightToLeft + + + + + + + + + + true + + + + Note that speed of used MySQL server and latency of used connection medium HEAVILY influences the final performance of this application. Using slow database connections leads to bad performance when browsing feeds or messages. + + + Qt::AlignCenter + + + true + + + 10 + + + + + + + &Show password + + + true + + + + + + + + + + Working database + + + + + + + + + + + + LabelWithStatus + QWidget +
labelwithstatus.h
+ 1 +
+ + LineEditWithStatus + QWidget +
lineeditwithstatus.h
+ 1 +
+
+ + +
diff --git a/src/gui/settings/settingsdownloads.cpp b/src/gui/settings/settingsdownloads.cpp new file mode 100755 index 000000000..ed0ce52cf --- /dev/null +++ b/src/gui/settings/settingsdownloads.cpp @@ -0,0 +1,14 @@ +#include "settingsdownloads.h" +#include "ui_settingsdownloads.h" + +SettingsDownloads::SettingsDownloads(QWidget *parent) : + QWidget(parent), + ui(new Ui::SettingsDownloads) +{ + ui->setupUi(this); +} + +SettingsDownloads::~SettingsDownloads() +{ + delete ui; +} diff --git a/src/gui/settings/settingsdownloads.h b/src/gui/settings/settingsdownloads.h new file mode 100755 index 000000000..3bfa7c2fa --- /dev/null +++ b/src/gui/settings/settingsdownloads.h @@ -0,0 +1,22 @@ +#ifndef SETTINGSDOWNLOADS_H +#define SETTINGSDOWNLOADS_H + +#include + +namespace Ui { + class SettingsDownloads; +} + +class SettingsDownloads : public QWidget +{ + Q_OBJECT + + public: + explicit SettingsDownloads(QWidget *parent = 0); + ~SettingsDownloads(); + + private: + Ui::SettingsDownloads *ui; +}; + +#endif // SETTINGSDOWNLOADS_H diff --git a/src/gui/settings/settingsdownloads.ui b/src/gui/settings/settingsdownloads.ui new file mode 100755 index 000000000..5ae3b7bef --- /dev/null +++ b/src/gui/settings/settingsdownloads.ui @@ -0,0 +1,75 @@ + + + SettingsDownloads + + + + 0 + 0 + 758 + 300 + + + + Form + + + + + + Open download manager when new download is started + + + + + + + Target directory for downloaded files + + + + + + Ask for each individual downloaded file + + + + + + + + + Save all downloaded files to + + + true + + + + + + + true + + + Target directory where all downloaded files are saved + + + + + + + &Browse + + + + + + + + + + + + + diff --git a/src/gui/settings/settingsfeedsmessages.cpp b/src/gui/settings/settingsfeedsmessages.cpp new file mode 100755 index 000000000..f07e75544 --- /dev/null +++ b/src/gui/settings/settingsfeedsmessages.cpp @@ -0,0 +1,14 @@ +#include "settingsfeedsmessages.h" +#include "ui_settingsfeedsmessages.h" + +SettingsFeedsMessages::SettingsFeedsMessages(QWidget *parent) : + QWidget(parent), + ui(new Ui::SettingsFeedsMessages) +{ + ui->setupUi(this); +} + +SettingsFeedsMessages::~SettingsFeedsMessages() +{ + delete ui; +} diff --git a/src/gui/settings/settingsfeedsmessages.h b/src/gui/settings/settingsfeedsmessages.h new file mode 100755 index 000000000..e00cf2632 --- /dev/null +++ b/src/gui/settings/settingsfeedsmessages.h @@ -0,0 +1,22 @@ +#ifndef SETTINGSFEEDSMESSAGES_H +#define SETTINGSFEEDSMESSAGES_H + +#include + +namespace Ui { + class SettingsFeedsMessages; +} + +class SettingsFeedsMessages : public QWidget +{ + Q_OBJECT + + public: + explicit SettingsFeedsMessages(QWidget *parent = 0); + ~SettingsFeedsMessages(); + + private: + Ui::SettingsFeedsMessages *ui; +}; + +#endif // SETTINGSFEEDSMESSAGES_H diff --git a/src/gui/settings/settingsfeedsmessages.ui b/src/gui/settings/settingsfeedsmessages.ui new file mode 100755 index 000000000..c3cc4cf76 --- /dev/null +++ b/src/gui/settings/settingsfeedsmessages.ui @@ -0,0 +1,221 @@ + + + SettingsFeedsMessages + + + + 0 + 0 + 686 + 208 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + Feeds && categories + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Update all feed on application startup + + + + + + + Auto-update all feeds every + + + + + + + Feed connection timeout + + + + + + + Connection timeout is time interval which is reserved for downloading new messages for the feed. If this time interval elapses, then download process is aborted. + + + ms + + + 100 + + + 45000 + + + 100 + + + + + + + Message count format in feed list + + + + + + + + + + true + + + + + + + + true + + + + Enter format for count of messages displayed next to each feed/category in feed list. Use "%all" and "%unread" strings which are placeholders for the actual count of all (or unread) messages. + + + Qt::AlignCenter + + + true + + + + + + + false + + + false + + + true + + + + + + + + Messages + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Remove all read messages from all feeds on application exit + + + + + + + Keep message selection in the middle of the message list viewport + + + + + + + Use custom date/time format (overrides format loaded from active localization) + + + true + + + true + + + + + + + + + + Internal message browser fonts + + + + + + + + + + + + + &Change font + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + TimeSpinBox + QDoubleSpinBox +
timespinbox.h
+
+
+ + +
diff --git a/src/gui/settings/settingsgeneral.cpp b/src/gui/settings/settingsgeneral.cpp index 05698de9f..961cfdb13 100755 --- a/src/gui/settings/settingsgeneral.cpp +++ b/src/gui/settings/settingsgeneral.cpp @@ -1,3 +1,20 @@ +// This file is part of RSS Guard. +// +// Copyright (C) 2011-2016 by Martin Rotter +// +// RSS Guard is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// RSS Guard is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with RSS Guard. If not, see . + #include "gui/settings/settingsgeneral.h" #include "miscellaneous/systemfactory.h" @@ -15,6 +32,8 @@ SettingsGeneral::~SettingsGeneral() { } void SettingsGeneral::loadSettings() { + onBeginLoadSettings(); + m_ui->m_checkForUpdatesOnStart->setChecked(settings()->value(GROUP(General), SETTING(General::UpdateOnStartup)).toBool()); // Load auto-start status. @@ -42,10 +61,12 @@ void SettingsGeneral::loadSettings() { m_ui->m_checkRemoveTrolltechJunk->setVisible(false); #endif - SettingsPanel::loadSettings(); + onEndLoadSettings(); } void SettingsGeneral::saveSettings() { + onBeginSaveSettings(); + // If auto-start feature is available and user wants to turn it on, then turn it on. if (m_ui->m_checkAutostart->isChecked()) { qApp->system()->setAutoStartStatus(SystemFactory::Enabled); @@ -57,5 +78,5 @@ void SettingsGeneral::saveSettings() { settings()->setValue(GROUP(General), General::UpdateOnStartup, m_ui->m_checkForUpdatesOnStart->isChecked()); settings()->setValue(GROUP(General), General::RemoveTrolltechJunk, m_ui->m_checkRemoveTrolltechJunk->isChecked()); - SettingsPanel::saveSettings(); + onEndSaveSettings(); } diff --git a/src/gui/settings/settingsgeneral.h b/src/gui/settings/settingsgeneral.h index eb216f354..bf0c1b1a8 100755 --- a/src/gui/settings/settingsgeneral.h +++ b/src/gui/settings/settingsgeneral.h @@ -1,3 +1,20 @@ +// This file is part of RSS Guard. +// +// Copyright (C) 2011-2016 by Martin Rotter +// +// RSS Guard is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// RSS Guard is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with RSS Guard. If not, see . + #ifndef SETTINGSGENERAL_H #define SETTINGSGENERAL_H diff --git a/src/gui/settings/settingsgui.cpp b/src/gui/settings/settingsgui.cpp new file mode 100755 index 000000000..89885024b --- /dev/null +++ b/src/gui/settings/settingsgui.cpp @@ -0,0 +1,14 @@ +#include "settingsgui.h" +#include "ui_settingsgui.h" + +SettingsGui::SettingsGui(QWidget *parent) : + QWidget(parent), + ui(new Ui::SettingsGui) +{ + ui->setupUi(this); +} + +SettingsGui::~SettingsGui() +{ + delete ui; +} diff --git a/src/gui/settings/settingsgui.h b/src/gui/settings/settingsgui.h new file mode 100755 index 000000000..9c11c47d5 --- /dev/null +++ b/src/gui/settings/settingsgui.h @@ -0,0 +1,22 @@ +#ifndef SETTINGSGUI_H +#define SETTINGSGUI_H + +#include + +namespace Ui { + class SettingsGui; +} + +class SettingsGui : public QWidget +{ + Q_OBJECT + + public: + explicit SettingsGui(QWidget *parent = 0); + ~SettingsGui(); + + private: + Ui::SettingsGui *ui; +}; + +#endif // SETTINGSGUI_H diff --git a/src/gui/settings/settingsgui.ui b/src/gui/settings/settingsgui.ui new file mode 100755 index 000000000..5de773f9d --- /dev/null +++ b/src/gui/settings/settingsgui.ui @@ -0,0 +1,393 @@ + + + SettingsGui + + + + 0 + 0 + 670 + 394 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QTabWidget::North + + + 0 + + + + Icons && skins + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::NoFrame + + + true + + + + + 0 + 0 + 664 + 368 + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Icons + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Icon theme + + + m_cmbIconTheme + + + + + + + + + + + + + Skins + + + + + + + 0 + 0 + + + + 0 + + + false + + + false + + + false + + + 80 + + + + 1 + + + + + + + + Active skin: + + + + + + + + + + + + + + Selected skin: + + + + + + + + + + + + + + + + + + + + + + Tray area && notifications + + + + + + Tray icon + + + true + + + + QFormLayout::ExpandingFieldsGrow + + + + + Hide main window when it is minimized + + + + + + + Start application hidden + + + + + + + Enable popup balloon tooltips + + + + + + + + + + + Tabs + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Open new tabs with left mouse button double-click on tab bar + + + + + + + Hide tab bar if just one tab is visible + + + + + + + Close tabs with + + + + + + Right mouse button double-click + + + + + + + Middle mouse button single-click + + + + + + + + + + + Toolbars + + + + + + + + + 0 + + + + Toolbar for feeds list + + + + + Toolbar for messages list + + + + + Statusbar + + + + + + + + + 0 + 1 + + + + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + Toolbar button style + + + + + + + Select toolbar to edit + + + + + + + + + + + + ToolBarEditor + QWidget +
toolbareditor.h
+ 1 +
+
+ + +
diff --git a/src/gui/settings/settingslocalization.cpp b/src/gui/settings/settingslocalization.cpp new file mode 100755 index 000000000..f52c1d2d7 --- /dev/null +++ b/src/gui/settings/settingslocalization.cpp @@ -0,0 +1,14 @@ +#include "settingslocalization.h" +#include "ui_settingslocalization.h" + +SettingsLocalization::SettingsLocalization(QWidget *parent) : + QWidget(parent), + ui(new Ui::SettingsLocalization) +{ + ui->setupUi(this); +} + +SettingsLocalization::~SettingsLocalization() +{ + delete ui; +} diff --git a/src/gui/settings/settingslocalization.h b/src/gui/settings/settingslocalization.h new file mode 100755 index 000000000..f89cd1594 --- /dev/null +++ b/src/gui/settings/settingslocalization.h @@ -0,0 +1,22 @@ +#ifndef SETTINGSLOCALIZATION_H +#define SETTINGSLOCALIZATION_H + +#include + +namespace Ui { + class SettingsLocalization; +} + +class SettingsLocalization : public QWidget +{ + Q_OBJECT + + public: + explicit SettingsLocalization(QWidget *parent = 0); + ~SettingsLocalization(); + + private: + Ui::SettingsLocalization *ui; +}; + +#endif // SETTINGSLOCALIZATION_H diff --git a/src/gui/settings/settingslocalization.ui b/src/gui/settings/settingslocalization.ui new file mode 100755 index 000000000..e4c48a24d --- /dev/null +++ b/src/gui/settings/settingslocalization.ui @@ -0,0 +1,58 @@ + + + SettingsLocalization + + + + 0 + 0 + 400 + 300 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QAbstractItemView::NoEditTriggers + + + 0 + + + false + + + true + + + false + + + 0 + + + 80 + + + + + + + + diff --git a/src/gui/settings/settingspanel.cpp b/src/gui/settings/settingspanel.cpp index 55f9b0ddc..47cc2e7d2 100755 --- a/src/gui/settings/settingspanel.cpp +++ b/src/gui/settings/settingspanel.cpp @@ -15,26 +15,36 @@ // You should have received a copy of the GNU General Public License // along with RSS Guard. If not, see . - #include "gui/settings/settingspanel.h" #include "miscellaneous/settings.h" -SettingsPanel::SettingsPanel(Settings *settings, QWidget *parent) : QWidget(parent), m_settings(settings) { +SettingsPanel::SettingsPanel(Settings *settings, QWidget *parent) + : QWidget(parent), m_isDirty(false), m_isLoading(false), m_settings(settings) { } -void SettingsPanel::loadSettings() { +void SettingsPanel::onBeginLoadSettings() { + m_isLoading = true; +} + +void SettingsPanel::onEndLoadSettings() { + m_isLoading = false; setIsDirty(false); } -void SettingsPanel::saveSettings() { +void SettingsPanel::onBeginSaveSettings() { +} + +void SettingsPanel::onEndSaveSettings() { setIsDirty(false); } void SettingsPanel::dirtifySettings() { - setIsDirty(true); - emit settingsChanged(); + if (!m_isLoading) { + setIsDirty(true); + emit settingsChanged(); + } } bool SettingsPanel::isDirty() const { diff --git a/src/gui/settings/settingspanel.h b/src/gui/settings/settingspanel.h index 4e7c064c6..407f7be5a 100755 --- a/src/gui/settings/settingspanel.h +++ b/src/gui/settings/settingspanel.h @@ -15,7 +15,6 @@ // You should have received a copy of the GNU General Public License // along with RSS Guard. If not, see . - #ifndef SETTINGSPANEL_H #define SETTINGSPANEL_H @@ -30,15 +29,14 @@ class SettingsPanel : public QWidget { public: explicit SettingsPanel(Settings *settings, QWidget *parent = 0); - // Call this base implementation in the end of your subclass implementation. - virtual void loadSettings(); - - // Call this base implementation in the end of your subclass implementation. - virtual void saveSettings(); + virtual void loadSettings() = 0; + virtual void saveSettings() = 0; protected: - // Sets this settings panel as dirty (some settings are changed) and emits the signal. - void dirtifySettings(); + void onBeginLoadSettings(); + void onEndLoadSettings(); + void onBeginSaveSettings(); + void onEndSaveSettings(); // These methods should not be probably called by subclasses. bool isDirty() const; @@ -47,11 +45,17 @@ class SettingsPanel : public QWidget { // Settings to use to save/load. Settings *settings() const; + protected slots: + // Sets this settings panel as dirty (some settings are changed) and emits the signal. + // NOTE: This will be probably called by subclasses when user changes some stuff. + void dirtifySettings(); + signals: void settingsChanged(); private: bool m_isDirty; + bool m_isLoading; Settings *m_settings; }; diff --git a/src/gui/settings/settingsshortcuts.cpp b/src/gui/settings/settingsshortcuts.cpp new file mode 100755 index 000000000..c7ab5b77b --- /dev/null +++ b/src/gui/settings/settingsshortcuts.cpp @@ -0,0 +1,25 @@ +#include "gui/settings/settingsshortcuts.h" + + +SettingsShortcuts::SettingsShortcuts(QWidget *parent) + : QWidget(parent), m_ui(new Ui::SettingsShortcuts) { + m_ui->setupUi(this); +} + +SettingsShortcuts::~SettingsShortcuts() { + delete m_ui; +} + +void SettingsShortcuts::loadSettings() { + onBeginLoadSettings(); + + + onEndLoadSettings(); +} + +void SettingsShortcuts::saveSettings() { + onBeginSaveSettings(); + + + onEndSaveSettings(); +} diff --git a/src/gui/settings/settingsshortcuts.h b/src/gui/settings/settingsshortcuts.h new file mode 100755 index 000000000..bf66ba1a6 --- /dev/null +++ b/src/gui/settings/settingsshortcuts.h @@ -0,0 +1,23 @@ +#ifndef SETTINGSSHORTCUTS_H +#define SETTINGSSHORTCUTS_H + +#include "gui/settings/settingspanel.h" + +#include "ui_settingsshortcuts.h" + + +class SettingsShortcuts : public SettingsPanel { + Q_OBJECT + + public: + explicit SettingsShortcuts(QWidget *parent = 0); + virtual ~SettingsShortcuts(); + + void loadSettings(); + void saveSettings(); + + private: + Ui::SettingsShortcuts *m_ui; +}; + +#endif // SETTINGSSHORTCUTS_H diff --git a/src/gui/settings/settingsshortcuts.ui b/src/gui/settings/settingsshortcuts.ui new file mode 100755 index 000000000..7747742ff --- /dev/null +++ b/src/gui/settings/settingsshortcuts.ui @@ -0,0 +1,78 @@ + + + SettingsShortcuts + + + + 0 + 0 + 785 + 526 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::NoFrame + + + true + + + + + 0 + 0 + 785 + 526 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + DynamicShortcutsWidget + QWidget +
dynamicshortcutswidget.h
+ 1 +
+
+ + +