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-09-08 14:44:09 +0300
committerHannah von Reth <vonreth@kde.org>2020-09-09 18:52:42 +0300
commitdfa383eff8a434ef1041200927cd100dea60d2c1 (patch)
treee8397cfb4422651dadda1da19d98bb07a32a6b80 /src
parented315e55368b18cdd10a26be334ae87c4045cc8a (diff)
Fix back button on the advanced setup page
Fixes: #8051
Diffstat (limited to 'src')
-rw-r--r--src/gui/wizard/owncloudadvancedsetuppage.cpp12
-rw-r--r--src/gui/wizard/owncloudsetuppage.cpp4
-rw-r--r--src/gui/wizard/owncloudsetuppage.h1
-rw-r--r--src/gui/wizard/owncloudwizard.cpp24
-rw-r--r--src/gui/wizard/owncloudwizard.h7
5 files changed, 28 insertions, 20 deletions
diff --git a/src/gui/wizard/owncloudadvancedsetuppage.cpp b/src/gui/wizard/owncloudadvancedsetuppage.cpp
index fa096491f..a344df863 100644
--- a/src/gui/wizard/owncloudadvancedsetuppage.cpp
+++ b/src/gui/wizard/owncloudadvancedsetuppage.cpp
@@ -30,6 +30,7 @@
#include "selectivesyncdialog.h"
#include <folderman.h>
#include "creds/abstractcredentials.h"
+#include "creds/oauth.h"
#include "networkjobs.h"
#include "guiutility.h"
@@ -92,6 +93,17 @@ OwncloudAdvancedSetupPage::OwncloudAdvancedSetupPage()
setRadioChecked(_ui.rVirtualFileSync);
}
#endif
+
+ connect(this, &OwncloudAdvancedSetupPage::completeChanged, this, [this]{
+ if (wizard() && qobject_cast<OwncloudWizard*>(wizard())->authType() == OCC::DetermineAuthTypeJob::AuthType::OAuth) {
+ // For OAuth, disable the back button in the Page_AdvancedSetup because we don't want
+ // to re-open the browser.
+ // HACK: the wizard will reenable the buttons on completeChanged, so delay it
+ QTimer::singleShot(0, [this]{
+ wizard()->button(QWizard::BackButton)->setEnabled(false);
+ });
+ }
+ });
}
void OwncloudAdvancedSetupPage::setupCustomization()
diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp
index a97c16d06..a05508abe 100644
--- a/src/gui/wizard/owncloudsetuppage.cpp
+++ b/src/gui/wizard/owncloudsetuppage.cpp
@@ -42,7 +42,6 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent)
, _ocUser()
, _authTypeKnown(false)
, _checking(false)
- , _authType(DetermineAuthTypeJob::AuthType::Basic)
, _progressIndi(new QProgressIndicator(this))
{
_ui.setupUi(this);
@@ -179,7 +178,7 @@ void OwncloudSetupPage::initializePage()
int OwncloudSetupPage::nextId() const
{
- switch (_authType) {
+ switch (_ocWizard->authType()) {
case DetermineAuthTypeJob::AuthType::Basic:
return WizardCommon::Page_HttpCreds;
case DetermineAuthTypeJob::AuthType::OAuth:
@@ -226,7 +225,6 @@ bool OwncloudSetupPage::validatePage()
void OwncloudSetupPage::setAuthType(DetermineAuthTypeJob::AuthType type)
{
_authTypeKnown = true;
- _authType = type;
stopSpinner();
}
diff --git a/src/gui/wizard/owncloudsetuppage.h b/src/gui/wizard/owncloudsetuppage.h
index 483f2298d..485fc7fce 100644
--- a/src/gui/wizard/owncloudsetuppage.h
+++ b/src/gui/wizard/owncloudsetuppage.h
@@ -78,7 +78,6 @@ private:
bool _authTypeKnown;
bool _checking;
bool _multipleFoldersExist;
- DetermineAuthTypeJob::AuthType _authType;
QProgressIndicator *_progressIndi;
QButtonGroup *_selectiveSyncButtons;
diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp
index 76695105e..9d3458a17 100644
--- a/src/gui/wizard/owncloudwizard.cpp
+++ b/src/gui/wizard/owncloudwizard.cpp
@@ -48,11 +48,10 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
, _account(nullptr)
, _setupPage(new OwncloudSetupPage(this))
, _httpCredsPage(new OwncloudHttpCredsPage(this))
- , _browserCredsPage(new OwncloudOAuthCredsPage)
+ , _oauthCredsPage(new OwncloudOAuthCredsPage)
, _advancedSetupPage(new OwncloudAdvancedSetupPage)
, _resultPage(new OwncloudWizardResultPage)
, _credentialsPage(nullptr)
- , _setupLog()
{
setObjectName("owncloudWizard");
auto size = ocApp()->gui()->settingsDialog()->minimumSizeHint();
@@ -61,7 +60,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setPage(WizardCommon::Page_ServerSetup, _setupPage);
setPage(WizardCommon::Page_HttpCreds, _httpCredsPage);
- setPage(WizardCommon::Page_OAuthCreds, _browserCredsPage);
+ setPage(WizardCommon::Page_OAuthCreds, _oauthCredsPage);
setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage);
setPage(WizardCommon::Page_Result, _resultPage);
@@ -74,7 +73,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
connect(this, &QWizard::currentIdChanged, this, &OwncloudWizard::slotCurrentPageChanged);
connect(_setupPage, &OwncloudSetupPage::determineAuthType, this, &OwncloudWizard::determineAuthType);
connect(_httpCredsPage, &OwncloudHttpCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
- connect(_browserCredsPage, &OwncloudOAuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
+ connect(_oauthCredsPage, &OwncloudOAuthCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl);
connect(_advancedSetupPage, &OwncloudAdvancedSetupPage::createLocalAndRemoteFolders,
this, &OwncloudWizard::createLocalAndRemoteFolders);
@@ -154,7 +153,7 @@ void OwncloudWizard::successfulStep()
break;
case WizardCommon::Page_OAuthCreds:
- _browserCredsPage->setConnected();
+ _oauthCredsPage->setConnected();
break;
case WizardCommon::Page_AdvancedSetup:
@@ -171,11 +170,17 @@ void OwncloudWizard::successfulStep()
next();
}
+DetermineAuthTypeJob::AuthType OwncloudWizard::authType() const
+{
+ return _authType;
+}
+
void OwncloudWizard::setAuthType(DetermineAuthTypeJob::AuthType type)
{
+ _authType = type;
_setupPage->setAuthType(type);
if (type == DetermineAuthTypeJob::AuthType::OAuth) {
- _credentialsPage = _browserCredsPage;
+ _credentialsPage = _oauthCredsPage;
} else { // try Basic auth even for "Unknown"
_credentialsPage = _httpCredsPage;
}
@@ -198,12 +203,6 @@ void OwncloudWizard::slotCurrentPageChanged(int id)
// Immediately close on show, we currently don't want this page anymore
done(Accepted);
}
-
- if (id == WizardCommon::Page_AdvancedSetup && _credentialsPage == _browserCredsPage) {
- // For OAuth, disable the back button in the Page_AdvancedSetup because we don't want
- // to re-open the browser.
- button(QWizard::BackButton)->setEnabled(false);
- }
}
void OwncloudWizard::displayError(const QString &msg, bool retryHTTPonly)
@@ -225,7 +224,6 @@ void OwncloudWizard::displayError(const QString &msg, bool retryHTTPonly)
void OwncloudWizard::appendToConfigurationLog(const QString &msg, LogType /*type*/)
{
- _setupLog << msg;
qCDebug(lcWizard) << "Setup-Log: " << msg;
}
diff --git a/src/gui/wizard/owncloudwizard.h b/src/gui/wizard/owncloudwizard.h
index 72a69f676..bad9a75ca 100644
--- a/src/gui/wizard/owncloudwizard.h
+++ b/src/gui/wizard/owncloudwizard.h
@@ -83,6 +83,8 @@ public:
QSslKey _clientSslKey; // key extracted from pkcs12
QSslCertificate _clientSslCertificate; // cert extracted from pkcs12
+ DetermineAuthTypeJob::AuthType authType() const;
+
public slots:
void setAuthType(DetermineAuthTypeJob::AuthType type);
void setRemoteFolder(const QString &);
@@ -103,12 +105,11 @@ private:
AccountPtr _account;
OwncloudSetupPage *_setupPage;
OwncloudHttpCredsPage *_httpCredsPage;
- OwncloudOAuthCredsPage *_browserCredsPage;
+ OwncloudOAuthCredsPage *_oauthCredsPage;
OwncloudAdvancedSetupPage *_advancedSetupPage;
OwncloudWizardResultPage *_resultPage;
AbstractCredentialsWizardPage *_credentialsPage;
-
- QStringList _setupLog;
+ DetermineAuthTypeJob::AuthType _authType;
friend class OwncloudSetupWizard;
};