diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-05-19 15:35:07 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-05-19 19:00:51 +0300 |
commit | ac75156cfe6f1e09c24988ef286240131d83a32d (patch) | |
tree | 22e3fe749ab1994307f7af2711f2aff3db48885d /src/gui | |
parent | 1b87c9eabc81570fbc41ede6a8b8c930243db9d9 (diff) |
FolderWizard use vfs with spaces
Fixes: #9649
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/accountsettings.cpp | 2 | ||||
-rw-r--r-- | src/gui/folderwizard/folderwizard.cpp | 37 | ||||
-rw-r--r-- | src/gui/folderwizard/folderwizard.h | 15 | ||||
-rw-r--r-- | src/gui/owncloudgui.cpp | 3 | ||||
-rw-r--r-- | src/gui/owncloudgui.h | 4 | ||||
-rw-r--r-- | src/gui/proxyauthhandler.cpp | 5 |
6 files changed, 48 insertions, 18 deletions
diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index 6eda498f8..030e410a4 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -429,7 +429,7 @@ void AccountSettings::slotFolderWizardAccepted() FolderWizard *folderWizard = qobject_cast<FolderWizard *>(sender()); qCInfo(lcAccountSettings) << "Folder wizard completed"; - bool useVfs = folderWizard->property("useVirtualFiles").toBool(); + const bool useVfs = folderWizard->useVirtualFiles(); auto folder = FolderMan::instance()->addFolderFromWizard(_accountState, folderWizard->field(QLatin1String("sourceFolder")).toString(), diff --git a/src/gui/folderwizard/folderwizard.cpp b/src/gui/folderwizard/folderwizard.cpp index e4a99d3a1..f2f8edf3b 100644 --- a/src/gui/folderwizard/folderwizard.cpp +++ b/src/gui/folderwizard/folderwizard.cpp @@ -23,7 +23,9 @@ #include "common/asserts.h" #include "configfile.h" #include "creds/abstractcredentials.h" +#include "gui/application.h" #include "gui/askexperimentalvirtualfilesfeaturemessagebox.h" +#include "gui/settingsdialog.h" #include "networkjobs.h" #include "theme.h" @@ -528,22 +530,15 @@ void FolderWizardSelectiveSync::initializePage() bool FolderWizardSelectiveSync::validatePage() { - const auto mode = bestAvailableVfsMode(); - const bool useVirtualFiles = (Theme::instance()->forceVirtualFilesOption() && mode == Vfs::WindowsCfApi) || (_virtualFilesCheckBox && _virtualFilesCheckBox->isChecked()); - if (useVirtualFiles) { - const auto availability = Vfs::checkAvailability(wizard()->field(QStringLiteral("sourceFolder")).toString(), mode); - if (!availability) { - auto msg = new QMessageBox(QMessageBox::Warning, tr("Virtual files are not available for the selected folder"), availability.error(), QMessageBox::Ok, this); - msg->setAttribute(Qt::WA_DeleteOnClose); - msg->open(); - return false; - } - } - wizard()->setProperty("selectiveSyncBlackList", useVirtualFiles ? QVariant() : QVariant(_selectiveSync->createBlackList())); - wizard()->setProperty("useVirtualFiles", QVariant(useVirtualFiles)); + wizard()->setProperty("selectiveSyncBlackList", useVirtualFiles() ? QVariant() : QVariant(_selectiveSync->createBlackList())); return true; } +bool FolderWizardSelectiveSync::useVirtualFiles() const +{ + return _virtualFilesCheckBox && _virtualFilesCheckBox->isChecked(); +} + void FolderWizardSelectiveSync::cleanupPage() { QString targetPath = wizard()->property("targetPath").toString(); @@ -653,6 +648,22 @@ QString FolderWizard::displayName() const return QString(); } +bool FolderWizard::useVirtualFiles() const +{ + const auto mode = bestAvailableVfsMode(); + const bool useVirtualFiles = (Theme::instance()->forceVirtualFilesOption() && mode == Vfs::WindowsCfApi) || (_folderWizardSelectiveSyncPage->useVirtualFiles()); + if (useVirtualFiles) { + const auto availability = Vfs::checkAvailability(destination(), mode); + if (!availability) { + auto msg = new QMessageBox(QMessageBox::Warning, tr("Virtual files are not available for the selected folder"), availability.error(), QMessageBox::Ok, ocApp()->gui()->settingsDialog()); + msg->setAttribute(Qt::WA_DeleteOnClose); + msg->open(); + return false; + } + } + return useVirtualFiles; +} + bool FolderWizard::eventFilter(QObject *watched, QEvent *event) { if (event->type() == QEvent::LayoutRequest) { diff --git a/src/gui/folderwizard/folderwizard.h b/src/gui/folderwizard/folderwizard.h index 378c8bfc6..c1847bf81 100644 --- a/src/gui/folderwizard/folderwizard.h +++ b/src/gui/folderwizard/folderwizard.h @@ -128,6 +128,7 @@ public: void initializePage() override; void cleanupPage() override; + bool useVirtualFiles() const; private slots: void virtualFilesCheckboxClicked(); @@ -155,12 +156,26 @@ public: explicit FolderWizard(AccountPtr account, QWidget *parent = nullptr, Qt::WindowFlags flags = {}); ~FolderWizard() override; + /*** + * The webdav url for the sync connection. + */ QUrl davUrl() const; + /*** + * The local folder used for the sync. + */ QString destination() const; + /*** + * The Space name to display in the list of folders or an empty string. + */ QString displayName() const; + /*** + * Wether to use virtual files. + */ + bool useVirtualFiles() const; + bool eventFilter(QObject *watched, QEvent *event) override; void resizeEvent(QResizeEvent *event) override; diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp index 0a9bc39fe..18469257d 100644 --- a/src/gui/owncloudgui.cpp +++ b/src/gui/owncloudgui.cpp @@ -1040,13 +1040,14 @@ void ownCloudGui::runNewAccountWizard() folderWizard->resize(ocApp()->gui()->settingsDialog()->sizeHintForChild()); folderWizard->setAttribute(Qt::WA_DeleteOnClose); + // TODO: duplication of AccountSettings // adapted from AccountSettings::slotFolderWizardAccepted() connect(folderWizard, &QDialog::accepted, [accountStatePtr, folderWizard]() { FolderMan *folderMan = FolderMan::instance(); qCInfo(lcApplication) << "Folder wizard completed"; - bool useVfs = folderWizard->property("useVirtualFiles").toBool(); + const bool useVfs = folderWizard->useVirtualFiles(); auto folder = folderMan->addFolderFromWizard(accountStatePtr, folderWizard->field(QLatin1String("sourceFolder")).toString(), diff --git a/src/gui/owncloudgui.h b/src/gui/owncloudgui.h index 339d96219..161e71810 100644 --- a/src/gui/owncloudgui.h +++ b/src/gui/owncloudgui.h @@ -17,7 +17,6 @@ #include "connectionvalidator.h" #include "progressdispatcher.h" -#include "setupwizardcontroller.h" #include "systray.h" #include <QObject> @@ -29,6 +28,9 @@ namespace OCC { +namespace Wizard { + class SetupWizardController; +} class Folder; class AboutDialog; diff --git a/src/gui/proxyauthhandler.cpp b/src/gui/proxyauthhandler.cpp index 812a362e0..021fd2e85 100644 --- a/src/gui/proxyauthhandler.cpp +++ b/src/gui/proxyauthhandler.cpp @@ -14,10 +14,11 @@ #include "proxyauthhandler.h" +#include "accessmanager.h" +#include "account.h" +#include "configfile.h" #include "proxyauthdialog.h" #include "theme.h" -#include "configfile.h" -#include "account.h" #include <QApplication> |