From 014b54bd889e4fa6aada3c1f063300c62c276361 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 14 Aug 2016 22:52:15 +0200 Subject: [PATCH] Show (experimental) Qt settings --- gui/initiate.cpp | 12 +++++++----- gui/settings.cpp | 10 ++++++++++ gui/settings.h | 11 ++++++++--- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/gui/initiate.cpp b/gui/initiate.cpp index 31c5c49..e4bf443 100644 --- a/gui/initiate.cpp +++ b/gui/initiate.cpp @@ -6,6 +6,7 @@ #include #include +#include #if defined(GUI_QTWIDGETS) # include @@ -23,15 +24,16 @@ int runWidgetsGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs) #ifdef GUI_QTWIDGETS SET_QT_APPLICATION_INFO; QApplication a(argc, argv); + restoreSettings(); + // apply settings specified via command line args after the settings chosen in the GUI to give the CLI options precedence + qtSettings().apply(); + qtConfigArgs.applySettings(qtSettings().hasCustomFont()); // load resources needed by classes of qtutilities QtUtilitiesResources::init(); - // apply settings specified via command line args - qtConfigArgs.applySettings(); - QtGui::restoreSettings(); - QtGui::MainWindow w; + MainWindow w; w.show(); int r = a.exec(); - QtGui::saveSettings(); + saveSettings(); return r; #else CMD_UTILS_START_CONSOLE; diff --git a/gui/settings.cpp b/gui/settings.cpp index 13ce18f..dc6682c 100644 --- a/gui/settings.cpp +++ b/gui/settings.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -402,6 +403,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) : category->setIcon(QIcon(QStringLiteral(":/icons/hicolor/32x32/categories/preferences-specific.png"))); category->assignPages(QList()); categories << category; + + categories << qtSettings().category(); + categoryModel()->setCategories(categories); setMinimumSize(800, 450); @@ -411,6 +415,12 @@ SettingsDialog::SettingsDialog(QWidget *parent) : SettingsDialog::~SettingsDialog() {} +Dialogs::QtSettings &qtSettings() +{ + static Dialogs::QtSettings v; + return v; +} + void restoreSettings() { QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName()); diff --git a/gui/settings.h b/gui/settings.h index e29bf08..62c7bfc 100644 --- a/gui/settings.h +++ b/gui/settings.h @@ -15,6 +15,10 @@ QT_FORWARD_DECLARE_CLASS(QLineEdit) QT_FORWARD_DECLARE_CLASS(QCheckBox) QT_FORWARD_DECLARE_CLASS(QNetworkProxy) +namespace Dialogs { +class QtSettings; +} + namespace Network { class Download; } @@ -80,9 +84,10 @@ public: }; -extern void restoreSettings(); -extern void saveSettings(); -extern void applySettingsToDownload(Network::Download *download); +Dialogs::QtSettings &qtSettings(); +void restoreSettings(); +void saveSettings(); +void applySettingsToDownload(Network::Download *download); }