summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2017-11-23 13:49:12 +0200
committerAntti Kokko <antti.kokko@qt.io>2017-11-28 09:38:26 +0000
commitbdcf654572dc7a2c8b61a7b69e88e0d670240c7c (patch)
tree4928b434778278c5b43ff82438d9c4095fcb9cef
parentf6b8e61d659c6cfcce304f2f5b0f0715bb358a41 (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.cpp14
-rw-r--r--src/Authoring/Studio/_Win/Application/StudioApp.cpp2
-rw-r--r--src/Authoring/Studio/_Win/UI/StartupDlg.cpp13
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);