return QStringLiteral("off");
}
-bool Vfs::modeFromString(const QString &str, Mode *mode)
+Optional<Vfs::Mode> Vfs::modeFromString(const QString &str)
{
// Note: Strings are used for config and must be stable
- *mode = Off;
if (str == "off") {
- return true;
+ return Off;
} else if (str == "suffix") {
- *mode = WithSuffix;
- return true;
+ return WithSuffix;
} else if (str == "wincfapi") {
- *mode = WindowsCfApi;
- return true;
+ return WindowsCfApi;
}
- return false;
+ return {};
}
static QString modeToPluginName(Vfs::Mode mode)
#include <QSharedPointer>
#include "ocsynclib.h"
+#include "result.h"
typedef struct csync_file_stat_s csync_file_stat_t;
WindowsCfApi,
};
static QString modeToString(Mode mode);
- static bool modeFromString(const QString &str, Mode *mode);
+ static Optional<Mode> modeFromString(const QString &str);
public:
Vfs(QObject* parent = nullptr);
folder->virtualFilesMode = Vfs::Off;
QString vfsModeString = settings.value(QStringLiteral("virtualFilesMode")).toString();
if (!vfsModeString.isEmpty()) {
- if (!Vfs::modeFromString(vfsModeString, &folder->virtualFilesMode)) {
+ if (auto mode = Vfs::modeFromString(vfsModeString)) {
+ folder->virtualFilesMode = *mode;
+ } else {
qCWarning(lcFolder) << "Unknown virtualFilesMode:" << vfsModeString << "assuming 'off'";
}
} else if (settings.value(QLatin1String("usePlaceholders")).toBool()) {