Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform 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:
43 std::array<QBrush, Role::MaxRole + 1> brushes;
45 /*
46 Internal cache for multiple backgrounds
47 */
48 std::array<QBrushMap, Role::MaxRole + 1> brushesCache;
49
50protected:
52 QBrush loadBrush(QString fileName, QColor fallbackColor);
53 QBrush loadExtraBrush(QString fileName, QBrush &fallbackBrush);
54
55public:
57
58 QBrush &getBgBrush(Role zone);
59 QBrush getExtraBgBrush(Role zone, int zoneId = 0);
60protected slots:
61 void themeChangedSlot();
62signals:
64};
65
67
68#endif
Definition theme_manager.h:27
QBrush loadBrush(QString fileName, QColor fallbackColor)
Definition theme_manager.cpp:77
QBrush & getBgBrush(Role zone)
Definition theme_manager.cpp:169
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:48
std::array< QBrush, Role::MaxRole+1 > brushes
Definition theme_manager.h:43
void themeChanged()
void themeChangedSlot()
Definition theme_manager.cpp:105
QBrush loadExtraBrush(QString fileName, QBrush &fallbackBrush)
Definition theme_manager.cpp:91
QStringMap & getAvailableThemes()
Definition theme_manager.cpp:40
QBrush getExtraBgBrush(Role zone, int zoneId=0)
Definition theme_manager.cpp:174
void ensureThemeDirectoryExists()
Definition theme_manager.cpp:31
ThemeManager(QObject *parent=nullptr)
Definition theme_manager.cpp:24
QStringMap availableThemes
Definition theme_manager.h:44
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