21#ifndef SAYONARA_PLAYER_SETTINGCONVERTER_H
22#define SAYONARA_PLAYER_SETTINGCONVERTER_H
24#include "Utils/typedefs.h"
36namespace SettingConverter
41 QString toString(
const bool& val);
42 bool fromString(
const QString& val,
bool& b);
44 QString toString(
const int& val);
45 bool fromString(
const QString& val,
int& i);
47 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>::type>
48 QString toString(
const T& val)
50 int i =
static_cast<int>(val);
54 template<typename T, typename = typename std::enable_if<std::is_enum<T>::value, T>::type>
55 bool fromString(
const QString& val, T& e)
58 const auto b = fromString(val, i);
60 e =
static_cast<T
>(i);
64 QString toString(
const float& val);
65 bool fromString(
const QString& val,
float& i);
67 QString toString(
const QStringList& val);
68 bool fromString(
const QString& val, QStringList& lst);
70 QString toString(
const QString& val);
71 bool fromString(
const QString& val, QString& b);
73 QString toString(
const QSize& val);
74 bool fromString(
const QString& val, QSize& sz);
76 QString toString(
const QPoint& val);
77 bool fromString(
const QString& val, QPoint& sz);
79 QString toString(
const QByteArray& arr);
80 bool fromString(
const QString& str, QByteArray& arr);
82 template<
typename A,
typename B>
85 return toString(arr.first) +
"," + toString(arr.second);
88 template<
typename A,
typename B>
89 bool fromString(
const QString& str,
QPair<A, B>& pair)
91 QStringList lst = str.split(
",");
95 fromString(lst[0], pair.first);
96 fromString(lst[1], pair.second);
99 return (lst.size() >= 2);
103 QString toString(
const QList<T>& val)
112 return lst.join(
",");
116 bool fromString(
const QString& val,
QList<T>& ret)
119 QStringList lst = val.split(
",");
121 for(
const auto& item: lst)
126 if(fromString(item, v))
130 }
catch(std::exception& e)
132 std::cerr << e.what() << std::endl;
Definition EngineUtils.h:33
Definition SettingConvertible.h:27