aboutsummaryrefslogtreecommitdiffstats
path: root/src/settings_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings_interface.h')
-rw-r--r--src/settings_interface.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/settings_interface.h b/src/settings_interface.h
index e290125..09c309b 100644
--- a/src/settings_interface.h
+++ b/src/settings_interface.h
@@ -16,7 +16,8 @@ class SettingsInterface {
public:
~SettingsInterface();
const QVariant read_setting(const QString &key);
- static const QVariant quick_read_setting(const QString &key);
+ template<typename T>
+ static const T quick_read_setting(const QString &key);
void write_setting(const QString &key, const QVariant &value);
void clear_setting(const QString &key);
void clear_all();
@@ -33,3 +34,10 @@ private:
// List of keys to remove from the QSettings
QStringList must_clear;
};
+
+// Template code implementations have to be "seen" at the same time as the declaration
+template<typename T>
+const T SettingsInterface::quick_read_setting(const QString &key) {
+ static SettingsInterface settings;
+ return settings.read_setting(key).value<T>();
+}