From c84ad025b3eb55568f32e1aeb2387f3deac3fca5 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 15 Nov 2018 09:01:46 +0100 Subject: [PATCH] vfs: Improve modeFromString() signature --- src/common/vfs.cpp | 13 +++++-------- src/common/vfs.h | 3 ++- src/gui/folder.cpp | 4 +++- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/common/vfs.cpp b/src/common/vfs.cpp index 7cfb895e16..896b31db02 100644 --- a/src/common/vfs.cpp +++ b/src/common/vfs.cpp @@ -42,20 +42,17 @@ QString Vfs::modeToString(Mode mode) return QStringLiteral("off"); } -bool Vfs::modeFromString(const QString &str, Mode *mode) +Optional 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) diff --git a/src/common/vfs.h b/src/common/vfs.h index 372395dbc6..7d68854d8f 100644 --- a/src/common/vfs.h +++ b/src/common/vfs.h @@ -18,6 +18,7 @@ #include #include "ocsynclib.h" +#include "result.h" typedef struct csync_file_stat_s csync_file_stat_t; @@ -80,7 +81,7 @@ public: WindowsCfApi, }; static QString modeToString(Mode mode); - static bool modeFromString(const QString &str, Mode *mode); + static Optional modeFromString(const QString &str); public: Vfs(QObject* parent = nullptr); diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index d485af0474..b8bf7e519a 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -1237,7 +1237,9 @@ bool FolderDefinition::load(QSettings &settings, const QString &alias, 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()) {