diff options
Diffstat (limited to 'src/interfaceframework/qifconfiguration.cpp')
-rw-r--r-- | src/interfaceframework/qifconfiguration.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/interfaceframework/qifconfiguration.cpp b/src/interfaceframework/qifconfiguration.cpp index 19ddf989..8b0b09c0 100644 --- a/src/interfaceframework/qifconfiguration.cpp +++ b/src/interfaceframework/qifconfiguration.cpp @@ -41,8 +41,9 @@ QIfConfigurationManager *QIfConfigurationManager::instance() QIfAbstractFeature::DiscoveryMode discoveryModeFromString(const QString &modeString) { QMetaEnum me = QMetaEnum::fromType<QIfAbstractFeature::DiscoveryMode>(); + QByteArray modeStringUtf8 = modeString.toUtf8(); bool ok = false; - int value = me.keyToValue(modeString.toUtf8().constData(), &ok); + int value = me.keyToValue(modeStringUtf8, &ok); if (ok) { return static_cast<QIfAbstractFeature::DiscoveryMode>(value); } else { @@ -63,9 +64,11 @@ QVariantMap QIfConfigurationManager::readGroup(QSettings *settings, QAnyStringVi { QVariantMap map; settings->beginGroup(group); - for (const QString& key : settings->childKeys()) + const auto keys = settings->childKeys(); + const auto groups = settings->childGroups(); + for (const QString& key : keys) map.insert(key, settings->value(key)); - for (const QString& group : settings->childGroups()) + for (const QString& group : groups) map.insert(group, readGroup(settings, group)); settings->endGroup(); return map; @@ -77,7 +80,8 @@ void QIfConfigurationManager::readInitialSettings(const QString &configPath) QSettings settings(configPath, QSettings::IniFormat); - for (const QString& group : settings.childGroups()) { + const auto groups = settings.childGroups(); + for (const QString& group : groups) { auto settingsObject = new QIfSettingsObject; settings.beginGroup(group); @@ -318,7 +322,7 @@ bool QIfConfigurationManager::setServiceObject(QIfSettingsObject *so, QIfService return true; } -void QIfConfigurationManager::parseEnv(const QByteArray &rulesSrc, std::function<void(const QString &, const QString &)> func) +void QIfConfigurationManager::parseEnv(const QByteArray &rulesSrc, const std::function<void(const QString &, const QString &)> &func) { const QString content = QString::fromLocal8Bit(rulesSrc); const auto lines = content.split(QLatin1Char(';')); |