Fixed QIniSettings on Windows

This commit is contained in:
Christophe Dumez 2010-07-21 09:36:25 +00:00
parent 208e988c70
commit 864bb8285e

View file

@ -61,8 +61,9 @@ public:
QVariant value(const QString & key, const QVariant &defaultValue = QVariant()) { QVariant value(const QString & key, const QVariant &defaultValue = QVariant()) {
QString key_tmp(key); QString key_tmp(key);
QVariant ret = QSettings::value(key_tmp); QVariant ret = QSettings::value(key_tmp);
if(format() == QSettings::NativeFormat) { if(ret.isNull()) {
if(ret.isNull()) { if(format() == QSettings::NativeFormat) {
// Fallback on Windows, use \ in key instead of / // Fallback on Windows, use \ in key instead of /
if(key_tmp.contains("/")) { if(key_tmp.contains("/")) {
ret = QSettings::value(key_tmp.replace("/", "\\")); ret = QSettings::value(key_tmp.replace("/", "\\"));
@ -71,15 +72,16 @@ public:
ret = QSettings::value(key_tmp.replace("\\", "/")); ret = QSettings::value(key_tmp.replace("\\", "/"));
} }
} }
}
} else { } else {
// Keep compatibility with qBittorrent < 2.3.0 // Keep compatibility with qBittorrent < 2.3.0
// Import the setting from the registry // Import the setting from the registry
QSettings old_settings(organizationName(), applicationName()); QSettings old_settings(organizationName(), applicationName());
ret = old_settings.value(key_tmp); ret = old_settings.value(key_tmp);
if(!ret.isNull()) { if(!ret.isNull()) {
setValue(key_tmp, ret); setValue(key_tmp, ret);
old_settings.remove(key_tmp); old_settings.remove(key_tmp);
}
} }
} }
if(ret.isNull()) if(ret.isNull())