blob: 805ca940919341a68862c277ef2d1c930b583fd9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#ifndef THEMETUNER_H
#define THEMETUNER_H
#include "guiSQLiteStudio_global.h"
#include <functional>
#include <QObject>
#include <QString>
#include <QHash>
class QWizard;
class GUI_API_EXPORT ThemeTuner : public QObject
{
Q_OBJECT
public:
typedef std::function<void(const QString&, QWizard*)> QWizardThemeTuner;
void tuneTheme(const QString& themeName);
void tuneCurrentTheme();
void manageCompactLayout(QWidget* w);
void manageCompactLayout(QList<QWidget*> wList);
QString getDefaultCss(const QString& themeName = QString()) const;
void darkThemeFix(QWizard* wizard);
void registerQWizardThemeTuneRequired(const QString& styleName);
void deregisterQWizardThemeTuneRequired(const QString& styleName);
static ThemeTuner* getInstance();
static void cleanUp();
private:
ThemeTuner(QObject* parent = 0);
void init();
void tuneCss(const QString& themeName);
void tuneMacx();
void applyCss(const QString& css);
QString defaultGeneralCss;
QHash<QString, QString> defaultPerStyleCss;
QList<QWidget*> widgetsForCompactLayout;
QStringList qwizardThemeTuneRequired;
static ThemeTuner* instance;
private slots:
void handleWidgetDestroyed();
void handleCompactLayoutChange(const QVariant& newValue);
};
#define THEME_TUNER ThemeTuner::getInstance()
#endif // THEMETUNER_H
|