Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTheme.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2025 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
#ifndef KISTHEME_H
7
#define KISTHEME_H
8
9
#include <QObject>
10
#include <QQmlEngine>
11
#include <lager/cursor.hpp>
12
#include <lager/extra/qt.hpp>
13
14
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
15
#include <
kcolorscheme.h
>
16
#else
17
#include <KColorScheme>
18
#endif
19
class
KisThemeColorGroup
:
public
QObject
20
{
21
Q_OBJECT
22
QML_UNCREATABLE(
"Use Theme instead"
)
23
Q_PROPERTY(
int
state
READ
state
WRITE
setState
NOTIFY
stateChanged
)
24
public:
25
KisThemeColorGroup
(
KColorScheme
::ColorSet _set =
KColorScheme
::
View
, QObject *parent =
nullptr
);
26
~
KisThemeColorGroup
();
27
28
lager::cursor<
KColorScheme
>
scheme
;
29
LAGER_QT_READER
(
int
, colorSet);
30
31
// Foreground roles: used for text.
32
LAGER_QT_READER
(QColor, textColor);
33
LAGER_QT_READER
(QColor, disabledTextColor);
34
LAGER_QT_READER
(QColor, activeTextColor);
35
36
LAGER_QT_READER
(QColor, linkColor);
37
LAGER_QT_READER
(QColor, visitedLinkColor);
38
39
LAGER_QT_READER
(QColor, negativeTextColor);
40
LAGER_QT_READER
(QColor, neutralTextColor);
41
LAGER_QT_READER
(QColor, positiveTextColor);
42
43
// Background roles: used for backgrounds.
44
LAGER_QT_READER
(QColor, backgroundColor);
45
LAGER_QT_READER
(QColor, activeBackgroundColor);
46
47
LAGER_QT_READER
(QColor, linkBackgroundColor);
48
LAGER_QT_READER
(QColor, visitedLinkBackgroundColor);
49
50
LAGER_QT_READER
(QColor, negativeBackgroundColor);
51
LAGER_QT_READER
(QColor, neutralBackgroundColor);
52
LAGER_QT_READER
(QColor, positiveBackgroundColor);
53
54
LAGER_QT_READER
(QColor, alternateBackgroundColor);
55
56
// Decoration roles: used for borders.
57
LAGER_QT_READER
(QColor, focusColor);
58
LAGER_QT_READER
(QColor, hoverColor);
59
60
// Shade roles: used for 3d elements like bevels.
61
62
LAGER_QT_READER
(QColor, lightShadeColor);
63
LAGER_QT_READER
(QColor, midLightShadeColor);
64
LAGER_QT_READER
(QColor, midShadeColor);
65
LAGER_QT_READER
(QColor, darkShadeColor);
66
LAGER_QT_READER
(QColor, shadowShadeColor);
67
68
void
updateColorScheme
(const QString filename);
69
void
setState
(
int
newState);
70
int
state
();
71
private Q_SLOTS:
72
void
updateState
();
73
74
Q_SIGNALS:
75
void
schemeChanged
();
76
void
stateChanged
();
77
private:
78
KColorScheme
::ColorSet
m_set
=
KColorScheme
::
Window
;
79
QPalette::ColorGroup
m_state
= QPalette::
Active
;
80
81
KColorScheme
m_active
;
82
KColorScheme
m_inactive
;
83
KColorScheme
m_disabled
;
84
};
85
93
class
KisTheme
: public QObject
94
{
95
Q_OBJECT
96
97
Q_PROPERTY(
KisThemeColorGroup
*view READ
view
() NOTIFY viewChanged())
98
Q_PROPERTY(
KisThemeColorGroup
*window READ window() NOTIFY windowChanged())
99
Q_PROPERTY(
KisThemeColorGroup
*
button
READ
button
() NOTIFY buttonChanged())
100
Q_PROPERTY(
KisThemeColorGroup
*selection READ selection() NOTIFY selectionChanged())
101
Q_PROPERTY(
KisThemeColorGroup
*tooltip READ tooltip() NOTIFY tooltipChanged())
102
103
QML_NAMED_ELEMENT(Theme)
104
public:
105
KisTheme
(QObject *parent =
nullptr
);
106
107
KisThemeColorGroup
viewModel;
108
KisThemeColorGroup
windowModel;
109
KisThemeColorGroup
buttonModel;
110
KisThemeColorGroup
selectionModel;
111
KisThemeColorGroup
tooltipModel;
112
113
KisThemeColorGroup
*view();
114
KisThemeColorGroup
*window();
115
KisThemeColorGroup
*
button
();
116
KisThemeColorGroup
*selection();
117
KisThemeColorGroup
*tooltip();
118
public Q_SLOTS:
119
void
slotUpdateThemes();
120
Q_SIGNALS:
121
void
viewChanged();
122
void
windowChanged();
123
void
buttonChanged();
124
void
selectionChanged();
125
void
tooltipChanged();
126
};
127
128
#endif
// KISTHEME_H
KColorScheme
Definition
kcolorscheme.h:53
KisThemeColorGroup
Definition
KisTheme.h:20
KisThemeColorGroup::m_set
KColorScheme::ColorSet m_set
Definition
KisTheme.h:78
KisThemeColorGroup::setState
void setState(int newState)
Definition
KisTheme.cpp:91
KisThemeColorGroup::m_active
KColorScheme m_active
Definition
KisTheme.h:81
KisThemeColorGroup::stateChanged
void stateChanged()
KisThemeColorGroup::schemeChanged
void schemeChanged()
KisThemeColorGroup::state
int state
Definition
KisTheme.h:23
KisThemeColorGroup::updateState
void updateState()
Definition
KisTheme.cpp:103
KisThemeColorGroup::m_state
QPalette::ColorGroup m_state
Definition
KisTheme.h:79
KisThemeColorGroup::scheme
lager::cursor< KColorScheme > scheme
Definition
KisTheme.h:28
KisThemeColorGroup::m_disabled
KColorScheme m_disabled
Definition
KisTheme.h:83
KisThemeColorGroup::updateColorScheme
void updateColorScheme(const QString filename)
Definition
KisTheme.cpp:81
KisThemeColorGroup::m_inactive
KColorScheme m_inactive
Definition
KisTheme.h:82
KisThemeColorGroup::LAGER_QT_READER
LAGER_QT_READER(int, colorSet)
KisTheme
The KisTheme class.
Definition
KisTheme.h:94
KisTheme::view
KisThemeColorGroup * view
Definition
KisTheme.h:97
View
Definition
View.h:25
Window
Definition
Window.h:23
InputLayerMode::Active
@ Active
kcolorscheme.h
button
QString button(const QWheelEvent &ev)
Definition
kis_tablet_debugger.cpp:24
qmlmodules
components
KisTheme.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52