diff options
author | Claudio Cambra <claudio.cambra@gmail.com> | 2022-09-07 19:09:10 +0300 |
---|---|---|
committer | Claudio Cambra <claudio.cambra@gmail.com> | 2022-09-14 00:00:05 +0300 |
commit | 14303d0eb60063fba8b9563d95402d82f925a15f (patch) | |
tree | 02bd02d2c0a27e3527a023600b87bf4edfaf5f47 /src | |
parent | b91dad99d07be8fed6f004cd4fdaa9a5dae60511 (diff) |
Make account setup wizard's adjustWizardSize resize to current page size instead of largest wizard page
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/owncloudsetupwizard.cpp | 3 | ||||
-rw-r--r-- | src/gui/wizard/owncloudwizard.cpp | 25 | ||||
-rw-r--r-- | src/gui/wizard/owncloudwizard.h | 4 |
3 files changed, 22 insertions, 10 deletions
diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp index 86c4524a8..0ce78f58e 100644 --- a/src/gui/owncloudsetupwizard.cpp +++ b/src/gui/owncloudsetupwizard.cpp @@ -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(); } diff --git a/src/gui/wizard/owncloudwizard.cpp b/src/gui/wizard/owncloudwizard.cpp index 4a9c4d11e..afc19c409 100644 --- a/src/gui/wizard/owncloudwizard.cpp +++ b/src/gui/wizard/owncloudwizard.cpp @@ -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) diff --git a/src/gui/wizard/owncloudwizard.h b/src/gui/wizard/owncloudwizard.h index 14fcbc507..a23aed748 100644 --- a/src/gui/wizard/owncloudwizard.h +++ b/src/gui/wizard/owncloudwizard.h @@ -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; |