From 156605c2fa897e82595aa30473dff43c5ebb4805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 21 Jun 2018 16:15:30 +0200 Subject: [PATCH] Use proper URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/gui/wizard/owncloudsetupnocredspage.ui | 463 ++++++++++++++++----- src/gui/wizard/owncloudsetuppage.cpp | 52 ++- src/gui/wizard/owncloudsetuppage.h | 6 + src/gui/wizard/owncloudwizard.cpp | 10 + src/gui/wizard/owncloudwizard.h | 4 + src/gui/wizard/webviewpage.cpp | 9 +- theme.qrc | 4 + 7 files changed, 430 insertions(+), 118 deletions(-) diff --git a/src/gui/wizard/owncloudsetupnocredspage.ui b/src/gui/wizard/owncloudsetupnocredspage.ui index d5d3d00434..6cf53184eb 100644 --- a/src/gui/wizard/owncloudsetupnocredspage.ui +++ b/src/gui/wizard/owncloudsetupnocredspage.ui @@ -6,8 +6,8 @@ 0 0 - 506 - 515 + 802 + 629 @@ -19,9 +19,21 @@ Form + + false + + + background-color:#faf; + - + + + + 0 + 0 + + TextLabel @@ -30,16 +42,16 @@ - - + + + + 0 + - + Qt::Horizontal - - QSizePolicy::Minimum - 40 @@ -49,83 +61,31 @@ - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 20 - 13 - - - - - - - - - - Ser&ver Address - - - leUrl - - - - - - - - 0 - 0 - - - - https://... - - - - - - - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 20 - 18 - - - - - + + + + 0 + 0 + + + + + true + + + + Host your own server + + + true + + - + Qt::Horizontal - - QSizePolicy::Minimum - 40 @@ -136,26 +96,7 @@ - - - - - 0 - 0 - - - - Error Label - - - Qt::RichText - - - true - - - - + @@ -177,8 +118,113 @@ - - + + + + 6 + + + 20 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 150 + 0 + + + + false + + + Register with a provider + + + false + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Log in + + + false + + + true + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 0 + 100 + + + + + + + :/client/theme/colored/wizard-files.svg + + + false + + + Qt::AlignCenter + + + + + Qt::Vertical @@ -188,25 +234,212 @@ 20 - 200 + 20 - - - - 0 + + + + + 12 + 75 + true + - - - - - Create a new account + SlideshowLabel + + + Qt::AlignCenter + + + + + 0 + 0 + + + + + 0 + 80 + + + + + + + + + + QLayout::SetDefaultConstraint + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 0 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 0 + + + + + + + + + + + 0 + 0 + + + + Ser&ver Address + + + leUrl + + + + + + + + 0 + 0 + + + + https://... + + + + + + + 0 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + 0 + 0 + + + + Error Label + + + Qt::RichText + + + true + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 0 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 0 + + + + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 20 + + + + @@ -216,6 +449,8 @@
wizard/postfixlineedit.h
- + + + diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp index 0c498e78fc..a4bfb316f5 100644 --- a/src/gui/wizard/owncloudsetuppage.cpp +++ b/src/gui/wizard/owncloudsetuppage.cpp @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include #include "QProgressIndicator.h" @@ -68,13 +71,43 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent) slotUrlChanged(QLatin1String("")); // don't jitter UI connect(_ui.leUrl, &QLineEdit::textChanged, this, &OwncloudSetupPage::slotUrlChanged); connect(_ui.leUrl, &QLineEdit::editingFinished, this, &OwncloudSetupPage::slotUrlEditFinished); + connect(_ui.loginButton, &QPushButton::clicked, this, &OwncloudSetupPage::slotLogin); connect(_ui.createAccountButton, &QPushButton::clicked, this, &OwncloudSetupPage::slotGotoProviderList); addCertDial = new AddCertificateDialog(this); + + _ui.login->hide(); + _slideshow.append(qMakePair(QString("nextcloud"), tr("Keep your data secure and under your control"))); + _slideshow.append(qMakePair(QString("files"), tr("Secure collaboration & file exchange"))); + _slideshow.append(qMakePair(QString("groupware"), tr("Easy-to-use web mail, calendaring & contacts"))); + _slideshow.append(qMakePair(QString("talk"), tr("Screensharing, online meetings & web conferences"))); + + _ui.slideLabel->setStyleSheet(QString("color:%1;").arg(theme->wizardHeaderBackgroundColor().name())); + _currentSlide = -1; + nextSlide(); + + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(nextSlide())); + timer->start(2500); + setStyleSheet(QString("background-color:%1; color:%2 QLabel { color:%2; } QSpacerItem { color: red; }").arg(theme->wizardHeaderBackgroundColor().name(), theme->wizardHeaderTitleColor().name())); } +void OwncloudSetupPage::nextSlide() +{ + if (_currentSlide < _slideshow.length()-1) { + _currentSlide++; + } else { + _currentSlide = 0; + } + QPixmap pixmap = QIcon(Theme::hidpiFileName(":/client/theme/colored/wizard-" + _slideshow.at(_currentSlide).first + ".svg")).pixmap(QSize(1024, 1024)); + _ui.slideImage->setPixmap(pixmap.scaled(QSize(_ui.slideImage->size().height(), _ui.slideImage->size().height()), Qt::KeepAspectRatio, Qt::SmoothTransformation)); + _ui.slideLabel->setText(_slideshow.at(_currentSlide).second); +} + + void OwncloudSetupPage::setServerUrl(const QString &newUrl) { + _ocWizard->setRegistration(false); _oCUrl = newUrl; if (_oCUrl.isEmpty()) { _ui.leUrl->clear(); @@ -100,10 +133,21 @@ void OwncloudSetupPage::setupCustomization() WizardCommon::setupCustomMedia(variant, _ui.bottomLabel); } +void OwncloudSetupPage::slotLogin() +{ + _ui.login->setMaximumHeight(0); + QPropertyAnimation *animation = new QPropertyAnimation(_ui.login, "maximumHeight"); + animation->setDuration(0); + animation->setStartValue(500); + animation->setEndValue(500); + _ui.login->show(); + wizard()->resize(wizard()->sizeHint()); + animation->start(); +} void OwncloudSetupPage::slotGotoProviderList() { - - setServerUrl("http://localhost:8113/"); + // todo set _ocWizard->registation so we have the url in webview.cpp + _ocWizard->setRegistration(true); _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow); _authTypeKnown = true; _checking = false; @@ -184,6 +228,7 @@ void OwncloudSetupPage::initializePage() validatePage(); setVisible(false); } + wizard()->resize(wizard()->sizeHint()); } bool OwncloudSetupPage::urlHasChanged() @@ -300,11 +345,13 @@ void OwncloudSetupPage::setErrorString(const QString &err, bool retryHTTPonly) _checking = false; emit completeChanged(); stopSpinner(); + wizard()->resize(wizard()->sizeHint()); } void OwncloudSetupPage::startSpinner() { _ui.resultLayout->setEnabled(true); + _ui.urlLabel->setVisible(false); _progressIndi->setVisible(true); _progressIndi->startAnimation(); } @@ -312,6 +359,7 @@ void OwncloudSetupPage::startSpinner() void OwncloudSetupPage::stopSpinner() { _ui.resultLayout->setEnabled(false); + _ui.urlLabel->setVisible(true); _progressIndi->setVisible(false); _progressIndi->stopAnimation(); } diff --git a/src/gui/wizard/owncloudsetuppage.h b/src/gui/wizard/owncloudsetuppage.h index e3291f07e5..b6c4b781c4 100644 --- a/src/gui/wizard/owncloudsetuppage.h +++ b/src/gui/wizard/owncloudsetuppage.h @@ -60,10 +60,12 @@ public slots: void startSpinner(); void stopSpinner(); void slotCertificateAccepted(); + void nextSlide(); protected slots: void slotUrlChanged(const QString &); void slotUrlEditFinished(); + void slotLogin(); void slotGotoProviderList(); void setupCustomization(); @@ -88,6 +90,10 @@ private: QString _remoteFolder; AddCertificateDialog *addCertDial; OwncloudWizard *_ocWizard; + + QList> _slideshow; + int _currentSlide; + }; } // namespace OCC diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp index f416fd666f..a9894b8987 100644 --- a/src/gui/wizard/owncloudwizard.cpp +++ b/src/gui/wizard/owncloudwizard.cpp @@ -53,6 +53,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent) , _credentialsPage(0) , _webViewPage(new WebViewPage(this)) , _setupLog() + , _registration(false) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); setPage(WizardCommon::Page_ServerSetup, _setupPage); @@ -128,6 +129,15 @@ QString OwncloudWizard::ocUrl() const return url; } +bool OwncloudWizard::registration() { + return _registration; +} + +void OwncloudWizard::setRegistration(bool registration) { + _registration = registration; +} + + void OwncloudWizard::enableFinishOnResultWidget(bool enable) { _resultPage->setComplete(enable); diff --git a/src/gui/wizard/owncloudwizard.h b/src/gui/wizard/owncloudwizard.h index 6994a99e30..c2ff9ad602 100644 --- a/src/gui/wizard/owncloudwizard.h +++ b/src/gui/wizard/owncloudwizard.h @@ -59,6 +59,8 @@ public: void setAccount(AccountPtr account); AccountPtr account() const; void setOCUrl(const QString &); + bool registration(); + void setRegistration(bool registration); void setupCustomMedia(QVariant, QLabel *); QString ocUrl() const; @@ -108,6 +110,8 @@ private: QStringList _setupLog; + bool _registration; + friend class OwncloudSetupWizard; }; diff --git a/src/gui/wizard/webviewpage.cpp b/src/gui/wizard/webviewpage.cpp index c29e11c904..3ce0c4cf9f 100644 --- a/src/gui/wizard/webviewpage.cpp +++ b/src/gui/wizard/webviewpage.cpp @@ -30,8 +30,13 @@ WebViewPage::WebViewPage(QWidget *parent) } void WebViewPage::initializePage() { - auto url = _ocWizard->ocUrl(); - url += "/index.php/login/flow"; + QString url; + if (_ocWizard->registration()) { + url = "https://nextcloud.com/register"; + } else { + url = _ocWizard->ocUrl(); + url += "/index.php/login/flow"; + } qCInfo(lcWizardWebiewPage()) << "Url to auth at: " << url; _webView->setUrl(QUrl(url)); } diff --git a/theme.qrc b/theme.qrc index 0df7a7fe34..630400835d 100644 --- a/theme.qrc +++ b/theme.qrc @@ -117,5 +117,9 @@ theme/white/state-warning-64.png theme/white/state-warning-128.png theme/white/state-warning-256.png + theme/colored/wizard-files.svg + theme/colored/wizard-groupware.svg + theme/colored/wizard-nextcloud.svg + theme/colored/wizard-talk.svg