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
path: root/src/gui
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
parent1b87c9eabc81570fbc41ede6a8b8c930243db9d9 (diff)
FolderWizard use vfs with spaces
Fixes: #9649
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/accountsettings.cpp2
-rw-r--r--src/gui/folderwizard/folderwizard.cpp37
-rw-r--r--src/gui/folderwizard/folderwizard.h15
-rw-r--r--src/gui/owncloudgui.cpp3
-rw-r--r--src/gui/owncloudgui.h4
-rw-r--r--src/gui/proxyauthhandler.cpp5
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>