Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-05-19 15:35:07 +0300
committerHannah von Reth <vonreth@kde.org>2022-05-19 19:00:51 +0300
commitac75156cfe6f1e09c24988ef286240131d83a32d (patch)
tree22e3fe749ab1994307f7af2711f2aff3db48885d /src/gui/folderwizard
parent1b87c9eabc81570fbc41ede6a8b8c930243db9d9 (diff)
FolderWizard use vfs with spaces
Fixes: #9649
Diffstat (limited to 'src/gui/folderwizard')
-rw-r--r--src/gui/folderwizard/folderwizard.cpp37
-rw-r--r--src/gui/folderwizard/folderwizard.h15
2 files changed, 39 insertions, 13 deletions
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;