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 56 57
|
#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);
static void registerQWizardThemeTuneRequired(const QString& styleName);
static void deregisterQWizardThemeTuneRequired(const QString& styleName);
static ThemeTuner* getInstance();
static void cleanUp();
private:
ThemeTuner(QObject* parent = 0);
void registerQWizardThemeTuneRequiredInternal(const QString& styleName);
void deregisterQWizardThemeTuneRequiredInternal(const QString& styleName);
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
|