From f396541f83c03b1c6ae58626676779f7bb6355c3 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 18 Aug 2021 09:15:11 +0200 Subject: [PATCH] LIB: Add the getMainWindow to the VivyApplication --- src/VivyApplication.cc | 12 ++++++++++-- src/VivyApplication.hh | 6 ++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc index 852503f2..f4bf46f0 100644 --- a/src/VivyApplication.cc +++ b/src/VivyApplication.cc @@ -57,8 +57,8 @@ VivyApplication::exec() noexcept setCursorFlashTime(0); // Show the main window - MainWindow mainWindow; - mainWindow.show(); + mainWindowPtr = std::make_unique<MainWindow>(); + mainWindowPtr->show(); // Main loop return QApplication::exec(); @@ -83,3 +83,11 @@ VivyApplication::getApplicationFont(Font id) const noexcept // Let the program crash qFatal("UNREACHABLE"); } + +MainWindow * +VivyApplication::getMainWindow() const +{ + if (!mainWindowPtr) + throw std::logic_error("No main window in the graphic VivyApplication"); + return mainWindowPtr.get(); +} diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh index 184a4fb3..06e04780 100644 --- a/src/VivyApplication.hh +++ b/src/VivyApplication.hh @@ -33,6 +33,9 @@ namespace Vivy { +class MainWindow; + +// Vivy application class class VivyApplication : public QApplication { Q_OBJECT @@ -59,12 +62,15 @@ private: int fontIdBold; int fontIdBoldItalic; + std::unique_ptr<MainWindow> mainWindowPtr{ nullptr }; + public: VivyApplication(int &argc, char **argv); int exec() noexcept; QFont getApplicationFont(Font) const noexcept; + [[nodiscard("handle-it")]] MainWindow *getMainWindow() const; void setTheme(Theme) noexcept; }; -- GitLab