Make account setup wizard's adjustWizardSize resize to current page size instead...
authorClaudio Cambra <claudio.cambra@gmail.com>
Wed, 7 Sep 2022 16:09:10 +0000 (18:09 +0200)
committerClaudio Cambra <claudio.cambra@gmail.com>
Tue, 13 Sep 2022 21:00:05 +0000 (23:00 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
src/gui/owncloudsetupwizard.cpp
src/gui/wizard/owncloudwizard.cpp
src/gui/wizard/owncloudwizard.h

index 86c4524a8603461020ae5d3176a139e609eab74d..0ce78f58e3d583f48ded301a0fdb99efbbb00ca1 100644 (file)
@@ -126,9 +126,8 @@ void OwncloudSetupWizard::startWizard()
     const auto startPage = WizardCommon::Page_ServerSetup;
 #endif // WITH_PROVIDERS
     _ocWizard->setStartId(startPage);
-
     _ocWizard->restart();
-
+    _ocWizard->adjustWizardSize();
     _ocWizard->open();
     _ocWizard->raise();
 }
index 4a9c4d11e48590f35f322a3afd8b4d8c28915b7f..afc19c40986f07633e1ef4f2c1f39c525d5ad00d 100644 (file)
@@ -134,9 +134,16 @@ void OwncloudWizard::centerWindow()
 void OwncloudWizard::adjustWizardSize()
 {
     const auto pageSizes = calculateWizardPageSizes();
-    const auto longestSide = calculateLongestSideOfWizardPages(pageSizes);
+    const auto currentPageIndex = currentId();
 
-    resize(QSize(longestSide, longestSide));
+    // If we can, just use the size of the current page
+    if(currentPageIndex > -1 && currentPageIndex < pageSizes.count()) {
+        resize(pageSizes.at(currentPageIndex));
+        return;
+    }
+
+    // As a backup, resize to largest page
+    resize(calculateLargestSizeOfWizardPages(pageSizes));
 }
 
 QList<QSize> OwncloudWizard::calculateWizardPageSizes() const
@@ -153,11 +160,17 @@ QList<QSize> OwncloudWizard::calculateWizardPageSizes() const
     return pageSizes;
 }
 
-int OwncloudWizard::calculateLongestSideOfWizardPages(const QList<QSize> &pageSizes) const
+QSize OwncloudWizard::calculateLargestSizeOfWizardPages(const QList<QSize> &pageSizes) const
 {
-    return std::accumulate(std::cbegin(pageSizes), std::cend(pageSizes), 0, [](int current, const QSize &size) {
-        return std::max({ current, size.width(), size.height() });
-    });
+    QSize largestSize;
+    for(const auto size : pageSizes) {
+        const auto largerWidth = qMax(largestSize.width(), size.width());
+        const auto largerHeight = qMax(largestSize.height(), size.height());
+
+        largestSize = QSize(largerWidth, largerHeight);
+    }
+
+    return largestSize;
 }
 
 void OwncloudWizard::setAccount(AccountPtr account)
index 14fcbc507063cd075476933c9249f03a841c72fc..a23aed748becbec8d105774417fc835c0fef1f5c 100644 (file)
@@ -96,6 +96,7 @@ public slots:
     void slotCurrentPageChanged(int);
     void successfulStep();
     void slotCustomButtonClicked(const int which);
+    void adjustWizardSize();
 
 signals:
     void clearPendingRequests();
@@ -114,8 +115,7 @@ protected:
 
 private:
     void customizeStyle();
-    void adjustWizardSize();
-    int calculateLongestSideOfWizardPages(const QList<QSize> &pageSizes) const;
+    QSize calculateLargestSizeOfWizardPages(const QList<QSize> &pageSizes) const;
     QList<QSize> calculateWizardPageSizes() const;
 
     AccountPtr _account;