Go offline when server is in maintenance.

This commit is contained in:
Daniel Molkentin 2013-01-16 14:39:43 +01:00
parent d3c55c2b7c
commit 45c82a2746
8 changed files with 31 additions and 9 deletions

View File

@ -935,6 +935,10 @@ void Application::computeOverallSyncStatus()
folderMessage = tr( "Sync is running." );
overallResult.setStatus( SyncResult::SyncRunning );
break;
case SyncResult::Unavailable:
folderMessage = tr( "Server is currently not available." );
overallResult.setStatus( SyncResult::Unavailable );
break;
case SyncResult::Success:
if( overallResult.status() == SyncResult::Undefined ) {
folderMessage = tr( "Last Sync was successful." );

View File

@ -345,7 +345,10 @@ void CSyncThread::startSync()
const char *errMsg = csync_get_error_string( csync );
QString errStr = csyncErrorToString(err, errMsg);
qDebug() << " #### ERROR csync_update: " << errStr;
emit csyncError(errStr);
if (err == CSYNC_ERR_SERVICE_UNAVAILABLE)
emit csyncUnavailable();
else
emit csyncError(errStr);
goto cleanup;
}
qDebug() << "<<#### Update end ###########################################################";
@ -375,7 +378,10 @@ void CSyncThread::startSync()
const char *errMsg = csync_get_error_string( csync );
QString errStr = csyncErrorToString(err, errMsg);
qDebug() << " #### ERROR csync_propagate: " << errStr;
emit csyncError(errStr);
if (err == CSYNC_ERR_SERVICE_UNAVAILABLE)
emit csyncUnavailable();
else
emit csyncError(errStr);
goto cleanup;
}

View File

@ -51,6 +51,7 @@ signals:
void fileRemoved( const QString& );
void csyncError( const QString& );
void csyncWarning( const QString& );
void csyncUnavailable();
void treeWalkResult(const SyncFileItemVector&);
void csyncStateDbFile( const QString& );

View File

@ -63,6 +63,9 @@ void FileItemDialog::setSyncResult( const SyncResult& result )
case SyncResult::NotYetStarted:
folderMessage = tr( "The folder waits to start syncing." );
break;
case SyncResult::Unavailable:
folderMessage = tr( "Server is currently not available." );
break;
case SyncResult::SyncRunning:
folderMessage = tr("Sync is running.");
break;

View File

@ -58,6 +58,7 @@ ownCloudFolder::ownCloudFolder(const QString &alias,
, _thread(0)
, _csync(0)
, _csyncError(false)
, _csyncUnavail(false)
, _wipeDb(false)
{
_notifier = new DownloadNotifier(QDir::fromNativeSeparators(path),
@ -114,6 +115,7 @@ void ownCloudFolder::startSync(const QStringList &pathList)
delete _thread;
_errors.clear();
_csyncError = false;
_csyncUnavail = false;
_wipeDb = false;
MirallConfigFile cfgFile;
@ -145,6 +147,7 @@ void ownCloudFolder::startSync(const QStringList &pathList)
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);
connect(_csync, SIGNAL(fileReceived(QString)),
_notifier, SLOT(slotFileReceived(QString)), Qt::QueuedConnection);
@ -165,6 +168,11 @@ void ownCloudFolder::slotCSyncError(const QString& err)
_csyncError = true;
}
void ownCloudFolder::slotCsyncUnavailable()
{
_csyncUnavail = true;
}
void ownCloudFolder::slotCSyncFinished()
{
qDebug() << "-> CSync Finished slot with error " << _csyncError;
@ -176,6 +184,8 @@ void ownCloudFolder::slotCSyncFinished()
_syncResult.setErrorStrings( _errors );
qDebug() << " * owncloud csync thread finished with error";
if( _wipeDb ) wipe();
} else if (_csyncUnavail) {
_syncResult.setStatus(SyncResult::Unavailable);
} else {
_syncResult.setStatus(SyncResult::Success);
}

View File

@ -90,6 +90,7 @@ protected slots:
private slots:
void slotCSyncStarted();
void slotCSyncError(const QString& );
void slotCsyncUnavailable();
void slotCSyncFinished();
private:
@ -99,6 +100,7 @@ private:
CSyncThread *_csync;
QStringList _errors;
bool _csyncError;
bool _csyncUnavail;
bool _wipeDb;
SyncFileItemVector _items;
};

View File

@ -81,9 +81,8 @@ QIcon ownCloudTheme::syncStateIcon( SyncResult::Status status, bool sysTray ) co
switch( status ) {
case SyncResult::Undefined:
statusIcon = QLatin1String("state-offline");
break;
case SyncResult::NotYetStarted:
case SyncResult::Unavailable:
statusIcon = QLatin1String("state-offline");
break;
case SyncResult::SyncRunning:
@ -93,11 +92,7 @@ QIcon ownCloudTheme::syncStateIcon( SyncResult::Status status, bool sysTray ) co
statusIcon = QLatin1String("state-ok");
break;
case SyncResult::Error:
statusIcon = QLatin1String("state-error");
break;
case SyncResult::SetupError:
statusIcon = QLatin1String("state-error");
break;
default:
statusIcon = QLatin1String("state-error");
}

View File

@ -34,7 +34,8 @@ public:
SyncRunning,
Success,
Error,
SetupError
SetupError,
Unavailable
};
SyncResult();