mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-13 06:42:42 +02:00
Fix string mishandling
This commit is contained in:
parent
e5d54fc6bc
commit
cc574c3e05
2 changed files with 8 additions and 9 deletions
|
@ -49,7 +49,7 @@ bool Settings::contains(const QString& key) const {
|
|||
return _manager->contains(key);
|
||||
}
|
||||
|
||||
int Settings::beginReadArray(const QString & prefix) {
|
||||
int Settings::beginReadArray(const QString& prefix) {
|
||||
return _manager->beginReadArray(prefix);
|
||||
}
|
||||
|
||||
|
|
|
@ -107,8 +107,6 @@ QStringList splitArgs(const QString& string, int idx) {
|
|||
}
|
||||
|
||||
QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
||||
qDebug() << Q_FUNC_INFO << map.size() << "in map";
|
||||
|
||||
QJsonObject object;
|
||||
for (auto it = map.cbegin(); it != map.cend(); ++it) {
|
||||
auto& key = it.key();
|
||||
|
@ -122,6 +120,9 @@ QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
|||
if (variantType == QVariant((quint16)0).type()) { // uint16
|
||||
variantType = QVariant::UInt;
|
||||
}
|
||||
if (variantType == QVariant::Url) { // QUrl
|
||||
variantType = QVariant::String;
|
||||
}
|
||||
|
||||
switch (variantType) {
|
||||
case QVariant::Map:
|
||||
|
@ -213,8 +214,6 @@ QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
|||
}
|
||||
}
|
||||
|
||||
qDebug() << Q_FUNC_INFO << object.size() << "in json";
|
||||
|
||||
return QJsonDocument(object);
|
||||
}
|
||||
|
||||
|
@ -225,7 +224,6 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
|||
return QSettings::SettingsMap();
|
||||
}
|
||||
auto object = document.object();
|
||||
qDebug() << Q_FUNC_INFO << object.size() << "in json";
|
||||
QSettings::SettingsMap map;
|
||||
|
||||
for (auto it = object.begin(); it != object.end(); ++it) {
|
||||
|
@ -237,10 +235,10 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
|||
} else {
|
||||
auto string = it->toString();
|
||||
|
||||
if (string.startsWith(QLatin1String("@@"))) {
|
||||
if (string.startsWith(QLatin1String("@@"))) { // Standard string starting with '@'
|
||||
result = QVariant(string.mid(1));
|
||||
|
||||
} else if (string.startsWith(QLatin1Char('@'))) {
|
||||
} else if (string.startsWith(QLatin1Char('@'))) { // Custom type to string
|
||||
|
||||
if (string.endsWith(QLatin1Char(')'))) {
|
||||
|
||||
|
@ -273,12 +271,13 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
|||
}
|
||||
}
|
||||
}
|
||||
} else { // Standard string
|
||||
result = string;
|
||||
}
|
||||
}
|
||||
|
||||
map.insert(it.key(), result);
|
||||
}
|
||||
|
||||
qDebug() << Q_FUNC_INFO << map.size() << "in map";
|
||||
return map;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue