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
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2020-08-19 18:37:06 +0300
committerHannah von Reth <vonreth@kde.org>2020-08-20 13:06:55 +0300
commitfecaad6739ae5a12d7a5ec012d3c152888959e84 (patch)
tree9ef91376bdea4f2007438f8f9c59d3730ccf2371 /src
parent0d698007199f51175d480944805e09b41acd3da1 (diff)
Move the management of the account wizard to ownCloudGui
Diffstat (limited to 'src')
-rw-r--r--src/gui/accountsettings.cpp2
-rw-r--r--src/gui/application.cpp2
-rw-r--r--src/gui/owncloudgui.cpp40
-rw-r--r--src/gui/owncloudgui.h5
-rw-r--r--src/gui/owncloudsetupwizard.cpp25
-rw-r--r--src/gui/owncloudsetupwizard.h5
6 files changed, 27 insertions, 52 deletions
diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp
index ee608bcc0..69d01b9bf 100644
--- a/src/gui/accountsettings.cpp
+++ b/src/gui/accountsettings.cpp
@@ -227,7 +227,7 @@ QString AccountSettings::selectedFolderAlias() const
void AccountSettings::slotOpenAccountWizard()
{
- OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), this);
+ ocApp()->gui()->runNewAccountWizard();
}
void AccountSettings::slotToggleSignInState()
diff --git a/src/gui/application.cpp b/src/gui/application.cpp
index 3353839b9..f51efdb54 100644
--- a/src/gui/application.cpp
+++ b/src/gui/application.cpp
@@ -393,7 +393,7 @@ void Application::slotAccountStateRemoved(AccountState *accountState)
if (_gui && AccountManager::instance()->accounts().isEmpty()) {
// allow to add a new account if there is non any more. Always think
// about single account theming!
- OwncloudSetupWizard::runWizard(this, SLOT(slotownCloudWizardDone(int)), _gui->settingsDialog());
+ gui()->runNewAccountWizard();
}
}
diff --git a/src/gui/owncloudgui.cpp b/src/gui/owncloudgui.cpp
index 360731e35..0ec545139 100644
--- a/src/gui/owncloudgui.cpp
+++ b/src/gui/owncloudgui.cpp
@@ -108,7 +108,7 @@ void ownCloudGui::slotOpenSettingsDialog()
}
} else {
qCInfo(lcApplication) << "No configured folders yet, starting setup wizard";
- slotNewAccountWizard();
+ runNewAccountWizard();
}
}
@@ -124,26 +124,16 @@ void ownCloudGui::slotTrayClicked(QSystemTrayIcon::ActivationReason reason)
// Left click
if (reason == QSystemTrayIcon::Trigger) {
- if (OwncloudSetupWizard::bringWizardToFrontIfVisible()) {
- // brought wizard to front
- } else if (_shareDialogs.size() > 0) {
- // Share dialog(s) be hidden by other apps, bring them back
- Q_FOREACH (const QPointer<ShareDialog> &shareDialog, _shareDialogs) {
- Q_ASSERT(shareDialog.data());
- raiseDialog(shareDialog);
- }
- } else {
#ifdef Q_OS_MAC
- // on macOS, a left click always opens menu.
- // However if the settings dialog is already visible but hidden
- // by other applications, this will bring it to the front.
- if (_settingsDialog->isVisible()) {
- raiseDialog(_settingsDialog);
- }
+ // on macOS, a left click always opens menu.
+ // However if the settings dialog is already visible but hidden
+ // by other applications, this will bring it to the front.
+ if (_settingsDialog->isVisible()) {
+ raiseDialog(_settingsDialog);
+ }
#else
- slotOpenSettingsDialog();
+ slotOpenSettingsDialog();
#endif
- }
}
// FIXME: Also make sure that any auto updater dialogue https://github.com/owncloud/client/issues/5613
// or SSL error dialog also comes to front.
@@ -795,7 +785,7 @@ void ownCloudGui::setupActions()
QObject::connect(_actionRecent, &QAction::triggered, this, &ownCloudGui::slotShowSyncProtocol);
QObject::connect(_actionSettings, &QAction::triggered, this, &ownCloudGui::slotShowSettings);
- QObject::connect(_actionNewAccountWizard, &QAction::triggered, this, &ownCloudGui::slotNewAccountWizard);
+ QObject::connect(_actionNewAccountWizard, &QAction::triggered, this, &ownCloudGui::runNewAccountWizard);
_actionHelp = new QAction(tr("Help"), this);
QObject::connect(_actionHelp, &QAction::triggered, this, &ownCloudGui::slotHelp);
_actionAbout = new QAction(tr("About %1").arg(Theme::instance()->appNameGUI()), this);
@@ -966,9 +956,17 @@ void ownCloudGui::slotPauseAllFolders()
setPauseOnAllFoldersHelper(true);
}
-void ownCloudGui::slotNewAccountWizard()
+void ownCloudGui::runNewAccountWizard()
{
- OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)), _settingsDialog);
+ if (!_wizard) {
+ _wizard = new OwncloudSetupWizard(settingsDialog());
+ connect(_wizard, &OwncloudSetupWizard::ownCloudWizardDone, _wizard, &OwncloudSetupWizard::deleteLater);
+ connect(_wizard, &OwncloudSetupWizard::ownCloudWizardDone, ocApp(), &Application::slotownCloudWizardDone);
+ FolderMan::instance()->setSyncEnabled(false);
+ _wizard->startWizard();
+ } else {
+ raiseDialog(settingsDialog());
+ }
}
void ownCloudGui::setPauseOnAllFoldersHelper(bool pause)
diff --git a/src/gui/owncloudgui.h b/src/gui/owncloudgui.h
index 947c3a542..af4ff2c3c 100644
--- a/src/gui/owncloudgui.h
+++ b/src/gui/owncloudgui.h
@@ -35,6 +35,7 @@ class ShareDialog;
class Application;
class LogBrowser;
class AccountState;
+class OwncloudSetupWizard;
enum class ShareDialogStartPage {
UsersAndGroups,
@@ -64,6 +65,8 @@ public:
SettingsDialog *settingsDialog() const;
+ void runNewAccountWizard();
+
signals:
void setupProxy();
@@ -111,7 +114,6 @@ private slots:
void slotLogout();
void slotUnpauseAllFolders();
void slotPauseAllFolders();
- void slotNewAccountWizard();
private:
void setPauseOnAllFoldersHelper(bool pause);
@@ -157,6 +159,7 @@ private:
QList<QAction *> _recentItemsActions;
Application *_app;
+ QPointer<OwncloudSetupWizard> _wizard;
};
} // namespace OCC
diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp
index 908d9813c..65b51f60f 100644
--- a/src/gui/owncloudsetupwizard.cpp
+++ b/src/gui/owncloudsetupwizard.cpp
@@ -63,31 +63,6 @@ OwncloudSetupWizard::~OwncloudSetupWizard()
_ocWizard->deleteLater();
}
-static QPointer<OwncloudSetupWizard> wiz = nullptr;
-
-void OwncloudSetupWizard::runWizard(QObject *obj, const char *amember, QWidget *parent)
-{
- if (!wiz.isNull()) {
- bringWizardToFrontIfVisible();
- return;
- }
-
- wiz = new OwncloudSetupWizard(parent);
- connect(wiz, SIGNAL(ownCloudWizardDone(int)), obj, amember);
- FolderMan::instance()->setSyncEnabled(false);
- wiz->startWizard();
-}
-
-bool OwncloudSetupWizard::bringWizardToFrontIfVisible()
-{
- if (wiz.isNull()) {
- return false;
- }
-
- ownCloudGui::raiseDialog(wiz->_ocWizard);
- return true;
-}
-
void OwncloudSetupWizard::startWizard()
{
AccountPtr account = AccountManager::createAccount();
diff --git a/src/gui/owncloudsetupwizard.h b/src/gui/owncloudsetupwizard.h
index e4421c871..a78907ede 100644
--- a/src/gui/owncloudsetupwizard.h
+++ b/src/gui/owncloudsetupwizard.h
@@ -41,9 +41,6 @@ class OwncloudSetupWizard : public QObject
{
Q_OBJECT
public:
- /** Run the wizard */
- static void runWizard(QObject *obj, const char *amember, QWidget *parent);
- static bool bringWizardToFrontIfVisible();
signals:
// overall dialog close signal.
void ownCloudWizardDone(int);
@@ -82,6 +79,8 @@ private:
OwncloudWizard *_ocWizard;
QString _initLocalFolder;
QString _remoteFolder;
+
+ friend class ownCloudGui;
};
}