From 4425b39ea176c46c166a01963a90e957c2d6db16 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Wed, 2 Mar 2016 10:36:50 +0100 Subject: [PATCH] ui: center windows on top of main window * justify windows in middle of main window * fixed window resizing * add window displacement automatic with logo --- src/lib_gui/qt/window/QtAbout.cpp | 2 +- src/lib_gui/qt/window/QtAboutLicense.cpp | 2 +- src/lib_gui/qt/window/QtAboutLicense.h | 2 +- src/lib_gui/qt/window/QtLicense.cpp | 6 ++--- src/lib_gui/qt/window/QtStartScreen.cpp | 15 ++++++----- src/lib_gui/qt/window/QtWindow.cpp | 32 +++++++++++++++--------- src/lib_gui/qt/window/QtWindow.h | 8 +++--- 7 files changed, 36 insertions(+), 31 deletions(-) diff --git a/src/lib_gui/qt/window/QtAbout.cpp b/src/lib_gui/qt/window/QtAbout.cpp index cf41c654..3f4149aa 100644 --- a/src/lib_gui/qt/window/QtAbout.cpp +++ b/src/lib_gui/qt/window/QtAbout.cpp @@ -148,7 +148,7 @@ void QtAbout::setupAbout() QPushButton* closeButton = new QPushButton(this); closeButton->setIcon(QIcon(closePixmap.pixmap())); closeButton->setObjectName("closeButton"); - closeButton->move(450, 20); + closeButton->move(455, 25); closeButton->show(); connect(closeButton, SIGNAL(clicked()), this, SLOT(handleCloseButtonPress())); diff --git a/src/lib_gui/qt/window/QtAboutLicense.cpp b/src/lib_gui/qt/window/QtAboutLicense.cpp index c25b2730..3bd46f21 100644 --- a/src/lib_gui/qt/window/QtAboutLicense.cpp +++ b/src/lib_gui/qt/window/QtAboutLicense.cpp @@ -21,7 +21,7 @@ QtAboutLicense::QtAboutLicense(QWidget *parent) QSize QtAboutLicense::sizeHint() const { - return QSize(600,600); + return QSize(600, 600); } void QtAboutLicense::populateWindow(QWidget* widget) diff --git a/src/lib_gui/qt/window/QtAboutLicense.h b/src/lib_gui/qt/window/QtAboutLicense.h index d5fd7bd5..ac288d77 100644 --- a/src/lib_gui/qt/window/QtAboutLicense.h +++ b/src/lib_gui/qt/window/QtAboutLicense.h @@ -16,4 +16,4 @@ protected: virtual void windowReady() override; }; -#endif //QT_ABOUT_LICENSE_H +#endif // QT_ABOUT_LICENSE_H diff --git a/src/lib_gui/qt/window/QtLicense.cpp b/src/lib_gui/qt/window/QtLicense.cpp index 5acc0ddf..d11e03a1 100644 --- a/src/lib_gui/qt/window/QtLicense.cpp +++ b/src/lib_gui/qt/window/QtLicense.cpp @@ -14,14 +14,14 @@ #include "utility/ResourcePaths.h" QtLicense::QtLicense(QWidget *parent) - : QtWindow(parent, 68) + : QtWindow(parent) { raise(); } QSize QtLicense::sizeHint() const { - return QSize(725, 550); + return QSize(750, 550); } void QtLicense::clear() @@ -112,8 +112,6 @@ void QtLicense::populateWindow(QWidget* widget) layout->addSpacing(20); widget->setLayout(layout); - - resize(750, 550); } void QtLicense::windowReady() diff --git a/src/lib_gui/qt/window/QtStartScreen.cpp b/src/lib_gui/qt/window/QtStartScreen.cpp index a95f0e84..9c32d243 100644 --- a/src/lib_gui/qt/window/QtStartScreen.cpp +++ b/src/lib_gui/qt/window/QtStartScreen.cpp @@ -26,12 +26,18 @@ void QtRecentProjectButton::handleButtonClick() MessageLoadProject(m_projectFilePath.str(), false).dispatch(); }; + QtStartScreen::QtStartScreen(QWidget *parent) - : QtWindow(parent, 68) + : QtWindow(parent) { this->raise(); } +QSize QtStartScreen::sizeHint() const +{ + return QSize(570, 600); +} + void QtStartScreen::setupStartScreen() { setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath() + "startscreen/startscreen.css").c_str()); @@ -77,13 +83,6 @@ void QtStartScreen::setupStartScreen() connect(button, SIGNAL(clicked()), this, SLOT(handleRecentButton())); position += 40; } - - resize(570, 600); -} - -QSize QtStartScreen::sizeHint() const -{ - return QSize(500, 500); } void QtStartScreen::handleNewProjectButton() diff --git a/src/lib_gui/qt/window/QtWindow.cpp b/src/lib_gui/qt/window/QtWindow.cpp index 6484d842..7f8b9767 100644 --- a/src/lib_gui/qt/window/QtWindow.cpp +++ b/src/lib_gui/qt/window/QtWindow.cpp @@ -10,31 +10,23 @@ #include "qt/utility/utilityQt.h" #include "utility/ResourcePaths.h" -QtWindow::QtWindow(QWidget* parent, int displacement) +QtWindow::QtWindow(QWidget* parent) : QtWindowStackElement(parent) , m_window(nullptr) , m_title(nullptr) , m_nextButton(nullptr) , m_previousButton(nullptr) , m_closeButton(nullptr) - , m_displacement(displacement) , m_cancelAble(true) , m_scrollAble(false) , m_showAsPopup(false) + , m_hasLogo(false) , m_mousePressedInWindow(false) { setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true); - move(parent->pos().x() + parent->width() / 2 - 250, parent->pos().y() + parent->height() / 2 - 250); - - QSize windowSize = sizeHint(); - m_window = new QWidget(this); - windowSize.setHeight(windowSize.height() - displacement - 10); - windowSize.setWidth(windowSize.width() - 10); - m_window->move(0, displacement); - m_window->resize(windowSize); std::string frameStyle = "#window {" @@ -57,6 +49,8 @@ QtWindow::QtWindow(QWidget* parent, int displacement) m_window->setGraphicsEffect(effect); } + resize(sizeHint()); + this->raise(); } @@ -245,9 +239,20 @@ void QtWindow::hideWindow() void QtWindow::resizeEvent(QResizeEvent *event) { - QSize windowSize = event->size() - QSize(10, 10 + m_displacement); + int displacement = 0; + if (m_hasLogo) + { + displacement = 58; + } + + QSize windowSize = event->size() - QSize(10, 10 + displacement); m_window->resize(windowSize); - m_window->move(0, m_displacement); + m_window->move(5, displacement + 10); + + move( + parentWidget()->pos().x() + parentWidget()->width() / 2 - event->size().width() / 2, + parentWidget()->pos().y() + parentWidget()->height() / 2 - event->size().height() / 2 + ); } void QtWindow::keyPressEvent(QKeyEvent *event) @@ -322,6 +327,9 @@ void QtWindow::addLogo() coatiLogoLabel->resize(coatiLogo.width(), coatiLogo.height()); coatiLogoLabel->move(30, 25); coatiLogoLabel->show(); + + m_hasLogo = true; + resize(sizeHint()); } void QtWindow::handleNextPress() diff --git a/src/lib_gui/qt/window/QtWindow.h b/src/lib_gui/qt/window/QtWindow.h index efbedc74..2b481789 100644 --- a/src/lib_gui/qt/window/QtWindow.h +++ b/src/lib_gui/qt/window/QtWindow.h @@ -17,7 +17,7 @@ class QtWindow Q_OBJECT public: - QtWindow(QWidget* parent = nullptr, int displacement = 0); + QtWindow(QWidget* parent = nullptr); QSize sizeHint() const override; @@ -83,14 +83,14 @@ private slots: void handleClosePress(); private: - int m_displacement; - bool m_cancelAble; bool m_scrollAble; bool m_showAsPopup; + bool m_hasLogo; + QPoint m_dragPosition; bool m_mousePressedInWindow; }; -#endif //QT_WINDOW_H +#endif // QT_WINDOW_H