From: Christian Kamm Date: Mon, 21 Jan 2019 10:13:17 +0000 (+0100) Subject: Move SyncFileStatus to libcommon X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~316 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fe27804afbd47e524732b79b252ef1179b1f50c0;p=nextcloud-desktop.git Move SyncFileStatus to libcommon It'll be needed in vfs plugins so they can connect to the data coming out of SyncFileStatusTracker. --- diff --git a/src/common/common.cmake b/src/common/common.cmake index f47e7745e..aaaed36af 100644 --- a/src/common/common.cmake +++ b/src/common/common.cmake @@ -11,6 +11,7 @@ set(common_SOURCES ${CMAKE_CURRENT_LIST_DIR}/remotepermissions.cpp ${CMAKE_CURRENT_LIST_DIR}/vfs.cpp ${CMAKE_CURRENT_LIST_DIR}/plugin.cpp + ${CMAKE_CURRENT_LIST_DIR}/syncfilestatus.cpp ) configure_file(${CMAKE_CURRENT_LIST_DIR}/vfspluginmetadata.json.in ${CMAKE_CURRENT_BINARY_DIR}/vfspluginmetadata.json) diff --git a/src/common/syncfilestatus.cpp b/src/common/syncfilestatus.cpp new file mode 100644 index 000000000..6ffea64c2 --- /dev/null +++ b/src/common/syncfilestatus.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) by Klaas Freitag + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "syncfilestatus.h" + +namespace OCC { +SyncFileStatus::SyncFileStatus() = default; + +SyncFileStatus::SyncFileStatus(SyncFileStatusTag tag) + : _tag(tag) +{ +} + +void SyncFileStatus::set(SyncFileStatusTag tag) +{ + _tag = tag; +} + +SyncFileStatus::SyncFileStatusTag SyncFileStatus::tag() const +{ + return _tag; +} + +void SyncFileStatus::setShared(bool isShared) +{ + _shared = isShared; +} + +bool SyncFileStatus::shared() const +{ + return _shared; +} + +QString SyncFileStatus::toSocketAPIString() const +{ + QString statusString; + bool canBeShared = true; + + switch (_tag) { + case StatusNone: + statusString = QLatin1String("NOP"); + canBeShared = false; + break; + case StatusSync: + statusString = QLatin1String("SYNC"); + break; + case StatusWarning: + // The protocol says IGNORE, but all implementations show a yellow warning sign. + statusString = QLatin1String("IGNORE"); + break; + case StatusUpToDate: + statusString = QLatin1String("OK"); + break; + case StatusError: + statusString = QLatin1String("ERROR"); + break; + } + if (canBeShared && _shared) { + statusString += QLatin1String("+SWM"); + } + + return statusString; +} +} diff --git a/src/common/syncfilestatus.h b/src/common/syncfilestatus.h new file mode 100644 index 000000000..cea595f82 --- /dev/null +++ b/src/common/syncfilestatus.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) by Klaas Freitag + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#ifndef SYNCFILESTATUS_H +#define SYNCFILESTATUS_H + +#include +#include +#include + +#include "ocsynclib.h" + +namespace OCC { + +/** + * @brief The SyncFileStatus class + * @ingroup libsync + */ +class OCSYNC_EXPORT SyncFileStatus +{ +public: + enum SyncFileStatusTag { + StatusNone, + StatusSync, + StatusWarning, + StatusUpToDate, + StatusError, + }; + + SyncFileStatus(); + SyncFileStatus(SyncFileStatusTag); + + void set(SyncFileStatusTag tag); + SyncFileStatusTag tag() const; + + void setShared(bool isShared); + bool shared() const; + + QString toSocketAPIString() const; + +private: + SyncFileStatusTag _tag = StatusNone; + bool _shared = false; +}; + +inline bool operator==(const SyncFileStatus &a, const SyncFileStatus &b) +{ + return a.tag() == b.tag() && a.shared() == b.shared(); +} + +inline bool operator!=(const SyncFileStatus &a, const SyncFileStatus &b) +{ + return !(a == b); +} +} + +Q_DECLARE_METATYPE(OCC::SyncFileStatus) + +#endif // SYNCFILESTATUS_H diff --git a/src/gui/socketapi.h b/src/gui/socketapi.h index d23c3df52..6ef89f3ee 100644 --- a/src/gui/socketapi.h +++ b/src/gui/socketapi.h @@ -17,7 +17,7 @@ #define SOCKETAPI_H #include "syncfileitem.h" -#include "syncfilestatus.h" +#include "common/syncfilestatus.h" #include "sharedialog.h" // for the ShareDialogStartPage #include "common/syncjournalfilerecord.h" diff --git a/src/libsync/CMakeLists.txt b/src/libsync/CMakeLists.txt index 353acf3d7..9824f988d 100644 --- a/src/libsync/CMakeLists.txt +++ b/src/libsync/CMakeLists.txt @@ -47,7 +47,6 @@ set(libsync_SRCS propagatedownloadencrypted.cpp syncengine.cpp syncfileitem.cpp - syncfilestatus.cpp syncfilestatustracker.cpp localdiscoverytracker.cpp syncresult.cpp diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 550f1347d..a10edb7b2 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -20,7 +20,7 @@ #include "common/syncjournalfilerecord.h" #include "discoveryphase.h" #include "creds/abstractcredentials.h" -#include "syncfilestatus.h" +#include "common/syncfilestatus.h" #include "csync_exclude.h" #include "filesystem.h" #include "propagateremotedelete.h" diff --git a/src/libsync/syncfilestatus.cpp b/src/libsync/syncfilestatus.cpp deleted file mode 100644 index 6ffea64c2..000000000 --- a/src/libsync/syncfilestatus.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) by Klaas Freitag - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "syncfilestatus.h" - -namespace OCC { -SyncFileStatus::SyncFileStatus() = default; - -SyncFileStatus::SyncFileStatus(SyncFileStatusTag tag) - : _tag(tag) -{ -} - -void SyncFileStatus::set(SyncFileStatusTag tag) -{ - _tag = tag; -} - -SyncFileStatus::SyncFileStatusTag SyncFileStatus::tag() const -{ - return _tag; -} - -void SyncFileStatus::setShared(bool isShared) -{ - _shared = isShared; -} - -bool SyncFileStatus::shared() const -{ - return _shared; -} - -QString SyncFileStatus::toSocketAPIString() const -{ - QString statusString; - bool canBeShared = true; - - switch (_tag) { - case StatusNone: - statusString = QLatin1String("NOP"); - canBeShared = false; - break; - case StatusSync: - statusString = QLatin1String("SYNC"); - break; - case StatusWarning: - // The protocol says IGNORE, but all implementations show a yellow warning sign. - statusString = QLatin1String("IGNORE"); - break; - case StatusUpToDate: - statusString = QLatin1String("OK"); - break; - case StatusError: - statusString = QLatin1String("ERROR"); - break; - } - if (canBeShared && _shared) { - statusString += QLatin1String("+SWM"); - } - - return statusString; -} -} diff --git a/src/libsync/syncfilestatus.h b/src/libsync/syncfilestatus.h deleted file mode 100644 index f778c89e8..000000000 --- a/src/libsync/syncfilestatus.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) by Klaas Freitag - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#ifndef SYNCFILESTATUS_H -#define SYNCFILESTATUS_H - -#include -#include -#include - -#include "owncloudlib.h" - -namespace OCC { - -/** - * @brief The SyncFileStatus class - * @ingroup libsync - */ -class OWNCLOUDSYNC_EXPORT SyncFileStatus -{ -public: - enum SyncFileStatusTag { - StatusNone, - StatusSync, - StatusWarning, - StatusUpToDate, - StatusError, - }; - - SyncFileStatus(); - SyncFileStatus(SyncFileStatusTag); - - void set(SyncFileStatusTag tag); - SyncFileStatusTag tag() const; - - void setShared(bool isShared); - bool shared() const; - - QString toSocketAPIString() const; - -private: - SyncFileStatusTag _tag = StatusNone; - bool _shared = false; -}; - -inline bool operator==(const SyncFileStatus &a, const SyncFileStatus &b) -{ - return a.tag() == b.tag() && a.shared() == b.shared(); -} - -inline bool operator!=(const SyncFileStatus &a, const SyncFileStatus &b) -{ - return !(a == b); -} -} - -Q_DECLARE_METATYPE(OCC::SyncFileStatus) - -#endif // SYNCFILESTATUS_H diff --git a/src/libsync/syncfilestatustracker.h b/src/libsync/syncfilestatustracker.h index 4a6b89f0d..362c4143c 100644 --- a/src/libsync/syncfilestatustracker.h +++ b/src/libsync/syncfilestatustracker.h @@ -18,7 +18,7 @@ // #include "ownsql.h" #include "syncfileitem.h" -#include "syncfilestatus.h" +#include "common/syncfilestatus.h" #include #include