Commit f67a7e53 authored by luyikei's avatar luyikei Committed by Hugo Beauzée-Luyssen

Settings: Use Base64 to save QByteArray

"Note: A QByteArray can store any byte values including '\0's, but most functions that take char * arguments assume that the data ends at the first '\0' they encounter."

Because of the above, we can't save QByteArray directly.
Signed-off-by: 's avatarHugo Beauzée-Luyssen <hugo@beauzee.fr>
parent f9729c00
......@@ -159,8 +159,14 @@ Settings::loadJsonFrom( const QJsonObject &object )
if ( isChildSettings == true )
continue;
if ( setValue( it.key(), (*it).toVariant() ) == false )
SettingValue* val = value( it.key() );
if ( val == nullptr )
vlmcWarning() << "Loaded invalid project setting:" << it.key();
if ( val->type() == SettingValue::ByteArray )
val->set( QByteArray::fromBase64( (*it).toVariant().toByteArray() ) );
else
val->set( (*it).toVariant() );
}
emit postLoad();
}
......@@ -173,7 +179,10 @@ Settings::saveJsonTo( QJsonObject &object )
{
if ( ( val->flags() & SettingValue::Runtime ) != 0 )
continue ;
object.insert( val->key(), QJsonValue::fromVariant( val->get() ) );
if ( val->type() == SettingValue::ByteArray )
object.insert( val->key(), QJsonValue( QString( val->get().toByteArray().toBase64() ) ) );
else
object.insert( val->key(), QJsonValue::fromVariant( val->get() ) );
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment