From a7469d2959e3ec808f3a50c5962b5904cb780adf Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 23 Dec 2016 01:06:08 +0100 Subject: [PATCH] refs #841, use settings to decide which text message is displayed --- src/blackgui/overlaymessages.cpp | 17 +++++++++++++++++ src/blackgui/overlaymessages.h | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/src/blackgui/overlaymessages.cpp b/src/blackgui/overlaymessages.cpp index 0daa04265..3ea6d0c41 100644 --- a/src/blackgui/overlaymessages.cpp +++ b/src/blackgui/overlaymessages.cpp @@ -16,7 +16,10 @@ #include "blackgui/views/statusmessageview.h" #include "blackgui/views/viewbase.h" #include "blackmisc/aviation/callsign.h" +#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/network/textmessage.h" +#include "blackcore/context/contextownaircraft.h" +#include "blackcore/application.h" #include "ui_overlaymessages.h" #include @@ -34,8 +37,12 @@ using namespace BlackMisc; using namespace BlackMisc::Network; +using namespace BlackMisc::Simulation; +using namespace BlackCore; +using namespace BlackCore::Context; using namespace BlackGui::Models; using namespace BlackGui::Views; +using namespace BlackGui::Settings; namespace BlackGui { @@ -110,6 +117,15 @@ namespace BlackGui return (this->width() < 400); } + bool COverlayMessages::displayTextMessage(const CTextMessage &textMessage) const + { + const CTextMessageSettings s = this->m_messageSettings.getThreadLocal(); + if (s.popup(textMessage)) { return true; } // fast check without needing own aircraft + if (!sApp || !sApp->getIContextOwnAircraft()) { return false; } + const CSimulatedAircraft ownAircraft(sApp->getIContextOwnAircraft()->getOwnAircraft()); + return s.popup(textMessage, ownAircraft); + } + COverlayMessages::~COverlayMessages() {} @@ -160,6 +176,7 @@ namespace BlackGui void COverlayMessages::showOverlayTextMessage(const CTextMessage &textMessage, int timeOutMs) { if (textMessage.isEmpty()) { return; } + if (!displayTextMessage(textMessage)) { return; } if (this->hasPendingConfirmation()) { // defer message diff --git a/src/blackgui/overlaymessages.h b/src/blackgui/overlaymessages.h index a83786467..533ba690d 100644 --- a/src/blackgui/overlaymessages.h +++ b/src/blackgui/overlaymessages.h @@ -13,6 +13,7 @@ #define BLACKGUI_OVERLAYMESSAGES_H #include "blackgui/blackguiexport.h" +#include "blackgui/settings/textmessagesettings.h" #include "blackmisc/pixmap.h" #include "blackmisc/statusmessage.h" #include "blackmisc/statusmessagelist.h" @@ -130,6 +131,7 @@ namespace BlackGui private: QScopedPointer ui; + BlackMisc::CSettingReadOnly m_messageSettings { this }; QString m_header; int m_lastConfirmation = QMessageBox::Cancel; bool m_awaitingConfirmation = false; @@ -145,6 +147,9 @@ namespace BlackGui //! Small bool useSmall() const; + + //! Display this message (use settings to decide) + bool displayTextMessage(const BlackMisc::Network::CTextMessage &textMessage) const; }; } // ns