Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-04-26 11:12:08 +0300
committerHannah von Reth <vonreth@kde.org>2022-04-29 11:18:51 +0300
commit2aa0af7cea3efa5184c1969072559d3b0d647cc7 (patch)
treed8d049f8e2838e920ee12eea23bb4803af2b4684 /src/common
parent8f6ee672e17bd5a995ea6335704771ae4081df18 (diff)
Move VFS::Off to a plugin
Diffstat (limited to 'src/common')
-rw-r--r--src/common/vfs.cpp30
-rw-r--r--src/common/vfs.h37
2 files changed, 12 insertions, 55 deletions
diff --git a/src/common/vfs.cpp b/src/common/vfs.cpp
index 88f770e91..c7cff04f0 100644
--- a/src/common/vfs.cpp
+++ b/src/common/vfs.cpp
@@ -17,12 +17,11 @@
*/
#include "vfs.h"
+#include "common/filesystembase.h"
#include "common/version.h"
#include "plugin.h"
#include "syncjournaldb.h"
-#include "common/filesystembase.h"
-
#include <QDir>
#include <QPluginLoader>
#include <QLoggingCategory>
@@ -138,20 +137,18 @@ Vfs::AvailabilityResult Vfs::availabilityInDb(const QString &folderPath)
return AvailabilityError::NoSuchItem;
}
-VfsOff::VfsOff(QObject *parent)
- : Vfs(parent)
-{
-}
-
-VfsOff::~VfsOff() = default;
-
static QString modeToPluginName(Vfs::Mode mode)
{
- if (mode == Vfs::WithSuffix)
+ switch (mode) {
+ case Vfs::Off:
+ return QStringLiteral("off");
+ case Vfs::WithSuffix:
return QStringLiteral("suffix");
- if (mode == Vfs::WindowsCfApi)
+ case Vfs::WindowsCfApi:
return QStringLiteral("win");
- return QString();
+ default:
+ Q_UNREACHABLE();
+ }
}
Q_LOGGING_CATEGORY(lcPlugin, "plugins", QtInfoMsg)
@@ -159,8 +156,6 @@ Q_LOGGING_CATEGORY(lcPlugin, "plugins", QtInfoMsg)
bool OCC::isVfsPluginAvailable(Vfs::Mode mode)
{
// TODO: cache plugins available?
- if (mode == Vfs::Off)
- return true;
auto name = modeToPluginName(mode);
if (name.isEmpty())
return false;
@@ -203,15 +198,14 @@ Vfs::Mode OCC::bestAvailableVfsMode()
return Vfs::WindowsCfApi;
} else if (isVfsPluginAvailable(Vfs::WithSuffix)) {
return Vfs::WithSuffix;
+ } else if (isVfsPluginAvailable(Vfs::Off)) {
+ return Vfs::Off;
}
- return Vfs::Off;
+ Q_UNREACHABLE();
}
std::unique_ptr<Vfs> OCC::createVfsFromPlugin(Vfs::Mode mode)
{
- if (mode == Vfs::Off)
- return std::make_unique<VfsOff>();
-
auto name = modeToPluginName(mode);
if (name.isEmpty())
return nullptr;
diff --git a/src/common/vfs.h b/src/common/vfs.h
index f1b395dd1..56de12eff 100644
--- a/src/common/vfs.h
+++ b/src/common/vfs.h
@@ -281,43 +281,6 @@ protected:
friend class OwncloudPropagator;
};
-/// Implementation of Vfs for Vfs::Off mode - does nothing
-class OCSYNC_EXPORT VfsOff : public Vfs
-{
- Q_OBJECT
-
-public:
- VfsOff(QObject* parent = nullptr);
- ~VfsOff() override;
-
- Mode mode() const override { return Vfs::Off; }
-
- QString fileSuffix() const override { return QString(); }
-
- void stop() override {}
- void unregisterFolder() override {}
-
- bool socketApiPinStateActionsShown() const override { return false; }
- bool isHydrating() const override { return false; }
-
- Result<void, QString> createPlaceholder(const SyncFileItem &) override { return {}; }
-
- bool needsMetadataUpdate(const SyncFileItem &) override { return false; }
- bool isDehydratedPlaceholder(const QString &) override { return false; }
- bool statTypeVirtualFile(csync_file_stat_t *, void *) override { return false; }
-
- bool setPinState(const QString &, PinState) override { return true; }
- Optional<PinState> pinState(const QString &) override { return PinState::AlwaysLocal; }
- AvailabilityResult availability(const QString &) override { return VfsItemAvailability::AlwaysLocal; }
-
-public slots:
- void fileStatusChanged(const QString &, SyncFileStatus) override {}
-
-protected:
- Result<ConvertToPlaceholderResult, QString> updateMetadata(const SyncFileItem &, const QString &, const QString &) override { return { ConvertToPlaceholderResult::Ok }; }
- void startImpl(const VfsSetupParams &) override { Q_EMIT started(); }
-};
-
/// Check whether the plugin for the mode is available.
OCSYNC_EXPORT bool isVfsPluginAvailable(Vfs::Mode mode);