From cd998d1c35d9d65aa04ca64f0f94f34a57db8335 Mon Sep 17 00:00:00 2001 From: Loren Burkholder Date: Sat, 16 Jan 2021 15:33:33 -0500 Subject: [PATCH] Center user info dialog on the screen --- resources/qml/UserProfile.qml | 2 ++ src/MainWindow.h | 7 ++++++- src/timeline/TimelineViewManager.cpp | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/qml/UserProfile.qml b/resources/qml/UserProfile.qml index 8328f4a5..fce6e6ff 100644 --- a/resources/qml/UserProfile.qml +++ b/resources/qml/UserProfile.qml @@ -10,6 +10,8 @@ ApplicationWindow { property var profile + x: MainWindow.x + (MainWindow.width / 2) - (width / 2) + y: MainWindow.y + (MainWindow.height / 2) - (height / 2) height: 650 width: 420 minimumHeight: 420 diff --git a/src/MainWindow.h b/src/MainWindow.h index 0915a849..707118ed 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -61,10 +61,15 @@ class MainWindow : public QMainWindow { Q_OBJECT + Q_PROPERTY(int x READ x) + Q_PROPERTY(int y READ y) + Q_PROPERTY(int width READ width) + Q_PROPERTY(int height READ height) + public: explicit MainWindow(QWidget *parent = nullptr); - static MainWindow *instance() { return instance_; }; + static MainWindow *instance() { return instance_; } void saveCurrentWindowSize(); void openLeaveRoomDialog(const QString &room_id); diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 97af0065..1317dc2a 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -128,6 +128,10 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par "UserProfile needs to be instantiated on the C++ side"); static auto self = this; + qmlRegisterSingletonType( + "im.nheko", 1, 0, "MainWindow", [](QQmlEngine *, QJSEngine *) -> QObject * { + return MainWindow::instance(); + }); qmlRegisterSingletonType( "im.nheko", 1, 0, "TimelineManager", [](QQmlEngine *, QJSEngine *) -> QObject * { return self;