Skip to content

Commit

Permalink
Add option to disable virtual files syncing on Windows.
Browse files Browse the repository at this point in the history
Signed-off-by: Camila Ayres <[email protected]>
  • Loading branch information
camilasan committed Feb 26, 2025
1 parent 02f183d commit d6ec8e4
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 5 deletions.
1 change: 1 addition & 0 deletions NEXTCLOUD.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ option( BUILD_UPDATER "Build updater" ON )
option( WITH_PROVIDERS "Build with providers list" ON )

option( ENFORCE_VIRTUAL_FILES_SYNC_FOLDER "Enforce use of virtual files sync folder when available" OFF )
option( DISABLE_VIRTUAL_FILES_SYNC_FOLDER "Disable use of virtual files sync folder even when available" OFF )

option(ENFORCE_SINGLE_ACCOUNT "Enforce use of a single account in desktop client" OFF)

Expand Down
1 change: 1 addition & 0 deletions config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#define APPLICATION_DOTVIRTUALFILE_SUFFIX "." APPLICATION_VIRTUALFILE_SUFFIX
#define APPLICATION_URI_HANDLER_SCHEME "@APPLICATION_URI_HANDLER_SCHEME@"
#cmakedefine01 ENFORCE_VIRTUAL_FILES_SYNC_FOLDER
#cmakedefine01 DISABLE_VIRTUAL_FILES_SYNC_FOLDER
#cmakedefine DO_NOT_USE_PROXY "@DO_NOT_USE_PROXY@"
#cmakedefine ENFORCE_SINGLE_ACCOUNT "@ENFORCE_SINGLE_ACCOUNT@"
#cmakedefine01 APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG
Expand Down
4 changes: 2 additions & 2 deletions src/gui/accountsettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -726,8 +726,8 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
}

if (const auto mode = bestAvailableVfsMode();
Theme::instance()->showVirtualFilesOption()
&& !folder->virtualFilesEnabled() && Vfs::checkAvailability(folder->path(), mode)) {
!Theme::instance()->disableVirtualFilesSyncFolder() &&
Theme::instance()->showVirtualFilesOption() && !folder->virtualFilesEnabled() && Vfs::checkAvailability(folder->path(), mode)) {
if (mode == Vfs::WindowsCfApi || ConfigFile().showExperimentalOptions()) {
ac = menu->addAction(tr("Enable virtual file support %1 …").arg(mode == Vfs::WindowsCfApi ? QString() : tr("(experimental)")));
// TODO: remove when UX decision is made
Expand Down
3 changes: 2 additions & 1 deletion src/gui/folderman.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -991,7 +991,8 @@ bool FolderMan::pushNotificationsFilesReady(Account *account)
bool FolderMan::isSwitchToVfsNeeded(const FolderDefinition &folderDefinition) const
{
auto result = false;
if (ENFORCE_VIRTUAL_FILES_SYNC_FOLDER &&
if (!DISABLE_VIRTUAL_FILES_SYNC_FOLDER &&
ENFORCE_VIRTUAL_FILES_SYNC_FOLDER &&
folderDefinition.virtualFilesMode != bestAvailableVfsMode() &&
folderDefinition.virtualFilesMode == Vfs::Off &&
OCC::Theme::instance()->showVirtualFilesOption()) {
Expand Down
2 changes: 1 addition & 1 deletion src/gui/folderwizard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ FolderWizardSelectiveSync::FolderWizardSelectiveSync(const AccountPtr &account)
_selectiveSync = new SelectiveSyncWidget(account, this);
layout->addWidget(_selectiveSync);

if (Theme::instance()->showVirtualFilesOption() && bestAvailableVfsMode() != Vfs::Off) {
if (!Theme::instance()->disableVirtualFilesSyncFolder() && Theme::instance()->showVirtualFilesOption() && bestAvailableVfsMode() != Vfs::Off) {
_virtualFilesCheckBox = new QCheckBox(tr("Use virtual files instead of downloading content immediately %1").arg(bestAvailableVfsMode() == Vfs::WindowsCfApi ? QString() : tr("(experimental)")));
connect(_virtualFilesCheckBox, &QCheckBox::clicked, this, &FolderWizardSelectiveSync::virtualFilesCheckboxClicked);
connect(_virtualFilesCheckBox, &QCheckBox::checkStateChanged, this, [this](int state) {
Expand Down
2 changes: 1 addition & 1 deletion src/gui/wizard/owncloudadvancedsetuppage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ void OwncloudAdvancedSetupPage::initializePage()
{
WizardCommon::initErrorLabel(_ui.errorLabel);

if (!Theme::instance()->showVirtualFilesOption()
if (Theme::instance()->disableVirtualFilesSyncFolder() || !Theme::instance()->showVirtualFilesOption()
#ifndef BUILD_FILE_PROVIDER_MODULE
|| bestAvailableVfsMode() == Vfs::Off
#endif
Expand Down
5 changes: 5 additions & 0 deletions src/libsync/theme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -960,6 +960,11 @@ bool Theme::enforceVirtualFilesSyncFolder() const
return ENFORCE_VIRTUAL_FILES_SYNC_FOLDER && vfsMode != OCC::Vfs::Off;
}

bool Theme::disableVirtualFilesSyncFolder() const
{
return DISABLE_VIRTUAL_FILES_SYNC_FOLDER;
}

QColor Theme::defaultColor()
{
return QColor{NEXTCLOUD_BACKGROUND_COLOR};
Expand Down
1 change: 1 addition & 0 deletions src/libsync/theme.h
Original file line number Diff line number Diff line change
Expand Up @@ -596,6 +596,7 @@ class OWNCLOUDSYNC_EXPORT Theme : public QObject
[[nodiscard]] bool showVirtualFilesOption() const;

[[nodiscard]] bool enforceVirtualFilesSyncFolder() const;
[[nodiscard]] bool disableVirtualFilesSyncFolder() const;

static QColor defaultColor();

Expand Down

0 comments on commit d6ec8e4

Please sign in to comment.