From 787a91e9f97651c842d95926fe528e91c886d288 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Wed, 1 Sep 2021 01:07:09 +0200 Subject: [PATCH] lookandfeel: Allow setting the plasmashell preferred Shell --- kcms/lookandfeel/kcm.cpp | 11 +++++++++++ kcms/lookandfeel/kcm.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/kcms/lookandfeel/kcm.cpp b/kcms/lookandfeel/kcm.cpp index 7b54a3387..3c29c28fb 100644 --- a/kcms/lookandfeel/kcm.cpp +++ b/kcms/lookandfeel/kcm.cpp @@ -387,6 +387,12 @@ void KCMLookandFeel::save() setWindowPlacement(cg.readEntry("Placement", QStringLiteral("Smart"))); } + if (m_applyShellPackage) { + cg = KConfigGroup(conf, "plasmashellrc"); + cg = KConfigGroup(&cg, "Shell"); + setShellPackage(cg.readEntry("ShellPackage", QString())); + } + if (m_applyWindowDecoration) { cg = KConfigGroup(conf, "kwinrc"); cg = KConfigGroup(&cg, "org.kde.kdecoration2"); @@ -750,6 +756,11 @@ void KCMLookandFeel::setWindowPlacement(const QString &value) writeNewDefaults(QStringLiteral("kwinrc"), QStringLiteral("Windows"), QStringLiteral("Placement"), value); } +void KCMLookandFeel::setShellPackage(const QString &value) +{ + writeNewDefaults(QStringLiteral("plasmashellrc"), QStringLiteral("Shell"), QStringLiteral("ShellPackage"), value); +} + void KCMLookandFeel::setWindowDecoration(const QString &library, const QString &theme) { if (library.isEmpty()) { diff --git a/kcms/lookandfeel/kcm.h b/kcms/lookandfeel/kcm.h index 50bfab3cd..8ab2c3224 100644 --- a/kcms/lookandfeel/kcm.h +++ b/kcms/lookandfeel/kcm.h @@ -74,6 +74,7 @@ public: void setDesktopSwitcher(const QString &theme); void setWindowDecoration(const QString &library, const QString &theme); void setWindowPlacement(const QString &value); + void setShellPackage(const QString &name); Q_INVOKABLE void knsEntryChanged(KNSCore::EntryWrapper *wrapper); Q_INVOKABLE void reloadConfig() @@ -134,6 +135,7 @@ private: bool m_applyWindowSwitcher : 1; bool m_applyDesktopSwitcher : 1; bool m_applyWindowPlacement : 1 = true; + bool m_applyShellPackage : 1 = true; bool m_resetDefaultLayout : 1; bool m_applyWindowDecoration : 1; };