diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2020-08-19 18:37:06 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2020-08-20 13:06:55 +0300 |
commit | fecaad6739ae5a12d7a5ec012d3c152888959e84 (patch) | |
tree | 9ef91376bdea4f2007438f8f9c59d3730ccf2371 /src | |
parent | 0d698007199f51175d480944805e09b41acd3da1 (diff) |
Move the management of the account wizard to ownCloudGui
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/accountsettings.cpp | 2 | ||||
-rw-r--r-- | src/gui/application.cpp | 2 | ||||
-rw-r--r-- | src/gui/owncloudgui.cpp | 40 | ||||
-rw-r--r-- | src/gui/owncloudgui.h | 5 | ||||
-rw-r--r-- | src/gui/owncloudsetupwizard.cpp | 25 | ||||
-rw-r--r-- | src/gui/owncloudsetupwizard.h | 5 |
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; }; } |