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 @@
-
+
+
+
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