summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-11-09 14:01:04 +0200
committerKatja Marttila <katja.marttila@qt.io>2018-11-13 07:34:03 +0000
commit0886f83a9a3ae6cae872feaa7229a40ddc370525 (patch)
tree5c9c9c616537ab43a755f255f145624d1be7471a
parenta16f67ea99b6599b725ce762b520beafb34f6427 (diff)
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 <iikka.eklund@qt.io>
-rw-r--r--src/libs/installer/packagemanagergui.cpp9
-rw-r--r--src/libs/installer/packagemanagergui.h1
2 files changed, 10 insertions, 0 deletions
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 <QShowEvent>
#include <QFileDialog>
#include <QGroupBox>
+#include <QDesktopWidget>
#ifdef Q_OS_WIN
# include <qt_windows.h>
@@ -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);