Cockatrice 2026-03-05-Development-2.11.0-beta.54
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
theme_manager.h
Go to the documentation of this file.
1
6
7#ifndef THEMEMANAGER_H
8#define THEMEMANAGER_H
9
10#include <QBrush>
11#include <QDir>
12#include <QLoggingCategory>
13#include <QMap>
14#include <QObject>
15#include <QPixmap>
16#include <QString>
17#include <array>
18
19inline Q_LOGGING_CATEGORY(ThemeManagerLog, "theme_manager");
20
21typedef QMap<QString, QString> QStringMap;
22typedef QMap<int, QBrush> QBrushMap;
23
24class QApplication;
25
26class ThemeManager : public QObject
27{
28 Q_OBJECT
29public:
30 ThemeManager(QObject *parent = nullptr);
31
41
42private:
44 std::array<QBrush, Role::MaxRole + 1> brushes;
46 /*
47 Internal cache for multiple backgrounds
48 */
49 std::array<QBrushMap, Role::MaxRole + 1> brushesCache;
50
51protected:
53 QBrush loadBrush(QString fileName, QColor fallbackColor);
54 QBrush loadExtraBrush(QString fileName, QBrush &fallbackBrush);
55
56public:
58
59 QBrush &getBgBrush(Role zone);
60 QBrush getExtraBgBrush(Role zone, int zoneId = 0);
61protected slots:
62 void themeChangedSlot();
63signals:
65};
66
68
69#endif
Definition theme_manager.h:27
QBrush loadBrush(QString fileName, QColor fallbackColor)
Definition theme_manager.cpp:152
QBrush & getBgBrush(Role zone)
Definition theme_manager.cpp:403
QString defaultStyleName
Definition theme_manager.h:43
Role
Definition theme_manager.h:33
@ Table
Definition theme_manager.h:37
@ Hand
Definition theme_manager.h:35
@ MinRole
Definition theme_manager.h:34
@ Player
Definition theme_manager.h:38
@ MaxRole
Definition theme_manager.h:39
@ Stack
Definition theme_manager.h:36
std::array< QBrushMap, Role::MaxRole+1 > brushesCache
Definition theme_manager.h:49
std::array< QBrush, Role::MaxRole+1 > brushes
Definition theme_manager.h:44
void themeChanged()
void themeChangedSlot()
Definition theme_manager.cpp:319
QBrush loadExtraBrush(QString fileName, QBrush &fallbackBrush)
Definition theme_manager.cpp:166
QStringMap & getAvailableThemes()
Definition theme_manager.cpp:111
QBrush getExtraBgBrush(Role zone, int zoneId=0)
Definition theme_manager.cpp:408
void ensureThemeDirectoryExists()
Definition theme_manager.cpp:102
ThemeManager(QObject *parent=nullptr)
Definition theme_manager.cpp:91
QStringMap availableThemes
Definition theme_manager.h:45
QMap< QString, QString > QStringMap
Definition sound_engine.h:21
QMap< int, QBrush > QBrushMap
Definition theme_manager.h:22
Q_LOGGING_CATEGORY(ThemeManagerLog, "theme_manager")
ThemeManager * themeManager
Definition main.cpp:49
QMap< QString, QString > QStringMap
Definition theme_manager.h:21