mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 15:09:24 +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);
|
return _manager->contains(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Settings::beginReadArray(const QString & prefix) {
|
int Settings::beginReadArray(const QString& prefix) {
|
||||||
return _manager->beginReadArray(prefix);
|
return _manager->beginReadArray(prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,8 +107,6 @@ QStringList splitArgs(const QString& string, int idx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
||||||
qDebug() << Q_FUNC_INFO << map.size() << "in map";
|
|
||||||
|
|
||||||
QJsonObject object;
|
QJsonObject object;
|
||||||
for (auto it = map.cbegin(); it != map.cend(); ++it) {
|
for (auto it = map.cbegin(); it != map.cend(); ++it) {
|
||||||
auto& key = it.key();
|
auto& key = it.key();
|
||||||
|
@ -122,6 +120,9 @@ QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
||||||
if (variantType == QVariant((quint16)0).type()) { // uint16
|
if (variantType == QVariant((quint16)0).type()) { // uint16
|
||||||
variantType = QVariant::UInt;
|
variantType = QVariant::UInt;
|
||||||
}
|
}
|
||||||
|
if (variantType == QVariant::Url) { // QUrl
|
||||||
|
variantType = QVariant::String;
|
||||||
|
}
|
||||||
|
|
||||||
switch (variantType) {
|
switch (variantType) {
|
||||||
case QVariant::Map:
|
case QVariant::Map:
|
||||||
|
@ -213,8 +214,6 @@ QJsonDocument variantMapToJsonDocument(const QSettings::SettingsMap& map) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << Q_FUNC_INFO << object.size() << "in json";
|
|
||||||
|
|
||||||
return QJsonDocument(object);
|
return QJsonDocument(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,7 +224,6 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
||||||
return QSettings::SettingsMap();
|
return QSettings::SettingsMap();
|
||||||
}
|
}
|
||||||
auto object = document.object();
|
auto object = document.object();
|
||||||
qDebug() << Q_FUNC_INFO << object.size() << "in json";
|
|
||||||
QSettings::SettingsMap map;
|
QSettings::SettingsMap map;
|
||||||
|
|
||||||
for (auto it = object.begin(); it != object.end(); ++it) {
|
for (auto it = object.begin(); it != object.end(); ++it) {
|
||||||
|
@ -237,10 +235,10 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
||||||
} else {
|
} else {
|
||||||
auto string = it->toString();
|
auto string = it->toString();
|
||||||
|
|
||||||
if (string.startsWith(QLatin1String("@@"))) {
|
if (string.startsWith(QLatin1String("@@"))) { // Standard string starting with '@'
|
||||||
result = QVariant(string.mid(1));
|
result = QVariant(string.mid(1));
|
||||||
|
|
||||||
} else if (string.startsWith(QLatin1Char('@'))) {
|
} else if (string.startsWith(QLatin1Char('@'))) { // Custom type to string
|
||||||
|
|
||||||
if (string.endsWith(QLatin1Char(')'))) {
|
if (string.endsWith(QLatin1Char(')'))) {
|
||||||
|
|
||||||
|
@ -273,12 +271,13 @@ QSettings::SettingsMap jsonDocumentToVariantMap(const QJsonDocument& document) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else { // Standard string
|
||||||
|
result = string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
map.insert(it.key(), result);
|
map.insert(it.key(), result);
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << Q_FUNC_INFO << map.size() << "in map";
|
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue