From 37aa46d77bf69c40ebf100125482b374108e7f49 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Fri, 13 Jul 2018 14:36:13 +0200 Subject: [PATCH] ui: Fixed start screen not disappearing when opening project with double click on macOS --- src/lib/Application.cpp | 6 +++++ src/lib/component/view/MainView.h | 2 ++ .../messaging/type/MessageProjectNew.h | 1 + src/lib_gui/qt/view/QtMainView.cpp | 22 +++++++++---------- src/lib_gui/qt/view/QtMainView.h | 5 ++--- 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/lib/Application.cpp b/src/lib/Application.cpp index 3678faef..1b147fa6 100644 --- a/src/lib/Application.cpp +++ b/src/lib/Application.cpp @@ -227,6 +227,12 @@ void Application::handleMessage(MessageLoadProject* message) TRACE("app load project"); FilePath projectSettingsFilePath(message->projectSettingsFilePath); + if (m_hasGUI) + { + bool showStartWindow = projectSettingsFilePath.empty(); + m_mainView->loadWindow(showStartWindow); + } + if (projectSettingsFilePath.empty()) { return; diff --git a/src/lib/component/view/MainView.h b/src/lib/component/view/MainView.h index 9d8804d6..af00a150 100644 --- a/src/lib/component/view/MainView.h +++ b/src/lib/component/view/MainView.h @@ -23,6 +23,8 @@ public: virtual void refreshView() = 0; + virtual void loadWindow(bool showStartWindow) = 0; + virtual void hideStartScreen() = 0; virtual void setTitle(const std::wstring& title) = 0; virtual void activateWindow() = 0; diff --git a/src/lib/utility/messaging/type/MessageProjectNew.h b/src/lib/utility/messaging/type/MessageProjectNew.h index f2c0f0d4..90790672 100644 --- a/src/lib/utility/messaging/type/MessageProjectNew.h +++ b/src/lib/utility/messaging/type/MessageProjectNew.h @@ -1,6 +1,7 @@ #ifndef MESSAGE_PROJECT_NEW_H #define MESSAGE_PROJECT_NEW_H +#include "utility/file/FilePath.h" #include "utility/messaging/Message.h" class MessageProjectNew diff --git a/src/lib_gui/qt/view/QtMainView.cpp b/src/lib_gui/qt/view/QtMainView.cpp index 35773db4..c2c4fdca 100644 --- a/src/lib_gui/qt/view/QtMainView.cpp +++ b/src/lib_gui/qt/view/QtMainView.cpp @@ -82,6 +82,16 @@ void QtMainView::saveLayout() m_window->saveLayout(); } +void QtMainView::loadWindow(bool showStartWindow) +{ + m_onQtThread( + [=]() + { + m_window->loadWindow(showStartWindow); + } + ); +} + void QtMainView::refreshView() { m_onQtThread( @@ -177,18 +187,6 @@ void QtMainView::handleMessage(MessageForceEnterLicense* message) ); } -void QtMainView::handleMessage(MessageLoadProject* message) -{ - bool showStartWindow = message->projectSettingsFilePath.empty(); - - m_onQtThread( - [=]() - { - m_window->loadWindow(showStartWindow); - } - ); -} - void QtMainView::handleMessage(MessageProjectEdit* message) { m_onQtThread( diff --git a/src/lib_gui/qt/view/QtMainView.h b/src/lib_gui/qt/view/QtMainView.h index afaca978..34b07820 100644 --- a/src/lib_gui/qt/view/QtMainView.h +++ b/src/lib_gui/qt/view/QtMainView.h @@ -11,7 +11,6 @@ #include "utility/messaging/MessageListener.h" #include "utility/messaging/type/MessageForceEnterLicense.h" -#include "utility/messaging/type/MessageLoadProject.h" #include "utility/messaging/type/MessageProjectEdit.h" #include "utility/messaging/type/MessageProjectNew.h" @@ -21,7 +20,6 @@ class View; class QtMainView : public MainView , public MessageListener - , public MessageListener , public MessageListener , public MessageListener { @@ -49,6 +47,8 @@ public: virtual void loadLayout(); virtual void saveLayout(); + virtual void loadWindow(bool showStartWindow); + virtual void refreshView(); virtual void hideStartScreen(); @@ -61,7 +61,6 @@ public: private: void handleMessage(MessageForceEnterLicense* message); - void handleMessage(MessageLoadProject* message); void handleMessage(MessageProjectEdit* message); void handleMessage(MessageProjectNew* message);