_accountState = FileProviderDomainManager::accountStateFromFileProviderDomainIdentifier(argument);
sendAccountDetails();
return;
+ } else if (command == "FILE_PROVIDER_DOMAIN_SYNC_STATE_CHANGE") {
+ reportSyncState(argument);
+ return;
}
qCWarning(lcFileProviderSocketController) << "Unknown command or reply:" << receivedLine;
sendMessage(message);
}
-}
+void FileProviderSocketController::reportSyncState(const QString &receivedState) const
+{
+ auto syncState = SyncResult::Status::Undefined;
+ if (receivedState == QStringLiteral("SYNC_STARTED")) {
+ syncState = SyncResult::Status::SyncRunning;
+ } else if (receivedState == QStringLiteral("SYNC_FINISHED")) {
+ syncState = SyncResult::Status::Success;
+ } else if (receivedState == QStringLiteral("SYNC_FAILED")) {
+ syncState = SyncResult::Status::Problem;
+ } else if (receivedState == QStringLiteral("SYNC_PAUSED")) {
+ syncState = SyncResult::Status::Paused;
+ } else {
+ qCWarning(lcFileProviderSocketController) << "Unknown sync state received:" << receivedState;
+ }
+ emit syncStateChanged(_accountState->account(), syncState);
}
+
+} // namespace Mac
+
+} // namespace OCC
#include <QPointer>
-#include "accountstate.h"
+#include "gui/accountstate.h"
+#include "libsync/syncresult.h"
class QLocalSocket;
explicit FileProviderSocketController(QLocalSocket * const socket, QObject * const parent = nullptr);
signals:
- void socketDestroyed(const QLocalSocket * const socket);
+ void socketDestroyed(const QLocalSocket * const socket);signals:
+ void syncStateChanged(const AccountPtr &account, SyncResult::Status state) const;
public slots:
void sendMessage(const QString &message) const;
void sendAccountDetails() const;
void sendNotAuthenticated() const;
+ void reportSyncState(const QString &receivedState) const;
+
private:
QPointer<QLocalSocket> _socket;
AccountStatePtr _accountState;