From 7ba0304232ce18b988218172349ef543fc21199b Mon Sep 17 00:00:00 2001 From: Bent Witthold Date: Fri, 31 Oct 2025 15:24:06 +0100 Subject: [PATCH] Added SettingsHandler class. --- CMakeLists.txt | 1 + data/settingshandler.cpp | 43 ++++++++++++++++++++++++++++++++++++++++ data/settingshandler.h | 15 ++++++++++++++ genericcore.cpp | 1 + 4 files changed, 60 insertions(+) create mode 100644 data/settingshandler.cpp create mode 100644 data/settingshandler.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9256626..0e25cf8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ add_library(${TARGET_APP} STATIC genericcore.h ${TS_FILES} constants.h + data/settingshandler.h data/settingshandler.cpp ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/data/settingshandler.cpp b/data/settingshandler.cpp new file mode 100644 index 0000000..eb11006 --- /dev/null +++ b/data/settingshandler.cpp @@ -0,0 +1,43 @@ +#include "settingshandler.h" + +#include + +QVariantMap SettingsHandler::getSettings(QString group) { + QSettings settings; + QVariantMap result; + + if (!group.isEmpty()) { + settings.beginGroup(group); + } + + foreach (QString key, settings.allKeys()) { + result.insert(key, settings.value(key)); + } + + if (!group.isEmpty()) { + settings.endGroup(); + } + + return result; +} + +void SettingsHandler::saveSettings(QVariantMap settingMap, QString group) { + qInfo() << "saving settings..."; + + QSettings settings; + if (!group.isEmpty()) { + settings.beginGroup(group); + } + + foreach (QString key, settingMap.keys()) { + // qDebug() << "saving:" << key << "-" << settingMap.value(key); + settings.setValue(key, settingMap.value(key)); + } + if (!group.isEmpty()) { + settings.endGroup(); + } + + settings.sync(); +} + +SettingsHandler::SettingsHandler() {} diff --git a/data/settingshandler.h b/data/settingshandler.h new file mode 100644 index 0000000..a636cf6 --- /dev/null +++ b/data/settingshandler.h @@ -0,0 +1,15 @@ +#ifndef SETTINGSHANDLER_H +#define SETTINGSHANDLER_H + +#include + +class SettingsHandler { + public: + static QVariantMap getSettings(QString group = ""); + static void saveSettings(QVariantMap settingMap, QString group = ""); + + private: + SettingsHandler(); +}; + +#endif // SETTINGSHANDLER_H diff --git a/genericcore.cpp b/genericcore.cpp index 7d5daed..e8e61ea 100644 --- a/genericcore.cpp +++ b/genericcore.cpp @@ -69,6 +69,7 @@ QString GenericCore::getMaintenanceToolFilePath() const { /// setting the applicationDirPath hard coded to test update feature from IDE #ifdef QT_DEBUG + // REFACTOR retrieve application name automatically instead of using hard coded name applicationDirPath = "/opt/GenericQtClient"; #endif