From: alex-z Date: Mon, 13 Dec 2021 15:07:29 +0000 (+0200) Subject: Enforce VFS. Disable 'Make always available locally'. X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~17^2~243^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1244e96681c4d353ac3df8f5d66f58363139fbbd;p=nextcloud-desktop.git Enforce VFS. Disable 'Make always available locally'. Signed-off-by: alex-z --- diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index a0ef19f1c..05e48d0c5 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -587,6 +587,7 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos) ac = availabilityMenu->addAction(Utility::vfsPinActionText()); connect(ac, &QAction::triggered, this, [this]() { slotSetCurrentFolderAvailability(PinState::AlwaysLocal); }); + ac->setDisabled(Theme::instance()->enforceVirtualFilesSyncFolder()); ac = availabilityMenu->addAction(Utility::vfsFreeSpaceActionText()); connect(ac, &QAction::triggered, this, [this]() { slotSetCurrentFolderAvailability(PinState::OnlineOnly); }); diff --git a/src/gui/socketapi/socketapi.cpp b/src/gui/socketapi/socketapi.cpp index 9be00d22f..6eaa3a6b5 100644 --- a/src/gui/socketapi/socketapi.cpp +++ b/src/gui/socketapi/socketapi.cpp @@ -1225,9 +1225,11 @@ void SocketApi::command_GET_MENU_ITEMS(const QString &argument, OCC::SocketListe auto makePinContextMenu = [&](bool makeAvailableLocally, bool freeSpace) { listener->sendMessage(QLatin1String("MENU_ITEM:CURRENT_PIN:d:") + Utility::vfsCurrentAvailabilityText(*combined)); - listener->sendMessage(QLatin1String("MENU_ITEM:MAKE_AVAILABLE_LOCALLY:") - + (makeAvailableLocally ? QLatin1String(":") : QLatin1String("d:")) - + Utility::vfsPinActionText()); + if (!Theme::instance()->enforceVirtualFilesSyncFolder()) { + listener->sendMessage(QLatin1String("MENU_ITEM:MAKE_AVAILABLE_LOCALLY:") + + (makeAvailableLocally ? QLatin1String(":") : QLatin1String("d:")) + Utility::vfsPinActionText()); + } + listener->sendMessage(QLatin1String("MENU_ITEM:MAKE_ONLINE_ONLY:") + (freeSpace ? QLatin1String(":") : QLatin1String("d:")) + Utility::vfsFreeSpaceActionText()); diff --git a/src/libsync/vfs/cfapi/cfapiwrapper.cpp b/src/libsync/vfs/cfapi/cfapiwrapper.cpp index 16b9d8f7e..398fe1bd1 100644 --- a/src/libsync/vfs/cfapi/cfapiwrapper.cpp +++ b/src/libsync/vfs/cfapi/cfapiwrapper.cpp @@ -17,6 +17,7 @@ #include "common/utility.h" #include "common/filesystembase.h" #include "hydrationjob.h" +#include "theme.h" #include "vfs_cfapi.h" #include @@ -40,6 +41,9 @@ Q_LOGGING_CATEGORY(lcCfApiWrapper, "nextcloud.sync.vfs.cfapi.wrapper", QtInfoMsg FIELD_SIZE( CF_OPERATION_PARAMETERS, field ) ) namespace { +constexpr auto syncRootFlagsFull = 34; +constexpr auto syncRootFlagsNoCfApiContextMenu = 2; + void cfApiSendTransferInfo(const CF_CONNECTION_KEY &connectionKey, const CF_TRANSFER_KEY &transferKey, NTSTATUS status, void *buffer, qint64 offset, qint64 currentBlockLength, qint64 totalLength) { @@ -428,8 +432,10 @@ bool createSyncRootRegistryKeys(const QString &providerName, const QString &fold QVariant value; }; + const auto flags = OCC::Theme::instance()->enforceVirtualFilesSyncFolder() ? syncRootFlagsNoCfApiContextMenu : syncRootFlagsFull; + const QVector registryKeysToSet = { - { providerSyncRootIdRegistryKey, QStringLiteral("Flags"), REG_DWORD, 34 }, + { providerSyncRootIdRegistryKey, QStringLiteral("Flags"), REG_DWORD, flags }, { providerSyncRootIdRegistryKey, QStringLiteral("DisplayNameResource"), REG_EXPAND_SZ, displayName }, { providerSyncRootIdRegistryKey, QStringLiteral("IconResource"), REG_EXPAND_SZ, QString(QDir::toNativeSeparators(qApp->applicationFilePath()) + QStringLiteral(",0")) }, { providerSyncRootIdUserSyncRootsRegistryKey, windowsSid, REG_SZ, syncRootPath }