// 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 ); }
void AccountSettings::slotFolderWizardAccepted() { FolderWizard *folderWizard = qobject_cast<FolderWizard*>(sender()); FolderMan *folderMan = FolderMan::instance(); qDebug() << "* Folder wizard completed"; QString alias = folderWizard->field(QLatin1String("alias")).toString(); QString sourceFolder = folderWizard->field(QLatin1String("sourceFolder")).toString(); QString targetPath = folderWizard->property("targetPath").toString(); if (!FolderMan::ensureJournalGone( sourceFolder )) return; folderMan->addFolderDefinition(alias, sourceFolder, targetPath ); Folder *f = folderMan->setupFolderFromConfigFile( alias ); slotAddFolder( f ); folderMan->setSyncEnabled(true); if( f ) { folderMan->slotScheduleAllFolders(); emit folderChanged(); } }