@ -282,22 +282,23 @@ void Config::Initialize(const std::string& config_name) {
template < >
void Config : : ReadBasicSetting ( Settings : : BasicSetting < std : : string > & setting ) {
const QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
const auto default_value = QString : : fromStdString ( setting . GetDefault ( ) ) ;
if ( qt_config - > value ( name + QStringLiteral ( " /default " ) , false ) . toBool ( ) ) {
setting . SetValue ( setting. GetDefault ( ) ) ;
setting . SetValue ( default_value. toStdString ( ) ) ;
} else {
setting . SetValue ( qt_config - > value ( name , QString : : fromStdString ( setting . GetDefault ( ) ) )
. toString ( )
. toStdString ( ) ) ;
setting . SetValue ( qt_config - > value ( name , default_value ) . toString ( ) . toStdString ( ) ) ;
}
}
template < typename Type >
void Config : : ReadBasicSetting ( Settings : : BasicSetting < Type > & setting ) {
const QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
const Type default_value = setting . GetDefault ( ) ;
if ( qt_config - > value ( name + QStringLiteral ( " /default " ) , false ) . toBool ( ) ) {
setting . SetValue ( setting. GetDefault ( ) ) ;
setting . SetValue ( default_value ) ;
} else {
setting . SetValue (
static_cast < QVariant > ( qt_config - > value ( name , setting. GetDefault ( ) ) ) . value < Type > ( ) ) ;
static_cast < QVariant > ( qt_config - > value ( name , default_value ) ) . value < Type > ( ) ) ;
}
}
@ -305,10 +306,11 @@ void Config::ReadBasicSetting(Settings::BasicSetting<Type>& setting) {
template < >
void Config : : WriteBasicSetting ( const Settings : : BasicSetting < std : : string > & setting ) {
const QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
qt_config - > setValue ( name + QStringLiteral ( " /default " ) ,
setting . GetValue ( ) = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , QString : : fromStdString ( setting. GetValue ( ) ) ) ;
const std : : string & value = setting . GetValue ( ) ;
qt_config - > setValue ( name + QStringLiteral ( " /default " ) , value = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , QString : : fromStdString ( value ) ) ;
}
// Explicit float definition: use a double as Qt doesn't write legible floats to config files
template < >
void Config : : WriteBasicSetting ( const Settings : : BasicSetting < float > & setting ) {
@ -318,12 +320,13 @@ void Config::WriteBasicSetting(const Settings::BasicSetting<float>& setting) {
setting . GetValue ( ) = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , value ) ;
}
template < typename Type >
void Config : : WriteBasicSetting ( const Settings : : BasicSetting < Type > & setting ) {
const QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
qt_config - > setValue ( name + QStringLiteral ( " /default " ) ,
setting . GetValue ( ) = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , setting. GetValue ( ) ) ;
const Type value = setting . GetValue ( ) ;
qt_config - > setValue ( name + QStringLiteral ( " /default " ) , value = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , value ) ;
}
// Explicit float definition: use a double as Qt doesn't write legible floats to config files
@ -340,16 +343,17 @@ void Config::WriteGlobalSetting(const Settings::Setting<float>& setting) {
qt_config - > setValue ( name , value ) ;
}
}
template < typename Type >
void Config : : WriteGlobalSetting ( const Settings : : Setting < Type > & setting ) {
QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
const QString name = QString : : fromStdString ( setting . GetLabel ( ) ) ;
const Type & value = setting . GetValue ( global ) ;
if ( ! global ) {
qt_config - > setValue ( name + QStringLiteral ( " /use_global " ) , setting . UsingGlobal ( ) ) ;
}
if ( global | | ! setting . UsingGlobal ( ) ) {
qt_config - > setValue ( name + QStringLiteral ( " /default " ) ,
setting . GetValue ( global ) = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , setting . GetValue ( global ) ) ;
qt_config - > setValue ( name + QStringLiteral ( " /default " ) , value = = setting . GetDefault ( ) ) ;
qt_config - > setValue ( name , value ) ;
}
}