10#include <KLocalizedString>
14const QMap<QString, KDecoration2::BorderSize> s_borderSizes{
15 {QStringLiteral(
"None"), KDecoration2::BorderSize::None},
16 {QStringLiteral(
"NoSides"), KDecoration2::BorderSize::NoSides},
17 {QStringLiteral(
"Tiny"), KDecoration2::BorderSize::Tiny},
18 {QStringLiteral(
"Normal"), KDecoration2::BorderSize::Normal},
19 {QStringLiteral(
"Large"), KDecoration2::BorderSize::Large},
20 {QStringLiteral(
"VeryLarge"), KDecoration2::BorderSize::VeryLarge},
21 {QStringLiteral(
"Huge"), KDecoration2::BorderSize::Huge},
22 {QStringLiteral(
"VeryHuge"), KDecoration2::BorderSize::VeryHuge},
23 {QStringLiteral(
"Oversized"), KDecoration2::BorderSize::Oversized}};
24const QMap<KDecoration2::BorderSize, QString> s_borderSizeNames{
25 {KDecoration2::BorderSize::None, i18n(
"No Window Borders")},
26 {KDecoration2::BorderSize::NoSides, i18n(
"No Side Window Borders")},
27 {KDecoration2::BorderSize::Tiny, i18n(
"Tiny Window Borders")},
28 {KDecoration2::BorderSize::Normal, i18n(
"Normal Window Borders")},
29 {KDecoration2::BorderSize::Large, i18n(
"Large Window Borders")},
30 {KDecoration2::BorderSize::VeryLarge, i18n(
"Very Large Window Borders")},
31 {KDecoration2::BorderSize::Huge, i18n(
"Huge Window Borders")},
32 {KDecoration2::BorderSize::VeryHuge, i18n(
"Very Huge Window Borders")},
33 {KDecoration2::BorderSize::Oversized, i18n(
"Oversized Window Borders")}};
35const QHash<KDecoration2::DecorationButtonType, QChar> s_buttonNames{
36 {KDecoration2::DecorationButtonType::Menu, QChar(
'M')},
37 {KDecoration2::DecorationButtonType::ApplicationMenu, QChar(
'N')},
38 {KDecoration2::DecorationButtonType::OnAllDesktops, QChar(
'S')},
39 {KDecoration2::DecorationButtonType::ContextHelp, QChar(
'H')},
40 {KDecoration2::DecorationButtonType::Minimize, QChar(
'I')},
41 {KDecoration2::DecorationButtonType::Maximize, QChar(
'A')},
42 {KDecoration2::DecorationButtonType::Close, QChar(
'X')},
43 {KDecoration2::DecorationButtonType::KeepAbove, QChar(
'F')},
44 {KDecoration2::DecorationButtonType::KeepBelow, QChar(
'B')},
45 {KDecoration2::DecorationButtonType::Shade, QChar(
'L')},
46 {KDecoration2::DecorationButtonType::Spacer, QChar(
'_')},
55 auto buttonToString = [](KDecoration2::DecorationButtonType button) -> QChar {
56 const auto it = s_buttonNames.constFind(button);
57 if (it != s_buttonNames.constEnd()) {
63 for (
auto button : buttons) {
64 ret.append(buttonToString(button));
72 for (
auto it = buttons.begin(); it != buttons.end(); ++it) {
73 for (
auto it2 = s_buttonNames.constBegin(); it2 != s_buttonNames.constEnd(); ++it2) {
74 if (it2.value() == (*it)) {
89 auto it = s_borderSizes.constFind(name);
90 if (it == s_borderSizes.constEnd()) {
92 return KDecoration2::BorderSize::Normal;
99 return s_borderSizes.key(size);
104 return s_borderSizeNames;
DecorationButtonsList buttonsFromString(const QString &buttons)
const QMap< KDecoration2::BorderSize, QString > & getBorderSizeNames()
QString borderSizeToString(KDecoration2::BorderSize size)
KDecoration2::BorderSize stringToBorderSize(const QString &name)
QString buttonsToString(const DecorationButtonsList &buttons)
DecorationButtonsList readDecorationButtons(const KConfigGroup &config, const QString &key, const DecorationButtonsList &defaultValue)
QList< KDecoration2::DecorationButtonType > DecorationButtonsList