aboutsummaryrefslogtreecommitdiff
path: root/lib/settings/configuration.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
commit85d9f14aa8bac16ab341662c770b64a15c21628b (patch)
tree422db18e798646cd4bc98abf342f25c09c0bdf1d /lib/settings/configuration.cpp
parentDownload items' width should no longer exceed the list width (diff)
downloadsmolbote-85d9f14aa8bac16ab341662c770b64a15c21628b.tar.xz
Changed from qbs to cmake
Diffstat (limited to 'lib/settings/configuration.cpp')
-rw-r--r--lib/settings/configuration.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/settings/configuration.cpp b/lib/settings/configuration.cpp
index 34d50db..4603779 100644
--- a/lib/settings/configuration.cpp
+++ b/lib/settings/configuration.cpp
@@ -214,6 +214,8 @@ void Configuration::setValue(std::string path, const T &val)
// compiler complained about operator= not taking unsinged ints, longs and long longs
if constexpr(std::is_unsigned_v<T> && !std::is_same_v<T, bool>) {
setting = static_cast<typename std::make_signed_t<T>>(val);
+ } else if constexpr(std::is_same_v<T, std::string>) {
+ setting = static_cast<std::string>(val).c_str();
} else {
setting = val;
}
@@ -240,6 +242,8 @@ void Configuration::setValue(std::string path, const T &val)
if constexpr(std::is_unsigned_v<T> && !std::is_same_v<T, bool>) {
*userSetting = static_cast<typename std::make_signed_t<T>>(val);
+ } else if constexpr(std::is_same_v<T, std::string>) {
+ *userSetting = static_cast<std::string>(val).c_str();
} else {
*userSetting = val;
}