From b3c6e223464c0fa714e2555b69c181c686e877ca Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 2 Oct 2018 20:03:59 +0200 Subject: [PATCH] Ref T384, overlay text messages added in frame --- src/blackgui/overlaymessages.cpp | 18 +++++++++++++-- src/blackgui/overlaymessages.h | 7 ++++-- src/blackgui/overlaymessages.ui | 34 ++++++++++++++++++++++++++++- src/blackgui/overlaymessagesframe.h | 16 ++++++++++---- 4 files changed, 66 insertions(+), 9 deletions(-) diff --git a/src/blackgui/overlaymessages.cpp b/src/blackgui/overlaymessages.cpp index 5261e72f7..f8d1f6b42 100644 --- a/src/blackgui/overlaymessages.cpp +++ b/src/blackgui/overlaymessages.cpp @@ -63,6 +63,11 @@ namespace BlackGui ui->tvp_StatusMessages->setForceColumnsToMaxSize(false); // problems with multiline entries, with T138 we need multiline messages ui->tvp_StatusMessages->menuAddItems(CStatusMessageView::MenuSave); ui->fr_Confirmation->setVisible(false); + + ui->comp_OverlayTextMessage->showSettings(false); + ui->comp_OverlayTextMessage->showTextMessageEntry(true); + ui->comp_OverlayTextMessage->setAsUsedInOverlayMode(); + this->setDefaultConfirmationButton(QMessageBox::Cancel); } @@ -145,7 +150,7 @@ namespace BlackGui return s.popup(textMessage, ownAircraft); } - void COverlayMessages::showOverlayMessages(const BlackMisc::CStatusMessageList &messages, bool appendOldMessages, int timeOutMs) + void COverlayMessages::showOverlayMessages(const CStatusMessageList &messages, bool appendOldMessages, int timeOutMs) { if (messages.isEmpty()) { return; } if (!sGui || sGui->isShuttingDown()) { return; } @@ -212,7 +217,7 @@ namespace BlackGui void COverlayMessages::showOverlayTextMessage(const CTextMessage &textMessage, int timeOutMs) { if (textMessage.isEmpty()) { return; } - if (!displayTextMessage(textMessage)) { return; } + if (!this->displayTextMessage(textMessage)) { return; } if (!sGui || sGui->isShuttingDown()) { return; } if (this->hasPendingConfirmation()) @@ -240,6 +245,15 @@ namespace BlackGui this->display(timeOutMs); } + void COverlayMessages::showOverlayInlineTextMessage(Components::TextMessageTab tab) + { + ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_OverlayTextMessage); + ui->comp_OverlayTextMessage->setTab(tab); + this->setHeader("Text message"); + this->showKill(false); + this->display(); + } + void COverlayMessages::showOverlayImage(const CPixmap &image, int timeOutMs) { this->showOverlayImage(image.toPixmap(), timeOutMs); diff --git a/src/blackgui/overlaymessages.h b/src/blackgui/overlaymessages.h index eedae3df4..21ddcb088 100644 --- a/src/blackgui/overlaymessages.h +++ b/src/blackgui/overlaymessages.h @@ -12,8 +12,9 @@ #ifndef BLACKGUI_OVERLAYMESSAGES_H #define BLACKGUI_OVERLAYMESSAGES_H -#include "blackgui/blackguiexport.h" +#include "blackgui/components/textmessagecomponenttab.h" #include "blackgui/settings/textmessagesettings.h" +#include "blackgui/blackguiexport.h" #include "blackmisc/pixmap.h" #include "blackmisc/statusmessage.h" #include "blackmisc/statusmessagelist.h" @@ -30,7 +31,6 @@ class QKeyEvent; class QPaintEvent; class QPixmap; -class QWidget; namespace BlackMisc { namespace Network { class CTextMessage; } } namespace Ui { class COverlayMessages; } @@ -98,6 +98,9 @@ namespace BlackGui //! Info message, based on text message void showOverlayTextMessage(const BlackMisc::Network::CTextMessage &textMessage, int timeOutMs = -1); + //! Inline text message + void showOverlayInlineTextMessage(BlackGui::Components::TextMessageTab tab); + //! Image void showOverlayImage(const BlackMisc::CPixmap &image, int timeOutMs = -1); diff --git a/src/blackgui/overlaymessages.ui b/src/blackgui/overlaymessages.ui index adf9fab44..6523c47ec 100644 --- a/src/blackgui/overlaymessages.ui +++ b/src/blackgui/overlaymessages.ui @@ -113,7 +113,7 @@ - 4 + 5 @@ -295,6 +295,32 @@ + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + @@ -375,6 +401,12 @@
blackgui/components/statusmessageformsmall.h
1 + + BlackGui::Components::CTextMessageComponent + QFrame +
blackgui/components/textmessagecomponent.h
+ 1 +
pb_Ok diff --git a/src/blackgui/overlaymessagesframe.h b/src/blackgui/overlaymessagesframe.h index 9b76ab66d..37ecc150d 100644 --- a/src/blackgui/overlaymessagesframe.h +++ b/src/blackgui/overlaymessagesframe.h @@ -12,13 +12,13 @@ #ifndef BLACKGUI_OVERLAYMESSAGES_FRAME_H #define BLACKGUI_OVERLAYMESSAGES_FRAME_H -#include "blackgui/blackguiexport.h" +#include "blackgui/components/textmessagecomponenttab.h" #include "blackgui/overlaymessages.h" #include "blackgui/guiutility.h" -#include "blackmisc/pixmap.h" -#include "blackmisc/statusmessage.h" -#include "blackmisc/statusmessagelist.h" +#include "blackgui/blackguiexport.h" #include "blackmisc/network/textmessage.h" +#include "blackmisc/pixmap.h" +#include "blackmisc/statusmessagelist.h" #include "blackmisc/variant.h" #include @@ -163,6 +163,14 @@ namespace BlackGui WIDGET::repaint(); } + //! \copydoc BlackGui::COverlayMessages::showOverlayImage + void showOverlayInlineTextMessage(Components::TextMessageTab tab) + { + this->initInnerFrame(); + m_overlayMessages->showOverlayInlineTextMessage(tab); + WIDGET::repaint(); + } + protected: COverlayMessages *m_overlayMessages = nullptr; //!< embedded QFrame with status messages