return true;
}
- for (const auto &accountId : settings->childGroups()) {
+ const auto settingsChildGroups = settings->childGroups();
+ for (const auto &accountId : settingsChildGroups) {
settings->beginGroup(accountId);
if (!skipSettingsKeys.contains(settings->group())) {
if (const auto acc = loadAccountHelper(*settings)) {
const auto accountsVersion = settings->value(QLatin1String(versionC)).toInt();
if (accountsVersion <= maxAccountsVersion) {
- for (const auto &accountId : settings->childGroups()) {
+ const auto settingsChildGroups = settings->childGroups();
+ for (const auto &accountId : settingsChildGroups) {
settings->beginGroup(accountId);
const auto accountVersion = settings->value(QLatin1String(versionC), 1).toInt();
settings.beginGroup(QLatin1String(generalC));
qCInfo(lcAccountManager) << "Saving " << acc->approvedCerts().count() << " unknown certs.";
QByteArray certs;
- for (const auto &cert : acc->approvedCerts()) {
+ const auto approvedCerts = acc->approvedCerts();
+ for (const auto &cert : approvedCerts) {
certs += cert.toPem() + '\n';
}
if (!certs.isEmpty()) {
acc->_settingsMap.insert(QLatin1String(userC), settings.value(userC));
acc->_displayName = settings.value(QLatin1String(displayNameC), "").toString();
QString authTypePrefix = authType + "_";
- for (const auto &key : settings.childKeys()) {
+ const auto settingsChildKeys = settings.childKeys();
+ for (const auto &key : settingsChildKeys) {
if (!key.startsWith(authTypePrefix))
continue;
acc->_settingsMap.insert(key, settings.value(key));
AccountStatePtr AccountManager::accountFromUserId(const QString &id) const
{
- for (const auto &account : accounts()) {
+ const auto accountsList = accounts();
+ for (const auto &account : accountsList) {
const auto isUserIdWithPort = id.split(QLatin1Char(':')).size() > 1;
const auto port = isUserIdWithPort ? account->account()->url().port() : -1;
const auto portString = (port > 0 && port != 80 && port != 443) ? QStringLiteral(":%1").arg(port) : QStringLiteral("");
QAction *AccountSettings::addActionToEncryptionMessage(const QString &actionTitle, const QString &actionId)
{
- for (const auto &action : _ui->encryptionMessage->actions()) {
+ const auto encryptionActions = _ui->encryptionMessage->actions();
+ for (const auto &action : encryptionActions) {
if (action->property(e2eUiActionIdKey) == actionId) {
return action;
}
settings->endGroup();
// Wipe confusing keys from the future, ignore the others
- for (const auto &badKey : deleteKeys)
+ for (const auto &badKey : qAsConst(deleteKeys)) {
settings->remove(badKey);
+ }
}
configFile.setClientVersionString(MIRALL_VERSION_STRING);
this, &Application::slotAccountStateAdded);
connect(AccountManager::instance(), &AccountManager::accountRemoved,
this, &Application::slotAccountStateRemoved);
- for (const auto &ai : AccountManager::instance()->accounts()) {
+ const auto accounts = AccountManager::instance()->accounts();
+ for (const auto &ai : accounts) {
slotAccountStateAdded(ai.data());
}
auto linkSharePresent = false;
auto placeholderLinkSharePresent = false;
- for (const auto &share : _shares) {
+ for (const auto &share : qAsConst(_shares)) {
const auto shareType = share->getShareType();
if (!linkSharePresent && shareType == Share::TypeLink) {
qCInfo(lcFolderMan) << "Setup folders from settings file";
- for (const auto &account : AccountManager::instance()->accounts()) {
+ const auto accounts = AccountManager::instance()->accounts();
+ for (const auto &account : accounts) {
const auto id = account->account()->id();
if (!accountsWithSettings.contains(id)) {
continue;
emit folderListChanged(_folderMap);
- for (const auto folder : _folderMap) {
+ for (const auto folder : qAsConst(_folderMap)) {
folder->processSwitchedToVirtualFiles();
}
void FolderMan::setupFoldersHelper(QSettings &settings, AccountStatePtr account, const QStringList &ignoreKeys, bool backwardsCompatible, bool foldersWithPlaceholders)
{
- for (const auto &folderAlias : settings.childGroups()) {
+ const auto settingsChildGroups = settings.childGroups();
+ for (const auto &folderAlias : settingsChildGroups) {
// Skip folders with too-new version
settings.beginGroup(folderAlias);
if (ignoreKeys.contains(settings.group())) {
settings->endGroup();
};
- for (const auto &accountId : settings->childGroups()) {
+ const auto settingsChildGroups = settings->childGroups();
+ for (const auto &accountId : settingsChildGroups) {
settings->beginGroup(accountId);
processSubgroup("Folders");
processSubgroup("Multifolders");
void FolderMan::scheduleAllFolders()
{
- for (Folder *f : _folderMap.values()) {
+ const auto folderMapValues = _folderMap.values();
+ for (Folder *f : folderMapValues) {
if (f && f->canSync()) {
scheduleFolder(f);
}
if (accountState->isConnected()) {
qCInfo(lcFolderMan) << "Account" << accountName << "connected, scheduling its folders";
- for (Folder *f : _folderMap.values()) {
+ const auto folderMapValues = _folderMap.values();
+ for (Folder *f : folderMapValues) {
if (f
&& f->canSync()
&& f->accountState() == accountState) {
}
_syncEnabled = enabled;
// force a redraw in case the network connect status changed
- emit(folderSyncStateChange(nullptr));
+ emit folderSyncStateChange(nullptr);
}
void FolderMan::startScheduledSyncSoon()
void FolderMan::slotStartScheduledFolderSync()
{
if (isAnySyncRunning()) {
- for (auto f : _folderMap) {
+ for (auto f : qAsConst(_folderMap)) {
if (f->isSyncRunning())
qCInfo(lcFolderMan) << "Currently folder " << f->remoteUrl().toString() << " is running, wait for finish!";
}
if (!serverPath.startsWith('/'))
serverPath.prepend('/');
- for (Folder *folder : this->map().values()) {
+ const auto mapValues = map().values();
+ for (Folder *folder : mapValues) {
if (acc && folder->accountState()->account() != acc) {
continue;
}
void FolderMan::setDirtyProxy()
{
- for (const Folder *f : _folderMap.values()) {
+ const auto folderMapValues = _folderMap.values();
+ for (const Folder *f : folderMapValues) {
if (f) {
if (f->accountState() && f->accountState()->account()
&& f->accountState()->account()->networkAccessManager()) {
void FolderMan::setDirtyNetworkLimits()
{
- for (Folder *f : _folderMap.values()) {
+ const auto folderMapValues = _folderMap.values();
+ for (Folder *f : folderMapValues) {
// set only in busy folders. Otherwise they read the config anyway.
if (f && f->isBusy()) {
f->setDirtyNetworkLimits();
{
qCInfo(lcFolderMan) << "Got files push notification for account" << account;
- for (auto folder : _folderMap) {
+ for (auto folder : qAsConst(_folderMap)) {
// Just run on the folders that belong to this account
if (folder->accountState()->account() != account) {
continue;
if (_ui->manualProxyRadioButton->isChecked()) {
// Check if at least one account is using localhost, because Qt proxy settings have no
// effect for localhost (#7169)
- for (const auto &account : AccountManager::instance()->accounts()) {
+ const auto accounts = AccountManager::instance()->accounts();
+ for (const auto &account : accounts) {
const auto host = account->account()->url().host();
// Some typical url for localhost
if (host == "localhost" || host.startsWith("127.") || host == "[::1]")
void SocketApi::command_V2_LIST_ACCOUNTS(const QSharedPointer<SocketApiJobV2> &job) const
{
QJsonArray out;
- for (auto acc : AccountManager::instance()->accounts()) {
+ const auto accounts = AccountManager::instance()->accounts();
+ for (auto acc : accounts) {
// TODO: Use uuid once https://github.com/owncloud/client/pull/8397 is merged
out << QJsonObject({ { "name", acc->account()->displayName() }, { "id", acc->account()->id() } });
}
OCC::AccountPtr accountInRequestedServer;
- for (const auto &account : OCC::AccountManager::instance()->accounts()) {
+ const auto accountsList = OCC::AccountManager::instance()->accounts();
+ for (const auto &account : accountsList) {
if (account && account->account() && imagePath.startsWith(account->account()->url().toString())) {
accountInRequestedServer = account->account();
}
if(json.contains("subjectRichParameters")) {
const auto richParams = json.value("subjectRichParameters").toObject();
- for(const auto &key : richParams.keys()) {
+ const auto richParamsKeys = richParams.keys();
+ for(const auto &key : richParamsKeys) {
const auto parameterJsonObject = richParams.value(key).toObject();
a._subjectRichParameters.insert(key, Activity::RichSubjectParameter{
parameterJsonObject.value(QStringLiteral("type")).toString(),
endResetModel();
}
- for (const auto &provider : _providers) {
+ for (const auto &provider : qAsConst(_providers)) {
startSearchForProvider(provider._id);
}
}
void UnifiedSearchResultsListModel::disconnectAndClearSearchJobs()
{
- for (const auto &connection : _searchJobConnections) {
+ for (const auto &connection : qAsConst(_searchJobConnections)) {
if (connection) {
QObject::disconnect(connection);
}
showDesktopNotification(subject, message, -static_cast<int>(qHash(subject)));
// Set these activities as notified here, rather than in showDesktopNotification
- for(const auto &activity : toNotifyList) {
+ for(const auto &activity : qAsConst(toNotifyList)) {
_notifiedNotifications.insert(activity._id);
_activityModel->addNotificationToActivityList(activity);
}
return;
}
- for(const auto &activity : toNotifyList) {
+ for(const auto &activity : qAsConst(toNotifyList)) {
const auto message = activity._objectType == QStringLiteral("chat")
? activity._message : AccountManager::instance()->accounts().count() == 1 ? "" : activity._accName;
void User::slotCheckExpiredActivities()
{
- for (const Activity &activity : _activityModel->errorsList()) {
+ const auto errorsList = _activityModel->errorsList();
+ for (const Activity &activity : errorsList) {
if (activity._expireAtMsecs > 0 && QDateTime::currentDateTime().toMSecsSinceEpoch() >= activity._expireAtMsecs) {
_activityModel->removeActivityFromActivityList(activity);
}
const auto isCurrentUserChanged = !_users[id]->isCurrentUser();
if (isCurrentUserChanged) {
- for (const auto user : _users) {
+ for (const auto user : qAsConst(_users)) {
user->setCurrentUser(false);
}
_users[id]->setCurrentUser(true);
persist();
}
_isRenewingOAuthToken = false;
- for (const auto &job : _retryQueue) {
+ for (const auto &job : qAsConst(_retryQueue)) {
if (job)
job->retry();
}
bool ProcessDirectoryJob::isAnyParentBeingRestored(const QString &file) const
{
- for (const auto &directoryNameToRestore : _discoveryData->_directoryNamesToRestoreOnPropagation) {
+ for (const auto &directoryNameToRestore : qAsConst(_discoveryData->_directoryNamesToRestoreOnPropagation)) {
if (file.startsWith(QString(directoryNameToRestore + QLatin1Char('/')))) {
qCWarning(lcDisco) << "File" << file << " is within the tree that's being restored" << directoryNameToRestore;
return true;
newTimer->callOnTimeout(this, [this, newTimer] {
qCInfo(lcEngine) << "Rescanning now that delayed sync run is scheduled for:" << newTimer->files;
- for (const auto &file : newTimer->files) {
+ for (const auto &file : qAsConst(newTimer->files)) {
this->_filesScheduledForLaterSync.remove(file);
}
return;
}
- for (const auto &file : _discoveryPhase->_filesUnscheduleSync) {
+ for (const auto &file : qAsConst(_discoveryPhase->_filesUnscheduleSync)) {
const auto fileSyncRunTimer = _filesScheduledForLaterSync.value(file);
if (fileSyncRunTimer) {
Q_ASSERT(!fileName.isEmpty());
// Compute the size and content from the chunks if possible
- for (auto chunkName : sourceFolder->children.keys()) {
+ const auto childrenKeys = sourceFolder->children.keys();
+ for (auto chunkName : childrenKeys) {
auto &x = sourceFolder->children[chunkName];
Q_ASSERT(!x.isDir);
Q_ASSERT(x.size > 0); // There should not be empty chunks
});
auto &modifier = deleteOnRemote ? fakeFolder.remoteModifier() : fakeFolder.localModifier();
- for (const auto &s : fakeFolder.currentRemoteState().children.keys())
+ const auto childrenKeys = fakeFolder.currentRemoteState().children.keys();
+ for (const auto &s : childrenKeys) {
modifier.remove(s);
+ }
QVERIFY(!fakeFolder.syncOnce()); // Should fail because we cancel the sync
QCOMPARE(aboutToRemoveAllFilesCalled, 1);
});
auto &modifier = deleteOnRemote ? fakeFolder.remoteModifier() : fakeFolder.localModifier();
- for (const auto &s : fakeFolder.currentRemoteState().children.keys())
+ const auto childrenKeys = fakeFolder.currentRemoteState().children.keys();
+ for (const auto &s : childrenKeys) {
modifier.remove(s);
+ }
QVERIFY(fakeFolder.syncOnce()); // Should succeed, and all files must then be deleted
[&] { QVERIFY(false); });
QVERIFY(fakeFolder.syncOnce());
- for (const auto &s : fakeFolder.currentRemoteState().children.keys())
+ const auto childrenKeys = fakeFolder.currentRemoteState().children.keys();
+ for (const auto &s : childrenKeys) {
fakeFolder.syncJournal().avoidRenamesOnNextSync(s); // clears all the fileid and inodes.
+ }
fakeFolder.localModifier().remove("A/a1");
auto expectedState = fakeFolder.currentLocalState();
QVERIFY(fakeFolder.syncOnce());
// Remove the second chunk, so all further chunks will be deleted and resent
auto firstChunk = chunkMap.first();
auto secondChunk = *(chunkMap.begin() + 1);
- for (const auto& name : chunkMap.keys().mid(2)) {
+ const auto chunksList = chunkMap.keys().mid(2);
+ for (const auto& name : chunksList) {
chunksToDelete.append(name);
}
fakeFolder.uploadState().children.first().remove(secondChunk.name);
int countFolders(const QString &path)
{
int n = 0;
- for (const auto &sub : QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot))
+ const auto entryList = QDir(path).entryList(QDir::Dirs | QDir::NoDotAndDotDot);
+ for (const auto &sub : entryList) {
n += 1 + countFolders(path + '/' + sub);
+ }
return n;
}
auto base = state.find(pathComponents.parentDirComponents());
if (!base)
return false;
- for (const auto &item : base->children) {
+ for (const auto &item : qAsConst(base->children)) {
if (item.name.startsWith(pathComponents.fileName()) && item.name.contains("(conflicted copy")) {
local.remove(item.path());
return true;
QVERIFY(fakeFolder.syncOnce());
// Verify that the conflict names don't have the user name
- for (const auto &name : findConflicts(fakeFolder.currentLocalState().children["A"])) {
+ const auto conflicts = findConflicts(fakeFolder.currentLocalState().children["A"]);
+ for (const auto &name : conflicts) {
QVERIFY(!name.contains(fakeFolder.syncEngine().account()->davDisplayName()));
}
<< "foo bla bar/file"
<< "fo_"
<< "fo_/file";
- for (const auto& elem : elements)
+ for (const auto& elem : qAsConst(elements)) {
makeEntry(elem);
+ }
auto checkElements = [&]() {
bool ok = true;
- for (const auto& elem : elements) {
+ for (const auto& elem : qAsConst(elements)) {
SyncJournalFileRecord record;
if (!_db.getFileRecord(elem, &record) || !record.isValid()) {
qWarning() << "Missing record: " << elem;
auto base = state.find(pathComponents.parentDirComponents());
if (!base)
return false;
- for (const auto &item : base->children) {
+ for (const auto &item : qAsConst(base->children)) {
if (item.name.startsWith(pathComponents.fileName()) && item.name.contains("(conflicted copy")) {
local.remove(item.path());
return true;
}
conflicts = findConflicts(currentLocal.children["B4"]);
QCOMPARE(conflicts.size(), 1);
- for (const auto& c : conflicts) {
+ for (const auto& c : qAsConst(conflicts)) {
QCOMPARE(currentLocal.find(c)->contentChar, 'L');
local.remove(c);
}