qCInfo(lcAccountManager) << "Migrate: overrideUrl" << cleanOverrideUrl;
if (!cleanOverrideUrl.isEmpty()) {
- const auto oCUrl = oCSettings->value(QLatin1String(urlC)).toString();
- const auto cleanOCUrl = oCUrl.endsWith('/') ? oCUrl.chopped(1) : oCUrl;
-
- // in case the urls are equal reset the settings object to read from
- // the ownCloud settings object
- qCInfo(lcAccountManager) << "Migrate oC config if " << cleanOCUrl << " == " << cleanOverrideUrl << ":"
- << (cleanOCUrl == cleanOverrideUrl ? "Yes" : "No");
- if (cleanOCUrl == cleanOverrideUrl) {
- qCInfo(lcAccountManager) << "Copy settings" << oCSettings->allKeys().join(", ");
- settings = std::move(oCSettings);
+ oCSettings->beginGroup(QLatin1String(accountsC));
+ const auto accountsChildGroups = oCSettings->childGroups();
+
+ for (const auto &accountId : accountsChildGroups) {
+ oCSettings->beginGroup(accountId);
+ const auto oCUrl = oCSettings->value(QLatin1String(urlC)).toString();
+ const auto cleanOCUrl = oCUrl.endsWith('/') ? oCUrl.chopped(1) : oCUrl;
+
+ // in case the urls are equal reset the settings object to read from
+ // the ownCloud settings object
+ qCInfo(lcAccountManager) << "Migrate oC config if " << cleanOCUrl << " == " << cleanOverrideUrl << ":"
+ << (cleanOCUrl == cleanOverrideUrl ? "Yes" : "No");
+ if (cleanOCUrl == cleanOverrideUrl) {
+ qCInfo(lcAccountManager) << "Copy settings" << oCSettings->allKeys().join(", ");
+ oCSettings->endGroup(); // current accountID group
+ oCSettings->endGroup(); // accounts group
+ settings = std::move(oCSettings);
+ break;
+ }
+
+ oCSettings->endGroup();
+ }
+
+ if (oCSettings) {
+ oCSettings->endGroup();
}
} else {
qCInfo(lcAccountManager) << "Copy settings" << oCSettings->allKeys().join(", ");