diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index dfb4654acc..608cd86733 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -277,7 +277,6 @@ void AccountSettings::slotFolderWizardAccepted() qDebug() << "* Folder wizard completed"; FolderDefinition definition; - definition.alias = folderWizard->field(QLatin1String("alias")).toString(); definition.localPath = FolderDefinition::prepareLocalPath( folderWizard->field(QLatin1String("sourceFolder")).toString()); definition.targetPath = folderWizard->property("targetPath").toString(); diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index 8c5168171a..ec3c63ccf8 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -200,7 +200,7 @@ int FolderMan::setupFolders() foreach (const auto& folderAlias, settings->childGroups()) { FolderDefinition folderDefinition; if (FolderDefinition::load(*settings, folderAlias, &folderDefinition)) { - Folder* f = addFolderInternal(folderDefinition, account.data()); + Folder* f = addFolderInternal(std::move(folderDefinition), account.data()); if (f) { slotScheduleSync(f); emit folderSyncStateChange(f); @@ -777,8 +777,15 @@ Folder* FolderMan::addFolder(AccountState* accountState, const FolderDefinition& return folder; } -Folder* FolderMan::addFolderInternal(const FolderDefinition& folderDefinition, AccountState* accountState) +Folder* FolderMan::addFolderInternal(FolderDefinition folderDefinition, AccountState* accountState) { + auto alias = folderDefinition.alias; + int count = 0; + while (folderDefinition.alias.isEmpty() || _folderMap.contains(folderDefinition.alias)) { + // There is already a folder configured with this name and folder names need to be unique + folderDefinition.alias = alias + QString::number(++count); + } + auto folder = new Folder(folderDefinition, accountState, this ); qDebug() << "Adding folder to Folder Map " << folder; diff --git a/src/gui/folderman.h b/src/gui/folderman.h index 124863f2b4..e597e52d44 100644 --- a/src/gui/folderman.h +++ b/src/gui/folderman.h @@ -201,7 +201,7 @@ private: /** Adds a new folder, does not add it to the account settings and * does not set an account on the new folder. */ - Folder* addFolderInternal(const FolderDefinition& folderDefinition, AccountState* accountState); + Folder* addFolderInternal(FolderDefinition folderDefinition, AccountState* accountState); /* unloads a folder object, does not delete it */ void unloadFolder( Folder * ); diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp index 865674a0e9..8f97188130 100644 --- a/src/gui/owncloudsetupwizard.cpp +++ b/src/gui/owncloudsetupwizard.cpp @@ -459,13 +459,6 @@ void OwncloudSetupWizard::slotAssistantFinished( int result ) if (!startFromScratch || ensureStartFromScratch(localFolder)) { qDebug() << "Adding folder definition for" << localFolder << _remoteFolder; FolderDefinition folderDefinition; - auto alias = Theme::instance()->appName(); - int count = 0; - folderDefinition.alias = alias; - while (folderMan->folder(folderDefinition.alias)) { - // There is already a folder configured with this name and folder names need to be unique - folderDefinition.alias = alias + QString::number(++count); - } folderDefinition.localPath = localFolder; folderDefinition.targetPath = _remoteFolder; folderDefinition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();