[plasma/systemsettings] app: Use KConfigXT for settings
Nicolas Fella <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit bccb84ceefee72a6e78965a0bc6393d80d7cebd4 by Nicolas Fella.
Committed on 24/07/2026 at 12:23.
Pushed by nicolasfella into branch 'master'.
Use KConfigXT for settings
M +3 -0 app/CMakeLists.txt
M +5 -6 app/SidebarMode.cpp
A +12 -0 app/systemsettings-config.kcfg
https://invent.kde.org/plasma/systemsettings/-/commit/bccb84ceefee72a6e78965a0bc6393d80d7cebd4
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 9c2e3275..b197a739 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -61,6 +61,8 @@ target_link_libraries(systemsettings PRIVATE
Qt::Quick
)
+kconfig_target_kcfg_file(systemsettings FILE systemsettings-config.kcfg CLASS_NAME Settings MUTATORS)
+
install(TARGETS systemsettings ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(PROGRAMS kdesystemsettings.desktop systemsettings.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(DIRECTORY DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel")
@@ -69,5 +71,6 @@ install(
)
install(FILES org.kde.systemsettings.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
install(FILES systemsettings.zsh RENAME _systemsettings DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
+install(FILES systemsettings-config.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
ecm_finalize_qml_module(systemsettings)
diff --git a/app/SidebarMode.cpp b/app/SidebarMode.cpp
index 6d4ef2be..de5b003a 100644
--- a/app/SidebarMode.cpp
+++ b/app/SidebarMode.cpp
@@ -12,6 +12,7 @@
#include "MenuProxyModel.h"
#include "ModuleView.h"
#include "kcmmetadatahelpers.h"
+#include "systemsettings-config.h"
#include <KAboutData>
#include <KActionCollection>
@@ -20,7 +21,6 @@
#include <KDescendantsProxyModel>
#include <KLocalizedContext>
#include <KLocalizedString>
-#include <KSharedConfig>
#include <KLocalizedQmlContext>
#include <QAction>
@@ -133,7 +133,7 @@ public:
qreal headerHeight = 0;
bool actionMenuVisible = false;
bool m_defaultsIndicatorsVisible = false;
- KConfigGroup config;
+ Settings config;
MenuItem *rootItem = nullptr;
MenuItem *homeItem = nullptr;
KPluginMetaData metaData;
@@ -163,14 +163,13 @@ SidebarMode::SidebarMode(QObject *parent,
qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
qmlRegisterAnonymousType<QAction>("", 1);
qmlRegisterAnonymousType<QAbstractItemModel>("", 1);
- d->config = KSharedConfig::openConfig()->group(QStringLiteral("systemsettings_sidebar_mode"));
initEvent();
connect(moduleView(), &ModuleView::moduleChanged, this, &SidebarMode::viewChanged);
}
SidebarMode::~SidebarMode()
{
- d->config.sync();
+ d->config.save();
delete d;
}
@@ -240,7 +239,7 @@ void SidebarMode::initEvent()
d->moduleView->setDefaultsVisible(false);
}
- if (d->config.readEntry("HighlightNonDefaultSettings", false)) {
+ if (d->config.highlightNonDefaultSettings()) {
toggleDefaultsIndicatorsVisibility();
}
}
@@ -535,7 +534,7 @@ void SidebarMode::toggleDefaultsIndicatorsVisibility()
d->m_defaultsIndicatorsVisible = !d->m_defaultsIndicatorsVisible;
d->moduleView->moduleShowDefaultsIndicators(d->m_defaultsIndicatorsVisible);
refreshDefaults();
- d->config.writeEntry("HighlightNonDefaultSettings", d->m_defaultsIndicatorsVisible);
+ d->config.setHighlightNonDefaultSettings(d->m_defaultsIndicatorsVisible);
Q_EMIT defaultsIndicatorsVisibleChanged();
}
diff --git a/app/systemsettings-config.kcfg b/app/systemsettings-config.kcfg
new file mode 100644
index 00000000..64abe539
--- /dev/null
+++ b/app/systemsettings-config.kcfg
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- SPDX-FileCopyrightText: 2026 Nicolas Fella <[email protected]> -->
+<!-- SPDX-License-Identifier: GPL-2.0-or-later -->
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
+ <kcfgfile name="systemsettingsrc"/>
+ <group name="systemsettings_sidebar_mode">
+ <entry name="HighlightNonDefaultSettings" type="Bool">
+ <label>Highlight Changed Settings</label>
+ <default>false</default>
+ </entry>
+ </group>
+</kcfg>