8#include <KDecoration2/DecoratedClient>
9#include <KDecoration2/DecorationSettings>
10#include <KSharedConfig>
11#include <QGuiApplication>
27void ColorSettings::init(
const QPalette &pal)
30 KConfigGroup wmConfig(KSharedConfig::openConfig(QStringLiteral(
"kdeglobals")), QStringLiteral(
"WM"));
31 m_activeFrameColor = wmConfig.readEntry(
"frame", pal.color(QPalette::Active, QPalette::Window));
32 m_inactiveFrameColor = wmConfig.readEntry(
"inactiveFrame", m_activeFrameColor);
33 m_activeTitleBarColor = wmConfig.readEntry(
"activeBackground", pal.color(QPalette::Active, QPalette::Highlight));
34 m_inactiveTitleBarColor = wmConfig.readEntry(
"inactiveBackground", m_inactiveFrameColor);
35 m_activeTitleBarBlendColor = wmConfig.readEntry(
"activeBlend", m_activeTitleBarColor.darker(110));
36 m_inactiveTitleBarBlendColor = wmConfig.readEntry(
"inactiveBlend", m_inactiveTitleBarColor.darker(110));
37 m_activeFontColor = wmConfig.readEntry(
"activeForeground", pal.color(QPalette::Active, QPalette::HighlightedText));
38 m_inactiveFontColor = wmConfig.readEntry(
"inactiveForeground", m_activeFontColor.darker());
39 m_activeButtonColor = wmConfig.readEntry(
"activeTitleBtnBg", m_activeFrameColor.lighter(130));
40 m_inactiveButtonColor = wmConfig.readEntry(
"inactiveTitleBtnBg", m_inactiveFrameColor.lighter(130));
41 m_activeHandle = wmConfig.readEntry(
"handle", m_activeFrameColor);
42 m_inactiveHandle = wmConfig.readEntry(
"inactiveHandle", m_activeHandle);
48 , m_decoration(nullptr)
93 return m_decoration ? m_decoration->settings()->font() : QFont();
96static int decorationButton(KDecoration2::DecorationButtonType
type)
99 case KDecoration2::DecorationButtonType::Menu:
101 case KDecoration2::DecorationButtonType::ApplicationMenu:
103 case KDecoration2::DecorationButtonType::OnAllDesktops:
105 case KDecoration2::DecorationButtonType::Minimize:
107 case KDecoration2::DecorationButtonType::Maximize:
109 case KDecoration2::DecorationButtonType::Close:
111 case KDecoration2::DecorationButtonType::ContextHelp:
113 case KDecoration2::DecorationButtonType::Shade:
115 case KDecoration2::DecorationButtonType::KeepBelow:
117 case KDecoration2::DecorationButtonType::KeepAbove:
128 for (
auto it : m_decoration->settings()->decorationButtonsLeft()) {
129 ret << decorationButton(it);
139 for (
auto it : m_decoration->settings()->decorationButtonsRight()) {
140 ret << decorationButton(it);
158 disconnect(m_decoration->client(), &KDecoration2::DecoratedClient::activeChanged,
this, &DecorationOptions::slotActiveChanged);
159 auto s = m_decoration->settings();
163 disconnect(m_paletteConnection);
166 connect(m_decoration->client(), &KDecoration2::DecoratedClient::activeChanged,
this, &DecorationOptions::slotActiveChanged);
167 m_paletteConnection = connect(m_decoration->client(), &KDecoration2::DecoratedClient::paletteChanged,
this, [
this](
const QPalette &pal) {
168 m_colors.update(pal);
169 Q_EMIT colorsChanged();
171 auto s = m_decoration->settings();
178void DecorationOptions::slotActiveChanged()
183 if (m_active == m_decoration->client()->isActive()) {
186 m_active = m_decoration->client()->isActive();
193 return QGuiApplication::styleHints()->mousePressAndHoldInterval();
211 if (m_left !=
left) {
218 if (m_right !=
right) {
261Borders::operator QMargins()
const
263 return QMargins(m_left, m_top, m_right, m_bottom);
261Borders::operator QMargins()
const {
…}
268#include "moc_decorationoptions.cpp"
void setBorders(int value)
void setBottom(int bottom)
Borders(QObject *parent=nullptr)
void setSideBorders(int value)
void setAllBorders(int value)
const QColor & activeButtonColor() const
const QColor & activeTitleBarBlendColor() const
const QColor & activeFrame() const
const QColor & inactiveTitleBarBlendColor() const
const QColor & inactiveFrame() const
const QColor & inactiveTitleBarColor() const
const QColor & activeTitleBarColor() const
const QColor & inactiveHandle() const
const QColor & activeHandle() const
const QColor & activeFont() const
void update(const QPalette &pal)
const QColor & inactiveButtonColor() const
ColorSettings(const QPalette &pal)
const QColor & inactiveFont() const
QList< int > titleButtonsRight
KDecoration2::Decoration * decoration() const
QColor titleBarBlendColor
void setDecoration(KDecoration2::Decoration *decoration)
DecorationOptions(QObject *parent=nullptr)
@ DecorationButtonKeepAbove
@ DecorationButtonApplicationMenu
@ DecorationButtonMaximizeRestore
@ DecorationButtonKeepBelow
@ DecorationButtonOnAllDesktops
@ DecorationButtonMinimize
@ DecorationButtonQuickHelp
int mousePressAndHoldInterval
~DecorationOptions() override
QList< int > titleButtonsLeft
void titleButtonsChanged()