[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()