diff options
Diffstat (limited to 'src/settings_interface.h')
-rw-r--r-- | src/settings_interface.h | 10 |
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>(); +} |