mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
refs #471, overlay widget for text messages and variant
This commit is contained in:
committed by
Mathew Sutcliffe
parent
134a725002
commit
4804d81857
@@ -12,6 +12,8 @@
|
||||
#include "ui_overlaymessages.h"
|
||||
#include <QKeyEvent>
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Network;
|
||||
using namespace BlackGui::Models;
|
||||
|
||||
namespace BlackGui
|
||||
@@ -73,6 +75,37 @@ namespace BlackGui
|
||||
this->display(timeOutMs);
|
||||
}
|
||||
|
||||
void COverlayMessages::showTextMessage(const CTextMessage &textMessage, int timeOutMs)
|
||||
{
|
||||
if (textMessage.isEmpty()) { return; }
|
||||
this->setModeToTextMessage();
|
||||
|
||||
// message and display
|
||||
this->ui->le_TmFrom->setText(textMessage.getSenderCallsign().asString());
|
||||
this->ui->le_TmTo->setText(textMessage.getRecipientCallsign().asString());
|
||||
this->ui->le_TmReceived->setText(textMessage.getFormattedUtcTimestampHms());
|
||||
this->ui->te_TmText->setText(textMessage.getMessage());
|
||||
|
||||
this->display(timeOutMs);
|
||||
}
|
||||
|
||||
void COverlayMessages::showVariant(const BlackMisc::CVariant &variant, int timeOutMs)
|
||||
{
|
||||
if (variant.canConvert<CStatusMessageList>())
|
||||
{
|
||||
showMessages(variant.value<CStatusMessageList>(), timeOutMs);
|
||||
}
|
||||
else if (variant.canConvert<CStatusMessage>())
|
||||
{
|
||||
showMessage(variant.value<CStatusMessage>(), timeOutMs);
|
||||
}
|
||||
else if (variant.canConvert<CTextMessage>())
|
||||
{
|
||||
showTextMessage(variant.value<CTextMessage>(), timeOutMs);
|
||||
}
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "Unsupported type");
|
||||
}
|
||||
|
||||
void COverlayMessages::setModeToMessages()
|
||||
{
|
||||
this->ui->sw_StatusMessagesComponent->setCurrentWidget(this->ui->pg_StatusMessages);
|
||||
@@ -85,6 +118,12 @@ namespace BlackGui
|
||||
this->setHeader("Message");
|
||||
}
|
||||
|
||||
void COverlayMessages::setModeToTextMessage()
|
||||
{
|
||||
this->ui->sw_StatusMessagesComponent->setCurrentWidget(this->ui->pg_TextMessage);
|
||||
this->setHeader("Text message");
|
||||
}
|
||||
|
||||
void COverlayMessages::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if (event->key() == Qt::Key_Escape)
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
#ifndef BLACKGUI_OVERLAYMESSAGES_H
|
||||
#define BLACKGUI_OVERLAYMESSAGES_H
|
||||
|
||||
#include "blackmisc/network/textmessage.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
#include "blackmisc/variant.h"
|
||||
#include <QFrame>
|
||||
#include <QScopedPointer>
|
||||
#include <QTimer>
|
||||
@@ -44,12 +46,21 @@ namespace BlackGui
|
||||
//! Show single message
|
||||
void showMessage(const BlackMisc::CStatusMessage &message, int timeOutMs = -1);
|
||||
|
||||
//! Info message, based on text message
|
||||
void showTextMessage(const BlackMisc::Network::CTextMessage &textMessage, int timeOutMs = -1);
|
||||
|
||||
//! Display one of the supported types
|
||||
void showVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1);
|
||||
|
||||
//! Messages mode
|
||||
void setModeToMessages();
|
||||
|
||||
//! Single Message mode
|
||||
void setModeToMessage();
|
||||
|
||||
//! Single Text message mode
|
||||
void setModeToTextMessage();
|
||||
|
||||
//! Set header text
|
||||
void setHeaderText(const QString &header);
|
||||
|
||||
@@ -70,7 +81,7 @@ namespace BlackGui
|
||||
private:
|
||||
QScopedPointer<Ui::COverlayMessages> ui;
|
||||
QString m_header;
|
||||
QTimer m_autoCloseTimer { this };
|
||||
QTimer m_autoCloseTimer { this };
|
||||
|
||||
//! Init widget
|
||||
void init(int w, int h);
|
||||
|
||||
@@ -174,6 +174,70 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="pg_TextMessage">
|
||||
<layout class="QVBoxLayout" name="vl_TextMessage">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gl_TextMessage">
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="lbl_TmTo">
|
||||
<property name="text">
|
||||
<string>To</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_Receiver">
|
||||
<property name="text">
|
||||
<string>Received</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="le_TmReceived"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_TmFrom">
|
||||
<property name="text">
|
||||
<string>From</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLineEdit" name="le_TmTo">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="le_TmFrom">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="3">
|
||||
<widget class="QTextEdit" name="te_TmText"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
Reference in New Issue
Block a user