Show (experimental) Qt settings

This commit is contained in:
Martchus 2016-08-14 22:52:15 +02:00
parent 3cbfaddfa5
commit 014b54bd88
3 changed files with 25 additions and 8 deletions

View File

@ -6,6 +6,7 @@
#include <qtutilities/resources/qtconfigarguments.h>
#include <qtutilities/resources/resources.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#if defined(GUI_QTWIDGETS)
# include <QApplication>
@ -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;

View File

@ -8,6 +8,7 @@
#include <qtutilities/resources/resources.h>
#include <qtutilities/settingsdialog/optioncategory.h>
#include <qtutilities/settingsdialog/optioncategorymodel.h>
#include <qtutilities/settingsdialog/qtsettings.h>
#include <qtutilities/widgets/clearlineedit.h>
#include <c++utilities/conversion/stringconversion.h>
@ -402,6 +403,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
category->setIcon(QIcon(QStringLiteral(":/icons/hicolor/32x32/categories/preferences-specific.png")));
category->assignPages(QList<Dialogs::OptionPage *>());
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());

View File

@ -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);
}