diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/themetuner.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/themetuner.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/themetuner.h b/SQLiteStudio3/guiSQLiteStudio/themetuner.h new file mode 100644 index 0000000..9804464 --- /dev/null +++ b/SQLiteStudio3/guiSQLiteStudio/themetuner.h @@ -0,0 +1,43 @@ +#ifndef THEMETUNER_H +#define THEMETUNER_H + +#include <QObject> +#include <QString> +#include <QHash> + +class ThemeTuner : public QObject +{ + Q_OBJECT + + public: + void tuneTheme(const QString& themeName); + void tuneCurrentTheme(); + void manageCompactLayout(QWidget* w); + void manageCompactLayout(QList<QWidget*> wList); + QString getDefaultCss(const QString& themeName = QString()) const; + + 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; + + static ThemeTuner* instance; + + private slots: + void handleWidgetDestroyed(); + void handleCompactLayoutChange(const QVariant& newValue); +}; + +#define THEME_TUNER ThemeTuner::getInstance() + +#endif // THEMETUNER_H |
