void ownCloudFolder::slotTerminateSync() { qDebug() << "folder " << alias() << " Terminating!"; QString configDir = _csync->csyncConfigDir(); qDebug() << "csync's Config Dir: " << configDir; if( _thread ) { _thread->terminate(); _thread->wait(); _csync->deleteLater(); delete _thread; _csync = 0; _thread = 0; } if( ! configDir.isEmpty() ) { QFile file( configDir + QLatin1String("/lock")); if( file.exists() ) { qDebug() << "After termination, lock file exists and gets removed."; file.remove(); } } _errors.append( tr("The CSync thread terminated.") ); _csyncError = true; qDebug() << "-> CSync Terminated!"; slotCSyncFinished(); }
void Folder::slotTerminateSync() { qDebug() << "folder " << alias() << " Terminating!"; MirallConfigFile cfg; QString configDir = cfg.configPath(); qDebug() << "csync's Config Dir: " << configDir; if( _thread && _csync ) { csync_request_abort(_csync_ctx); _thread->quit(); _thread->wait(); _csync->deleteLater(); delete _thread; _csync = 0; _thread = 0; csync_resume(_csync_ctx); } if( ! configDir.isEmpty() ) { QFile file( configDir + QLatin1String("/lock")); if( file.exists() ) { qDebug() << "After termination, lock file exists and gets removed."; file.remove(); } } _errors.append( tr("The CSync thread terminated.") ); _csyncError = true; qDebug() << "-> CSync Terminated!"; slotCSyncFinished(); }
void ownCloudFolder::startSync(const QStringList &pathList) { if (_thread && _thread->isRunning()) { qCritical() << "* ERROR csync is still running and new sync requested."; return; } delete _csync; delete _thread; _errors.clear(); _csyncError = false; _csyncUnavail = false; _wipeDb = false; MirallConfigFile cfgFile; _syncResult.clearErrors(); // we now have watchers for everything, so every sync is remote. _syncResult.setLocalRunOnly( false ); _syncResult.setStatus( SyncResult::SyncPrepare ); emit syncStateChange(); QString url = replaceScheme(_secondPath); qDebug() << "*** Start syncing url to ownCloud: " << url; _thread = new QThread(this); _csync = new CSyncThread( path(), url); _csync->moveToThread(_thread); QList<QNetworkProxy> proxies = QNetworkProxyFactory::proxyForQuery(QUrl(cfgFile.ownCloudUrl())); // We set at least one in Application Q_ASSERT(proxies.count() > 0); QNetworkProxy proxy = proxies.first(); _csync->setConnectionDetails( CredentialStore::instance()->user(), CredentialStore::instance()->password(), proxy ); qRegisterMetaType<SyncFileItemVector>("SyncFileItemVector"); connect( _csync, SIGNAL(treeWalkResult(const SyncFileItemVector&)), this, SLOT(slotThreadTreeWalkResult(const SyncFileItemVector&)), Qt::QueuedConnection); connect(_csync, SIGNAL(started()), SLOT(slotCSyncStarted()), Qt::QueuedConnection); connect(_csync, SIGNAL(finished()), SLOT(slotCSyncFinished()), Qt::QueuedConnection); connect(_csync, SIGNAL(csyncError(QString)), SLOT(slotCSyncError(QString)), Qt::QueuedConnection); connect(_csync, SIGNAL(csyncUnavailable()), SLOT(slotCsyncUnavailable()), Qt::QueuedConnection); _thread->start(); QMetaObject::invokeMethod(_csync, "startSync", Qt::QueuedConnection); emit syncStarted(); }
void ownCloudFolder::startSync(const QStringList &pathList) { if (_csync && _csync->isRunning()) { qCritical() << "* ERROR csync is still running and new sync requested."; return; } delete _csync; MirallConfigFile cfgFile; QUrl url( _secondPath ); url.setScheme( "owncloud" ); qDebug() << "*** Start syncing to ownCloud, onlyLocal: " << _localCheckOnly; _csync = new CSyncThread(path(), url.toEncoded(), _localCheckOnly ); _csync->setUserPwd( cfgFile.ownCloudUser(), cfgFile.ownCloudPasswd() ); QObject::connect(_csync, SIGNAL(started()), SLOT(slotCSyncStarted())); QObject::connect(_csync, SIGNAL(finished()), SLOT(slotCSyncFinished())); _csync->start(); }
void Folder::slotTerminateSync(bool block) { qDebug() << "folder " << alias() << " Terminating!"; if( _thread && _csync ) { _csync->abort(); // Do not display an error message, user knows his own actions. // _errors.append( tr("The CSync thread terminated.") ); // _csyncError = true; if (!block) { setSyncState(SyncResult::SyncAbortRequested); return; } _thread->wait(); _csync->deleteLater(); delete _thread; _thread = 0; slotCSyncFinished(); } setSyncEnabled(false); }