mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 11:25:33 +08:00
Ref T536, overlay text messages
* signals for text message requests * frame for overlay plus CEnableForDockWidgetInfoArea * correctly init inner frame size
This commit is contained in:
committed by
Mat Sutcliffe
parent
f50bb23020
commit
2464271400
@@ -46,6 +46,7 @@ using namespace BlackCore::Context;
|
|||||||
using namespace BlackGui::Models;
|
using namespace BlackGui::Models;
|
||||||
using namespace BlackGui::Views;
|
using namespace BlackGui::Views;
|
||||||
using namespace BlackGui::Settings;
|
using namespace BlackGui::Settings;
|
||||||
|
using namespace BlackGui::Components;
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
@@ -246,12 +247,20 @@ namespace BlackGui
|
|||||||
const bool activatedText = ui->comp_OverlayTextMessage->isActivated();
|
const bool activatedText = ui->comp_OverlayTextMessage->isActivated();
|
||||||
if (activatedText)
|
if (activatedText)
|
||||||
{
|
{
|
||||||
this->setModeToOverlayTextMessage();
|
if (textMessage.isPrivateMessage())
|
||||||
timeOutMs = -1; // cancel timeout
|
{
|
||||||
|
this->showOverlayInlineTextMessage(textMessage.getSenderCallsign());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->showOverlayInlineTextMessage(TextMessagesAll);
|
||||||
|
ui->comp_OverlayTextMessage->showCorrespondingTabForFrequency(textMessage.getFrequency());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// message and display
|
// message and display
|
||||||
|
//! @deprecated KB 2019-02 normally using overlay messages is used
|
||||||
ui->le_TmFrom->setText(textMessage.getSenderCallsign().asString());
|
ui->le_TmFrom->setText(textMessage.getSenderCallsign().asString());
|
||||||
ui->le_TmTo->setText(textMessage.getRecipientCallsign().asString());
|
ui->le_TmTo->setText(textMessage.getRecipientCallsign().asString());
|
||||||
ui->le_TmReceived->setText(textMessage.getFormattedUtcTimestampHms());
|
ui->le_TmReceived->setText(textMessage.getFormattedUtcTimestampHms());
|
||||||
@@ -260,11 +269,11 @@ namespace BlackGui
|
|||||||
ui->wi_TmSupervisor->setStyleSheet("background-color: red;");
|
ui->wi_TmSupervisor->setStyleSheet("background-color: red;");
|
||||||
|
|
||||||
this->setModeToTextMessage();
|
this->setModeToTextMessage();
|
||||||
}
|
|
||||||
this->display(timeOutMs);
|
this->display(timeOutMs);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void COverlayMessages::showOverlayInlineTextMessage(Components::TextMessageTab tab)
|
void COverlayMessages::showOverlayInlineTextMessage(TextMessageTab tab)
|
||||||
{
|
{
|
||||||
ui->comp_OverlayTextMessage->setTab(tab);
|
ui->comp_OverlayTextMessage->setTab(tab);
|
||||||
ui->comp_OverlayTextMessage->updateAtcStationsButtons();
|
ui->comp_OverlayTextMessage->updateAtcStationsButtons();
|
||||||
@@ -276,7 +285,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void COverlayMessages::showOverlayInlineTextMessage(const CCallsign &callsign)
|
void COverlayMessages::showOverlayInlineTextMessage(const CCallsign &callsign)
|
||||||
{
|
{
|
||||||
this->showOverlayInlineTextMessage(Components::TextMessagesUnicom);
|
this->showOverlayInlineTextMessage(TextMessagesUnicom);
|
||||||
ui->comp_OverlayTextMessage->showCorrespondingTab(callsign);
|
ui->comp_OverlayTextMessage->showCorrespondingTab(callsign);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,7 +331,7 @@ namespace BlackGui
|
|||||||
this->display(timeOutMs);
|
this->display(timeOutMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessages::showOverlayVariant(const BlackMisc::CVariant &variant, int timeOutMs)
|
void COverlayMessages::showOverlayVariant(const CVariant &variant, int timeOutMs)
|
||||||
{
|
{
|
||||||
if (variant.canConvert<CStatusMessageList>())
|
if (variant.canConvert<CStatusMessageList>())
|
||||||
{
|
{
|
||||||
@@ -475,6 +484,11 @@ namespace BlackGui
|
|||||||
ui->comp_OverlayTextMessage->activate(activate, activate);
|
ui->comp_OverlayTextMessage->activate(activate, activate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool COverlayMessages::isTextMessagesActivated() const
|
||||||
|
{
|
||||||
|
return ui->comp_OverlayTextMessage->isActivated();
|
||||||
|
}
|
||||||
|
|
||||||
void COverlayMessages::setModeToImage()
|
void COverlayMessages::setModeToImage()
|
||||||
{
|
{
|
||||||
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_Image);
|
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_Image);
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ namespace BlackGui
|
|||||||
//! Active send/receive of text messages
|
//! Active send/receive of text messages
|
||||||
void activateTextMessages(bool activate);
|
void activateTextMessages(bool activate);
|
||||||
|
|
||||||
|
//! Are text messages
|
||||||
|
bool isTextMessagesActivated() const;
|
||||||
|
|
||||||
//! Display image
|
//! Display image
|
||||||
void setModeToImage();
|
void setModeToImage();
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include "blackgui/overlaymessagesframe.h"
|
#include "blackgui/overlaymessagesframe.h"
|
||||||
#include "blackgui/overlaymessages.h"
|
#include "blackgui/overlaymessages.h"
|
||||||
|
#include "dockwidgetinfoarea.h"
|
||||||
#include "blackgui/stylesheetutility.h"
|
#include "blackgui/stylesheetutility.h"
|
||||||
#include "blackgui/guiutility.h"
|
#include "blackgui/guiutility.h"
|
||||||
#include "blackmisc/network/textmessage.h"
|
#include "blackmisc/network/textmessage.h"
|
||||||
@@ -29,6 +30,17 @@ namespace BlackGui
|
|||||||
COverlayMessagesFrame::COverlayMessagesFrame(QWidget *parent, Qt::WindowFlags f) : COverlayMessagesBase(parent, f)
|
COverlayMessagesFrame::COverlayMessagesFrame(QWidget *parent, Qt::WindowFlags f) : COverlayMessagesBase(parent, f)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
COverlayMessagesFrameEnableForDockWidgetInfoArea::COverlayMessagesFrameEnableForDockWidgetInfoArea(QWidget *parent, Qt::WindowFlags f) :
|
||||||
|
COverlayMessagesFrame(parent, f)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
bool COverlayMessagesFrameEnableForDockWidgetInfoArea::isForwardingOverlayMessages() const
|
||||||
|
{
|
||||||
|
if (!this->hasDockWidgetArea()) { return false; }
|
||||||
|
if (this->isParentDockWidgetFloating()) { return false; }
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
COverlayMessagesTabWidget::COverlayMessagesTabWidget(QWidget *parent) : COverlayMessagesBase(parent)
|
COverlayMessagesTabWidget::COverlayMessagesTabWidget(QWidget *parent) : COverlayMessagesBase(parent)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#define BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
#define BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
||||||
|
|
||||||
#include "blackgui/components/textmessagecomponenttab.h"
|
#include "blackgui/components/textmessagecomponenttab.h"
|
||||||
|
#include "blackgui/enablefordockwidgetinfoarea.h"
|
||||||
#include "blackgui/overlaymessages.h"
|
#include "blackgui/overlaymessages.h"
|
||||||
#include "blackgui/guiutility.h"
|
#include "blackgui/guiutility.h"
|
||||||
#include "blackgui/blackguiexport.h"
|
#include "blackgui/blackguiexport.h"
|
||||||
@@ -188,8 +189,17 @@ namespace BlackGui
|
|||||||
|
|
||||||
//! \copydoc BlackGui::COverlayMessages::showOverlayVariant
|
//! \copydoc BlackGui::COverlayMessages::showOverlayVariant
|
||||||
void showOverlayVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1)
|
void showOverlayVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1)
|
||||||
|
{
|
||||||
|
if (m_overlayMessages->isTextMessagesActivated() && variant.canConvert<BlackMisc::Network::CTextMessage>())
|
||||||
|
{
|
||||||
|
this->initInnerFrame(0.75, 0.75);
|
||||||
|
if (!this->hasMinimumSize(150, 150)) { return; }
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
this->initInnerFrame();
|
this->initInnerFrame();
|
||||||
|
}
|
||||||
|
|
||||||
m_overlayMessages->showOverlayVariant(variant, timeOutMs);
|
m_overlayMessages->showOverlayVariant(variant, timeOutMs);
|
||||||
WIDGET::repaint();
|
WIDGET::repaint();
|
||||||
}
|
}
|
||||||
@@ -373,6 +383,34 @@ namespace BlackGui
|
|||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
explicit COverlayMessagesFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
explicit COverlayMessagesFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
||||||
|
|
||||||
|
signals:
|
||||||
|
//! Request an text message entry
|
||||||
|
void requestTextMessageEntryTab(Components::TextMessageTab tab);
|
||||||
|
|
||||||
|
//! Request an text message entry
|
||||||
|
void requestTextMessageEntryCallsign(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
|
||||||
|
//! Request a text message widget
|
||||||
|
void requestTextMessageWidget(const BlackMisc::Aviation::CCallsign &callsign);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Using this class provides a QFrame with the overlay and dock widget functionality already integrated.
|
||||||
|
*/
|
||||||
|
class BLACKGUI_EXPORT COverlayMessagesFrameEnableForDockWidgetInfoArea :
|
||||||
|
public COverlayMessagesFrame,
|
||||||
|
public CEnableForDockWidgetInfoArea
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
//! Constructor
|
||||||
|
explicit COverlayMessagesFrameEnableForDockWidgetInfoArea(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
||||||
|
|
||||||
|
private:
|
||||||
|
//! Forward overlay messages
|
||||||
|
bool isForwardingOverlayMessages() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
Reference in New Issue
Block a user