[utilities/kteatime] src: Port settings to KConfigXT

Nicolas Fella <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 8d33d820fc85ad184b5000fdbca238107d217af6 by Nicolas Fella.
Committed on 27/07/2026 at 10:04.
Pushed by nicolasfella into branch 'master'.

Port settings to KConfigXT

M  +3    -0    src/CMakeLists.txt
A  +31   -0    src/kteatimesettings.kcfg
M  +17   -15   src/settings.cpp
M  +9    -9    src/toplevel.cpp

https://invent.kde.org/utilities/kteatime/-/commit/8d33d820fc85ad184b5000fdbca238107d217af6

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 27b8f57..8a56815 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,6 +7,8 @@ set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_DEFINITIONS "KTEATIME_VERSI
 
 ki18n_wrap_ui(kteatime settings.ui timeedit.ui)
 
+kconfig_target_kcfg_file(kteatime FILE kteatimesettings.kcfg CLASS_NAME KTeaTimeSettings MUTATORS)
+
 target_link_libraries(kteatime
     KF6::ConfigCore
     KF6::ConfigGui
@@ -25,3 +27,4 @@ target_link_libraries(kteatime
 install( TARGETS kteatime ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} )
 install( PROGRAMS org.kde.kteatime.desktop  DESTINATION ${KDE_INSTALL_APPDIR} )
 install( FILES kteatime.notifyrc  DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} )
+install( FILES kteatimesettings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
diff --git a/src/kteatimesettings.kcfg b/src/kteatimesettings.kcfg
new file mode 100644
index 0000000..0d01ac0
--- /dev/null
+++ b/src/kteatimesettings.kcfg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+SPDX-FileCopyrightText: 2026 Nicolas Fella <[email protected]>
+SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+-->
+<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="kteatimerc"/>
+    <group name="General">
+        <entry name="PopupAutoHide" type="Bool">
+            <default>false</default>
+        </entry>
+        <entry name="UsePopup" type="Bool">
+            <default>true</default>
+        </entry>
+        <entry name="PopupAutoHideTime" type="Int">
+            <default>30</default>
+        </entry>
+        <entry name="UseReminder" type="Bool">
+            <default>false</default>
+        </entry>
+        <entry name="ReminderTime" type="Int">
+            <default>60</default>
+        </entry>
+        <entry name="UseVisualize" type="Bool">
+            <default>true</default>
+        </entry>
+    </group>
+</kcfg>
diff --git a/src/settings.cpp b/src/settings.cpp
index 0112c8b..a6904cd 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -5,6 +5,7 @@
 */
 #include "settings.h"
 
+#include "kteatimesettings.h"
 #include "tealistmodel.h"
 #include "toplevel.h"
 
@@ -69,12 +70,14 @@ SettingsDialog::SettingsDialog(TopLevel *toplevel, const QList<Tea> &teas)
     KWindowConfig::restoreWindowSize(windowHandle(), windowConfig);
     resize(windowHandle()->size()); // workaround for QTBUG-40584
 
-    bool popup = group.readEntry("UsePopup", true);
-    bool autohide = group.readEntry("PopupAutoHide", false);
-    int autohidetime = group.readEntry("PopupAutoHideTime", 30);
-    bool reminder = group.readEntry("UseReminder", false);
-    int remindertime = group.readEntry("ReminderTime", 60);
-    bool vis = group.readEntry("UseVisualize", true);
+    KTeaTimeSettings settings;
+
+    bool popup = settings.usePopup();
+    bool autohide = settings.popupAutoHide();
+    int autohidetime = settings.popupAutoHideTime();
+    bool reminder = settings.useReminder();
+    int remindertime = settings.reminderTime();
+    bool vis = settings.useVisualize();
 
     mUi->popupCheckBox->setChecked(popup);
     mUi->autohideCheckBox->setChecked(autohide);
@@ -130,17 +133,16 @@ void SettingsDialog::accept()
 
     hide();
 
-    KSharedConfigPtr config = KSharedConfig::openConfig();
-    KConfigGroup group(config, QStringLiteral("General"));
+    KTeaTimeSettings settings;
 
-    group.writeEntry("UsePopup", mUi->popupCheckBox->checkState() == Qt::Checked);
-    group.writeEntry("PopupAutoHide", mUi->autohideCheckBox->checkState() == Qt::Checked);
-    group.writeEntry("PopupAutoHideTime", mUi->autohideSpinBox->value());
-    group.writeEntry("UseReminder", mUi->reminderCheckBox->checkState() == Qt::Checked);
-    group.writeEntry("ReminderTime", mUi->reminderSpinBox->value());
-    group.writeEntry("UseVisualize", mUi->visualizeCheckBox->checkState() == Qt::Checked);
+    settings.setUsePopup(mUi->popupCheckBox->checkState() == Qt::Checked);
+    settings.setPopupAutoHide(mUi->autohideCheckBox->checkState() == Qt::Checked);
+    settings.setPopupAutoHideTime(mUi->autohideSpinBox->value());
+    settings.setUseReminder(mUi->reminderCheckBox->checkState() == Qt::Checked);
+    settings.setReminderTime(mUi->reminderSpinBox->value());
+    settings.setUseVisualize(mUi->visualizeCheckBox->checkState() == Qt::Checked);
 
-    config->sync();
+    settings.save();
     m_toplevel->setTeaList(m_model->getTeaList());
 }
 
diff --git a/src/toplevel.cpp b/src/toplevel.cpp
index efd7ca5..6a76795 100644
--- a/src/toplevel.cpp
+++ b/src/toplevel.cpp
@@ -6,6 +6,7 @@
     SPDX-License-Identifier: GPL-2.0-or-later
 */
 #include "toplevel.h"
+#include "kteatimesettings.h"
 #include "settings.h"
 #include "timeedit.h"
 
@@ -368,15 +369,14 @@ void TopLevel::configureNotifications()
 
 void TopLevel::loadConfig()
 {
-    KSharedConfigPtr config = KSharedConfig::openConfig();
-    KConfigGroup generalGroup(config, QStringLiteral("General"));
-
-    m_usepopup = generalGroup.readEntry("UsePopup", true);
-    m_autohide = generalGroup.readEntry("PopupAutoHide", false);
-    m_autohidetime = generalGroup.readEntry("PopupAutoHideTime", 30);
-    m_usereminder = generalGroup.readEntry("UseReminder", false);
-    m_remindertime = generalGroup.readEntry("ReminderTime", 60);
-    m_usevisualize = generalGroup.readEntry("UseVisualize", true);
+    KTeaTimeSettings settings;
+
+    m_usepopup = settings.usePopup();
+    m_autohide = settings.popupAutoHide();
+    m_autohidetime = settings.popupAutoHideTime();
+    m_usereminder = settings.useReminder();
+    m_remindertime = settings.reminderTime();
+    m_usevisualize = settings.useVisualize();
 }
 
 void TopLevel::showPopup()
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.