From 0886f83a9a3ae6cae872feaa7229a40ddc370525 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Fri, 9 Nov 2018 14:01:04 +0200 Subject: Fix wizard's maximum size User can set height and width for wizard in config.xml. If the given dimentions does not fit to the screen, wizard was clipped and buttons were of the screen. Fixed so that the screen size cannot be exceeded. Task-number: QTIFW-1016 Change-Id: Iab6970d4203fc1271b93475aec71c946d0508653 Reviewed-by: Iikka Eklund --- src/libs/installer/packagemanagergui.cpp | 9 +++++++++ src/libs/installer/packagemanagergui.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 430008cdb..39235317d 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -73,6 +73,7 @@ #include #include #include +#include #ifdef Q_OS_WIN # include @@ -382,8 +383,16 @@ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent) d->m_defaultButtonText.insert(i, buttonText(QWizard::WizardButton(i))); m_core->setGuiObject(this); + + // We need to create this ugly hack so that the installer doesn't exceed the maximum size of the + // screen. The screen size where the widget lies is not available until the widget is visible. + QTimer::singleShot(30, this, SLOT(setMaxSize())); } +void PackageManagerGui::setMaxSize() +{ + setMaximumSize(qApp->desktop()->availableGeometry(this).size()); +} /*! Destructs a package manager UI. */ diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index 59ea6572e..48f5089c0 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -106,6 +106,7 @@ public Q_SLOTS: void rejectWithoutPrompt(); void showFinishedPage(); void setModified(bool value); + void setMaxSize(); protected Q_SLOTS: void wizardPageInsertionRequested(QWidget *widget, QInstaller::PackageManagerCore::WizardPage page); -- cgit v1.2.3