2016-07-04 23:26:48 +02:00
|
|
|
#ifndef DIALOGS_QT_UTILITIES_QTSETTINGS_H
|
|
|
|
#define DIALOGS_QT_UTILITIES_QTSETTINGS_H
|
2016-04-04 14:49:40 +02:00
|
|
|
|
|
|
|
#include "./optionpage.h"
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
QT_FORWARD_DECLARE_CLASS(QFontDialog)
|
2016-08-14 22:44:25 +02:00
|
|
|
QT_FORWARD_DECLARE_CLASS(QSettings)
|
2016-04-04 14:49:40 +02:00
|
|
|
|
2019-06-10 21:57:46 +02:00
|
|
|
namespace QtUtilities {
|
2016-04-04 14:49:40 +02:00
|
|
|
|
|
|
|
class OptionCategory;
|
2016-08-14 22:44:25 +02:00
|
|
|
struct QtSettingsData;
|
2016-04-04 14:49:40 +02:00
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(QtAppearanceOptionPage)
|
|
|
|
public:
|
2017-05-01 03:16:25 +02:00
|
|
|
explicit QtAppearanceOptionPage(QtSettingsData &settings, QWidget *parentWidget = nullptr);
|
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
private:
|
2017-05-01 03:16:25 +02:00
|
|
|
DECLARE_SETUP_WIDGETS
|
|
|
|
QtSettingsData &m_settings;
|
|
|
|
QFontDialog *m_fontDialog;
|
2016-04-04 14:49:40 +02:00
|
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(QtLanguageOptionPage)
|
|
|
|
public:
|
2017-05-01 03:16:25 +02:00
|
|
|
explicit QtLanguageOptionPage(QtSettingsData &settings, QWidget *parentWidget = nullptr);
|
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
private:
|
2017-05-01 03:16:25 +02:00
|
|
|
DECLARE_SETUP_WIDGETS
|
|
|
|
QtSettingsData &m_settings;
|
2016-08-14 22:44:25 +02:00
|
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
|
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_CTOR(QtEnvOptionPage)
|
|
|
|
public:
|
2017-05-01 03:16:25 +02:00
|
|
|
explicit QtEnvOptionPage(QtSettingsData &settings, QWidget *parentWidget = nullptr);
|
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
private:
|
2023-03-26 21:24:43 +02:00
|
|
|
DECLARE_SETUP_WIDGETS
|
2017-05-01 03:16:25 +02:00
|
|
|
QtSettingsData &m_settings;
|
2016-08-14 22:44:25 +02:00
|
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
|
2017-05-01 03:16:25 +02:00
|
|
|
class QT_UTILITIES_EXPORT QtSettings {
|
2016-08-14 22:44:25 +02:00
|
|
|
public:
|
|
|
|
QtSettings();
|
|
|
|
~QtSettings();
|
|
|
|
|
2023-03-26 21:24:43 +02:00
|
|
|
void disableNotices();
|
2016-08-14 22:44:25 +02:00
|
|
|
void restore(QSettings &settings);
|
|
|
|
void save(QSettings &settings) const;
|
|
|
|
void apply();
|
2023-03-23 22:40:42 +01:00
|
|
|
void reevaluatePaletteAndDefaultIconTheme();
|
|
|
|
bool isPaletteDark();
|
2016-08-14 22:44:25 +02:00
|
|
|
bool hasCustomFont() const;
|
2023-07-02 23:48:46 +02:00
|
|
|
bool hasLocaleChanged() const;
|
2023-07-01 23:43:46 +02:00
|
|
|
operator QtSettingsData &() const;
|
2016-08-14 22:44:25 +02:00
|
|
|
|
|
|
|
OptionCategory *category();
|
2016-04-04 14:49:40 +02:00
|
|
|
|
2016-08-14 22:44:25 +02:00
|
|
|
private:
|
|
|
|
std::unique_ptr<QtSettingsData> m_d;
|
|
|
|
};
|
2019-06-10 21:57:46 +02:00
|
|
|
} // namespace QtUtilities
|
2016-04-04 14:49:40 +02:00
|
|
|
|
2016-08-16 20:16:11 +02:00
|
|
|
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE(QtAppearanceOptionPage)
|
|
|
|
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE(QtLanguageOptionPage)
|
|
|
|
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE(QtEnvOptionPage)
|
|
|
|
|
2016-07-04 23:26:48 +02:00
|
|
|
#endif // DIALOGS_QT_UTILITIES_QTSETTINGS_H
|