From 5066f9908772d1838d73834eb5bcb6f8f7858fe1 Mon Sep 17 00:00:00 2001 From: ConfuSomu Date: Tue, 15 Aug 2023 20:16:44 -0400 Subject: Create convinence method for reading settings This method avoids having to create a SettingsInterface object that will be only used to read a small number of settings before being destroyed. It creates a static object that persists between invocations. Through the use of QSettings for reading a value, we are assured of always reading the most up to date version of settings as this class guaranties that changes done to one QSettings object will be immediately visible in other QSettings objects. --- src/settings_interface.cpp | 5 +++++ src/settings_interface.h | 1 + 2 files changed, 6 insertions(+) (limited to 'src') diff --git a/src/settings_interface.cpp b/src/settings_interface.cpp index e14da92..17c5991 100644 --- a/src/settings_interface.cpp +++ b/src/settings_interface.cpp @@ -19,6 +19,11 @@ const QVariant SettingsInterface::read_setting(const QString &key) { return qt_settings.value(key, default_setting(key)); } +const QVariant SettingsInterface::quick_read_setting(const QString &key) { + static SettingsInterface settings; + return settings.read_setting(key); +} + // Write a new value for key. Isn't written to disk until you use SettingsInterface::commit(). void SettingsInterface::write_setting(const QString &key, const QVariant &value) { if (not modified) modified = new QHash; diff --git a/src/settings_interface.h b/src/settings_interface.h index e3935d0..fa9386c 100644 --- a/src/settings_interface.h +++ b/src/settings_interface.h @@ -28,6 +28,7 @@ class SettingsInterface { public: ~SettingsInterface(); const QVariant read_setting(const QString &key); + static const QVariant quick_read_setting(const QString &key); void write_setting(const QString &key, const QVariant &value); void clear_setting(const QString &key); void clear_all(); -- cgit v1.2.3-54-g00ecf