diff --git a/src/gui/wizard/owncloudsetupnocredspage.ui b/src/gui/wizard/owncloudsetupnocredspage.ui index 10a44e49b6f13..2ed3ed11634b2 100644 --- a/src/gui/wizard/owncloudsetupnocredspage.ui +++ b/src/gui/wizard/owncloudsetupnocredspage.ui @@ -25,67 +25,24 @@ - - - - - - 0 - 0 - - - - TextLabel + + + + + Qt::Vertical - - Qt::RichText + + QSizePolicy::MinimumExpanding - - - - - - 0 + + + 20 + 20 + - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - <a href="https://docs.nextcloud.com/server/15/admin_manual/installation/index.html#installation"><span style=" text-decoration: underline; color:#0000ff;">Host your own server</span></a> - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + - + @@ -107,117 +64,66 @@ - - - - 6 - - - 20 - + + - - - Qt::Horizontal - - + + 40 - 20 + 0 - - - - - + - 150 - 0 + 40 + 16777215 - - false - - Register with a provider + - - false + + true - - - - 0 - 0 - + + + + 12 + 75 + true + + + + + - 150 + 40 0 - - Log in - - - false + + + 40 + 16777215 + - - true + + - false + true - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 20 - - - - - - - - - 12 - 75 - true - - - - - + @@ -385,8 +291,8 @@ - - + + Qt::Vertical @@ -401,6 +307,157 @@ + + + + 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 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + <a href="https://docs.nextcloud.com/server/15/admin_manual/installation/index.html#installation"><span style=" text-decoration: underline; color:#7a7a7a;">Host your own server</span></a> + + + true + + + Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 0 + 0 + + + + TextLabel + + + Qt::RichText + + + diff --git a/src/gui/wizard/owncloudsetuppage.cpp b/src/gui/wizard/owncloudsetuppage.cpp index 3a956b0d70566..fb2499c86b95f 100644 --- a/src/gui/wizard/owncloudsetuppage.cpp +++ b/src/gui/wizard/owncloudsetuppage.cpp @@ -84,7 +84,23 @@ OwncloudSetupPage::OwncloudSetupPage(QWidget *parent) _ui.slideShow->addSlide(Theme::hidpiFileName(":/client/theme/colored/wizard-files.png"), tr("Secure collaboration & file exchange")); _ui.slideShow->addSlide(Theme::hidpiFileName(":/client/theme/colored/wizard-groupware.png"), tr("Easy-to-use web mail, calendaring & contacts")); _ui.slideShow->addSlide(Theme::hidpiFileName(":/client/theme/colored/wizard-talk.png"), tr("Screensharing, online meetings & web conferences")); - connect(_ui.slideShow, &SlideShow::clicked, _ui.slideShow, &SlideShow::nextSlide); + + connect(_ui.slideShow, &SlideShow::clicked, _ui.slideShow, &SlideShow::stopShow); + connect(_ui.nextButton, &QPushButton::clicked, _ui.slideShow, &SlideShow::nextSlide); + connect(_ui.prevButton, &QPushButton::clicked, _ui.slideShow, &SlideShow::prevSlide); + + auto widgetBgLightness = OwncloudSetupPage::palette().color(OwncloudSetupPage::backgroundRole()).lightness(); + bool widgetHasDarkBg = + (widgetBgLightness >= 125) + ? false + : true; + _ui.nextButton->setIcon(theme->uiThemeIcon(QString("control-next.svg"), widgetHasDarkBg)); + _ui.prevButton->setIcon(theme->uiThemeIcon(QString("control-prev.svg"), widgetHasDarkBg)); + + // QPushButtons are a mess when it comes to consistent background coloring without stylesheets, + // so we do it here even though this is an exceptional styling method here + _ui.createAccountButton->setStyleSheet("QPushButton {background-color: #0082C9; color: white}"); + _ui.slideShow->startShow(); QPalette pal = _ui.slideShow->palette(); diff --git a/src/gui/wizard/slideshow.cpp b/src/gui/wizard/slideshow.cpp index 721adaad3de27..01ea9eacada70 100644 --- a/src/gui/wizard/slideshow.cpp +++ b/src/gui/wizard/slideshow.cpp @@ -116,7 +116,7 @@ void SlideShow::nextSlide() _reverse = false; } -void SlideShow::previousSlide() +void SlideShow::prevSlide() { setCurrentSlide((_currentIndex > 0 ? _currentIndex : _labels.count()) - 1); _reverse = true; diff --git a/src/gui/wizard/slideshow.h b/src/gui/wizard/slideshow.h index 6cb53bf06291a..65743ec1fad2f 100644 --- a/src/gui/wizard/slideshow.h +++ b/src/gui/wizard/slideshow.h @@ -51,7 +51,7 @@ public slots: void startShow(int interval = 0); void stopShow(); void nextSlide(); - void previousSlide(); + void prevSlide(); void reset(); signals: diff --git a/src/libsync/theme.cpp b/src/libsync/theme.cpp index ed29647295cc0..093995513c65f 100644 --- a/src/libsync/theme.cpp +++ b/src/libsync/theme.cpp @@ -177,6 +177,14 @@ QIcon Theme::themeIcon(const QString &name, bool sysTray, bool sysTrayMenuVisibl return cached; } +QIcon Theme::uiThemeIcon(const QString &iconName, bool uiHasDarkBg) const +{ + QString themeResBasePath = ":/client/theme/"; + QString iconPath = themeResBasePath + (uiHasDarkBg?"white/":"black/") + iconName; + std::string icnPath = iconPath.toUtf8().constData(); + return QIcon(QPixmap(iconPath)); +} + QString Theme::hidpiFileName(const QString &fileName, QPaintDevice *dev) { qreal devicePixelRatio = dev ? dev->devicePixelRatio() : qApp->primaryScreen()->devicePixelRatio(); diff --git a/src/libsync/theme.h b/src/libsync/theme.h index f703fd8b57b6f..bccb239d7d88a 100644 --- a/src/libsync/theme.h +++ b/src/libsync/theme.h @@ -347,6 +347,14 @@ class OWNCLOUDSYNC_EXPORT Theme : public QObject * important dependency versions. */ virtual QString versionSwitchOutput() const; + + /** + * @brief Request suitable QIcon resource depending on the background colour of the parent widget. + * + * This should be replaced (TODO) by a real theming implementation for the client UI + * (actually 2019/09/13 only systray theming). + */ + virtual QIcon uiThemeIcon(const QString &iconName, bool uiHasDarkBg) const; protected: #ifndef TOKEN_AUTH_ONLY diff --git a/theme.qrc b/theme.qrc index 44d0dfc728d1b..006056b87bee2 100644 --- a/theme.qrc +++ b/theme.qrc @@ -43,7 +43,7 @@ theme/white/state-sync-64.png theme/white/state-sync-128.png theme/white/state-sync-256.png - theme/black/state-error-32.png + theme/black/state-error-32.png theme/black/state-error-64.png theme/black/state-error-128.png theme/black/state-error-256.png @@ -79,6 +79,8 @@ theme/colored/state-warning-64.png theme/colored/state-warning-128.png theme/colored/state-warning-256.png + theme/black/control-next.svg + theme/black/control-prev.svg theme/black/state-error.svg theme/black/state-error-16.png theme/black/state-offline.svg @@ -99,6 +101,8 @@ theme/black/state-warning-64.png theme/black/state-warning-128.png theme/black/state-warning-256.png + theme/white/control-next.svg + theme/white/control-prev.svg theme/white/state-error.svg theme/white/state-error-16.png theme/white/state-offline.svg diff --git a/theme/black/control-next.svg b/theme/black/control-next.svg new file mode 100644 index 0000000000000..19c7d0159bba7 --- /dev/null +++ b/theme/black/control-next.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/theme/black/control-prev.svg b/theme/black/control-prev.svg new file mode 100644 index 0000000000000..97fe7a90dfa37 --- /dev/null +++ b/theme/black/control-prev.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/theme/white/control-next.svg b/theme/white/control-next.svg new file mode 100644 index 0000000000000..9194dbe6ee8f1 --- /dev/null +++ b/theme/white/control-next.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/theme/white/control-prev.svg b/theme/white/control-prev.svg new file mode 100644 index 0000000000000..e3a32259475db --- /dev/null +++ b/theme/white/control-prev.svg @@ -0,0 +1,9 @@ + + + + + + + + +