// Method executed when the user ends has finished the basic setup. void OwncloudSetupWizard::slotAssistantFinished( int result ) { FolderMan *folderMan = FolderMan::instance(); if( result == QDialog::Rejected ) { // the old config remains valid. Remove the temporary one. _ocWizard->account()->deleteLater(); qDebug() << "Rejected the new config, use the old!"; } else if( result == QDialog::Accepted ) { Account *newAccount = _ocWizard->account(); Account *origAccount = AccountManager::instance()->account(); const QString localFolder = _ocWizard->localFolder(); bool isInitialSetup = (origAccount == 0); bool reinitRequired = newAccount->changed(origAccount, true /* ignoreProtocol, allows http->https */); bool startFromScratch = _ocWizard->field("OCSyncFromScratch").toBool(); // This distinguishes three possibilities: // 1. Initial setup, no prior account exists if (isInitialSetup) { folderMan->addFolderDefinition(Theme::instance()->appName(), localFolder, _remoteFolder ); replaceDefaultAccountWith(newAccount); } // 2. Server URL or user changed, requires reinit of folders else if (reinitRequired) { // 2.1: startFromScratch: (Re)move local data, clean slate sync if (startFromScratch) { if (ensureStartFromScratch(localFolder)) { folderMan->addFolderDefinition(Theme::instance()->appName(), localFolder, _remoteFolder ); _ocWizard->appendToConfigurationLog(tr("<font color=\"green\"><b>Local sync folder %1 successfully created!</b></font>").arg(localFolder)); replaceDefaultAccountWith(newAccount); } } // 2.2: Reinit: Remove journal and start a sync else { folderMan->removeAllFolderDefinitions(); folderMan->addFolderDefinition(Theme::instance()->appName(), localFolder, _remoteFolder ); _ocWizard->appendToConfigurationLog(tr("<font color=\"green\"><b>Local sync folder %1 successfully created!</b></font>").arg(localFolder)); replaceDefaultAccountWith(newAccount); } } // 3. Existing setup, http -> https or password changed else { replaceDefaultAccountWith(newAccount); qDebug() << "Only password was changed, no changes to folder configuration."; } } // notify others. emit ownCloudWizardDone( result ); }
// Method executed when the user ends has finished the basic setup. void OwncloudSetupWizard::slotAssistantFinished( int result ) { FolderMan *folderMan = FolderMan::instance(); if( result == QDialog::Rejected ) { qDebug() << "Rejected the new config, use the old!"; } else if( result == QDialog::Accepted ) { // This may or may not wipe all folder definitions, depending // on whether a new account is activated or the existing one // is changed. auto account = applyAccountChanges(); QString localFolder = QDir::fromNativeSeparators(_ocWizard->localFolder()); if( !localFolder.endsWith(QLatin1Char('/'))) { localFolder.append(QLatin1Char('/')); } bool startFromScratch = _ocWizard->field("OCSyncFromScratch").toBool(); 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; auto f = folderMan->addFolder(account, folderDefinition); if (f) { f->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, _ocWizard->selectiveSyncBlacklist()); } _ocWizard->appendToConfigurationLog(tr("<font color=\"green\"><b>Local sync folder %1 successfully created!</b></font>").arg(localFolder)); } } // notify others. emit ownCloudWizardDone( result ); }