diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2017-11-23 13:49:12 +0200 |
---|---|---|
committer | Antti Kokko <antti.kokko@qt.io> | 2017-11-28 09:38:26 +0000 |
commit | bdcf654572dc7a2c8b61a7b69e88e0d670240c7c (patch) | |
tree | 4928b434778278c5b43ff82438d9c4095fcb9cef | |
parent | f6b8e61d659c6cfcce304f2f5b0f0715bb358a41 (diff) |
Fix startup and welcome screen position
Now startup dialog is always centered on the main window,
and the welcome screen is always centered on the screen of the
main window.
Task-number: QT3DS-396
Change-Id: I11c3760f987d384d9489d4a012cc034ed62a74e5
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | src/Authoring/Studio/Application/StudioTutorialWidget.cpp | 14 | ||||
-rw-r--r-- | src/Authoring/Studio/_Win/Application/StudioApp.cpp | 2 | ||||
-rw-r--r-- | src/Authoring/Studio/_Win/UI/StartupDlg.cpp | 13 |
3 files changed, 20 insertions, 9 deletions
diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp index e6173087..632d2ed5 100644 --- a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp +++ b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp @@ -28,6 +28,7 @@ #include "StudioTutorialWidget.h" #include "ui_StudioTutorialWidget.h" #include "StudioUtils.h" +#include <QtWidgets/qdesktopwidget.h> StudioTutorialWidget::StudioTutorialWidget(QWidget *parent, bool goToFileDialog, bool showProjectButtons) : @@ -119,14 +120,11 @@ void StudioTutorialWidget::paintEvent(QPaintEvent *event) resize(pic.size()); setFixedSize(size()); - // If the dialog was originally larger than the screen, it will be placed into the - // top-left corner. Adjust its position after resizing. - if (m_displayScale < 1.0) { - QSize windowSize = GetAvailableDisplaySize(getWidgetScreen(this)); - QSize welcomeSize = size(); - move((windowSize.width() - welcomeSize.width()) / 2, - (windowSize.height() - welcomeSize.height()) / 2); - } + QRect screenRect = QApplication::desktop()->availableGeometry(getWidgetScreen(this)); + QSize windowSize = screenRect.size(); + QSize welcomeSize = size(); + move(screenRect.x() + (windowSize.width() - welcomeSize.width()) / 2, + screenRect.y() + (windowSize.height() - welcomeSize.height()) / 2); } void StudioTutorialWidget::handleFwd() diff --git a/src/Authoring/Studio/_Win/Application/StudioApp.cpp b/src/Authoring/Studio/_Win/Application/StudioApp.cpp index 6d9a966a..21bba278 100644 --- a/src/Authoring/Studio/_Win/Application/StudioApp.cpp +++ b/src/Authoring/Studio/_Win/Application/StudioApp.cpp @@ -543,7 +543,7 @@ bool CStudioApp::ShowStartupDialog() // show the usual startup dialog only if user rejected tutorial // ( = did not open samples or create new project) if (welcomeRes == QDialog::Rejected) { - CStartupDlg theStartupDlg; + CStartupDlg theStartupDlg(m_pMainWnd); // Populate recent items Q3DStudio::CFilePath theMostRecentDirectory; diff --git a/src/Authoring/Studio/_Win/UI/StartupDlg.cpp b/src/Authoring/Studio/_Win/UI/StartupDlg.cpp index 51b332b3..bb8d140c 100644 --- a/src/Authoring/Studio/_Win/UI/StartupDlg.cpp +++ b/src/Authoring/Studio/_Win/UI/StartupDlg.cpp @@ -48,6 +48,7 @@ #include <QtGui/qpalette.h> #include <QtCore/qdatetime.h> #include <QtCore/qdir.h> +#include "StudioUtils.h" // CStartupDlg dialog @@ -89,6 +90,18 @@ void CStartupDlg::reject() void CStartupDlg::OnInitDialog() { + QWidget *p = qobject_cast<QWidget *>(parent()); + if (p) { + QRect pRect; + if (p->isMaximized()) + pRect = QRect(QPoint(0, 0), GetAvailableDisplaySize(getWidgetScreen(p))); + else + pRect = p->frameGeometry(); + + move(pRect.x() + pRect.width() / 2 - width() / 2, + pRect.y() + pRect.height() / 2 - height() / 2); + } + connect(m_ui->newDocument, &QPushButton::clicked, this, &CStartupDlg::OnNewDocClicked); connect(m_ui->openDocument, &QPushButton::clicked, this, &CStartupDlg::OnOpenDocClicked); |