void Application::slotAccountStateChanged(int state) { FolderMan* folderMan = FolderMan::instance(); switch (state) { case AccountState::Connected: qDebug() << "Enabling sync scheduler, scheduling all folders"; folderMan->setSyncEnabled(true); folderMan->slotScheduleAllFolders(); break; case AccountState::ServiceUnavailable: case AccountState::SignedOut: case AccountState::ConfigurationError: case AccountState::NetworkError: case AccountState::Disconnected: qDebug() << "Disabling sync scheduler, terminating sync"; folderMan->setSyncEnabled(false); folderMan->terminateSyncProcess(); break; } // Stop checking the connection if we're manually signed out or // when the error is permanent. if (state == AccountState::SignedOut || state == AccountState::ConfigurationError) { _checkConnectionTimer.stop(); } else if (! _checkConnectionTimer.isActive()) { _checkConnectionTimer.start(); } slotUpdateConnectionErrors(state); }
void Application::slotConnectionValidatorResult(ConnectionValidator::Status status) { qDebug() << "Connection Validator Result: " << _conValidator->statusString(status); QStringList startupFails; if( status == ConnectionValidator::Connected ) { FolderMan *folderMan = FolderMan::instance(); qDebug() << "######## Connection and Credentials are ok!"; folderMan->setSyncEnabled(true); // queue up the sync for all folders. folderMan->slotScheduleAllFolders(); } else { // if we have problems here, it's unlikely that syncing will work. FolderMan::instance()->setSyncEnabled(false); startupFails = _conValidator->errors(); _startupNetworkError = _conValidator->networkError(); if (_userTriggeredConnect) { _userTriggeredConnect = false; } QTimer::singleShot(30*1000, this, SLOT(slotCheckConnection())); } _gui->startupConnected( (status == ConnectionValidator::Connected), startupFails); _conValidator->deleteLater(); }
void AccountSettings::slotFolderWizardRejected() { qDebug() << "* Folder wizard cancelled"; FolderMan *folderMan = FolderMan::instance(); folderMan->setSyncEnabled(true); folderMan->slotScheduleAllFolders(); }
void Application::slotToggleFolderman(int state) { FolderMan* folderMan = FolderMan::instance(); switch (state) { case Account::Connected: folderMan->setSyncEnabled(true); folderMan->slotScheduleAllFolders(); break; case Account::Disconnected: case Account::SignedOut: case Account::InvalidCredidential: folderMan->setSyncEnabled(false); folderMan->terminateSyncProcess(); break; } }
void AccountSettings::slotAddFolder() { FolderMan *folderMan = FolderMan::instance(); folderMan->setSyncEnabled(false); // do not start more syncs. FolderWizard *folderWizard = new FolderWizard(this); connect(folderWizard, SIGNAL(accepted()), SLOT(slotFolderWizardAccepted())); connect(folderWizard, SIGNAL(rejected()), SLOT(slotFolderWizardRejected())); folderWizard->open(); }
void Application::slotownCloudWizardDone( int res ) { FolderMan *folderMan = FolderMan::instance(); if( res == QDialog::Accepted ) { int cnt = folderMan->setupFolders(); qDebug() << "Set up " << cnt << " folders."; // We have some sort of configuration. Enable autostart Utility::setLaunchOnStartup(_theme->appName(), _theme->appNameGUI(), true); } folderMan->setSyncEnabled( true ); if( res == QDialog::Accepted ) { slotCheckConnection(); } }
void Application::slotLogout() { Account *a = AccountManager::instance()->account(); if (a) { // invalidate & forget token/password a->credentials()->invalidateToken(a); // terminate all syncs and unload folders FolderMan *folderMan = FolderMan::instance(); folderMan->setSyncEnabled(false); folderMan->terminateSyncProcess(); folderMan->unloadAllFolders(); a->setState(Account::SignedOut); // show result _gui->slotComputeOverallSyncStatus(); } }
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(); } }
void Application::slotConnectionValidatorResult(ConnectionValidator::Status status) { qDebug() << "Connection Validator Result: " << _conValidator->statusString(status); QStringList startupFails; if( status == ConnectionValidator::Connected ) { FolderMan *folderMan = FolderMan::instance(); qDebug() << "######## Connection and Credentials are ok!"; folderMan->setSyncEnabled(true); // queue up the sync for all folders. folderMan->slotScheduleAllFolders(); if(!_connectionMsgBox.isNull()) { _connectionMsgBox->close(); } } else { // if we have problems here, it's unlikely that syncing will work. FolderMan::instance()->setSyncEnabled(false); startupFails = _conValidator->errors(); _startupNetworkError = _conValidator->networkError(); if (_userTriggeredConnect) { if(_connectionMsgBox.isNull()) { _connectionMsgBox = new QMessageBox(QMessageBox::Warning, tr("Connection failed"), _conValidator->errors().join(". ").append('.'), QMessageBox::Ok, 0); _connectionMsgBox->setAttribute(Qt::WA_DeleteOnClose); _connectionMsgBox->open(); _userTriggeredConnect = false; } } QTimer::singleShot(30*1000, this, SLOT(slotCheckConnection())); } _gui->startupConnected( (status == ConnectionValidator::Connected), startupFails); _conValidator->deleteLater(); }