Some cleanups, saving of the settings.
This commit is contained in:
parent
a6a8ca1e40
commit
2bb0543172
@ -18,30 +18,10 @@
|
||||
#include "gui/dialogs/formsettings.h"
|
||||
|
||||
#include "definitions/definitions.h"
|
||||
#include "core/feeddownloader.h"
|
||||
#include "core/feedsmodel.h"
|
||||
#include "core/messagesmodel.h"
|
||||
#include "miscellaneous/application.h"
|
||||
#include "miscellaneous/settings.h"
|
||||
#include "miscellaneous/databasefactory.h"
|
||||
#include "miscellaneous/localization.h"
|
||||
#include "miscellaneous/systemfactory.h"
|
||||
#include "miscellaneous/iconfactory.h"
|
||||
#include "miscellaneous/skinfactory.h"
|
||||
#include "miscellaneous/textfactory.h"
|
||||
#include "network-web/webfactory.h"
|
||||
#include "network-web/silentnetworkaccessmanager.h"
|
||||
#include "gui/systemtrayicon.h"
|
||||
#include "gui/feedmessageviewer.h"
|
||||
#include "gui/feedsview.h"
|
||||
#include "gui/feedstoolbar.h"
|
||||
#include "gui/messagebox.h"
|
||||
#include "gui/basetoolbar.h"
|
||||
#include "gui/messagestoolbar.h"
|
||||
#include "gui/messagesview.h"
|
||||
#include "gui/statusbar.h"
|
||||
#include "gui/dialogs/formmain.h"
|
||||
#include "dynamic-shortcuts/dynamicshortcuts.h"
|
||||
|
||||
#include "gui/settings/settingsbrowsermail.h"
|
||||
#include "gui/settings/settingsdatabase.h"
|
||||
@ -52,14 +32,6 @@
|
||||
#include "gui/settings/settingslocalization.h"
|
||||
#include "gui/settings/settingsshortcuts.h"
|
||||
|
||||
#include <QProcess>
|
||||
#include <QNetworkProxy>
|
||||
#include <QColorDialog>
|
||||
#include <QFileDialog>
|
||||
#include <QKeyEvent>
|
||||
#include <QFontDialog>
|
||||
#include <QDir>
|
||||
|
||||
|
||||
FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_panels(QList<SettingsPanel*>()), m_ui(new Ui::FormSettings), m_settings(qApp->settings()) {
|
||||
m_ui->setupUi(this);
|
||||
@ -72,7 +44,8 @@ FormSettings::FormSettings(QWidget *parent) : QDialog(parent), m_panels(QList<Se
|
||||
m_btnApply->setEnabled(false);
|
||||
|
||||
// Establish needed connections.
|
||||
connect(m_ui->m_buttonBox, SIGNAL(accepted()), this, SLOT(saveSettings()));
|
||||
connect(m_ui->m_buttonBox, &QDialogButtonBox::accepted, this, &FormSettings::saveSettings);
|
||||
connect(m_btnApply, &QPushButton::clicked, this, &FormSettings::applySettings);
|
||||
|
||||
addSettingsPanel(new SettingsGeneral(m_settings, this));
|
||||
addSettingsPanel(new SettingsDatabase(m_settings, this));
|
||||
@ -105,10 +78,38 @@ void FormSettings::promptForRestart() {
|
||||
}
|
||||
|
||||
void FormSettings::saveSettings() {
|
||||
applySettings();
|
||||
accept();
|
||||
}
|
||||
|
||||
void FormSettings::applySettings() {
|
||||
// Save all settings.
|
||||
m_settings->checkSettings();
|
||||
promptForRestart();
|
||||
accept();
|
||||
|
||||
QStringList panels_for_restart;
|
||||
|
||||
foreach (SettingsPanel *panel, m_panels) {
|
||||
if (panel->requiresRestart()) {
|
||||
panels_for_restart.append(panel->title().toLower());
|
||||
}
|
||||
|
||||
panel->saveSettings();
|
||||
}
|
||||
|
||||
if (!panels_for_restart.isEmpty()) {
|
||||
const QStringList changed_settings_description = panels_for_restart.replaceInStrings(QRegExp(QSL("^")), QString::fromUtf8(" • "));
|
||||
|
||||
MessageBox::show(this,
|
||||
QMessageBox::Question,
|
||||
tr("Critical settings were changed"),
|
||||
tr("Some critical settings were changed and will be applied after the application gets restarted. "
|
||||
"\n\nYou have to restart manually."),
|
||||
QString(),
|
||||
tr("Changed categories of settings:\n%1.").arg(changed_settings_description .join(QSL(",\n"))),
|
||||
QMessageBox::Ok, QMessageBox::Ok);
|
||||
}
|
||||
|
||||
m_btnApply->setEnabled(false);
|
||||
}
|
||||
|
||||
void FormSettings::addSettingsPanel(SettingsPanel *panel) {
|
||||
|
@ -40,6 +40,7 @@ class FormSettings : public QDialog {
|
||||
|
||||
// Saves settings into global configuration.
|
||||
void saveSettings();
|
||||
void applySettings();
|
||||
|
||||
private:
|
||||
void addSettingsPanel(SettingsPanel *panel);
|
||||
|
Loading…
x
Reference in New Issue
Block a user