Ref T506, allow to init overlay messages, passivate text messages, improved tab widget selection

This commit is contained in:
Klaus Basan
2019-01-06 11:19:43 +01:00
committed by Mat Sutcliffe
parent 419f8c0907
commit f6ce579f67
5 changed files with 102 additions and 17 deletions

View File

@@ -152,6 +152,14 @@ namespace BlackGui
}
}
void CTextMessageComponent::selectTabWidget(const CCallsign &callsign, bool addIfNotExisting)
{
QWidget *tab = this->findTextMessageTabByCallsign(callsign);
if (!tab && addIfNotExisting) { tab = this->addNewTextMessageTab(callsign); }
if (!tab) { return; }
ui->tw_TextMessages->setCurrentWidget(tab);
}
bool CTextMessageComponent::isCloseableTab(const QWidget *tabWidget) const
{
if (!tabWidget) { return false; }
@@ -601,11 +609,13 @@ namespace BlackGui
void CTextMessageComponent::onTextMessageReceived(const CTextMessageList &messages)
{
if (!m_activeReceive) { return; }
this->displayTextMessage(messages);
}
void CTextMessageComponent::onTextMessageSent(const CTextMessage &sentMessage)
{
if (!m_activeSend) { return; }
this->displayTextMessage(sentMessage);
}
@@ -644,7 +654,9 @@ namespace BlackGui
}
if (!w) { return; }
ui->tw_TextMessages->setCurrentWidget(w);
this->displayMyself();
// force display
if (!m_usedAsOverlayWidget) { this->displayMyself(); }
}
void CTextMessageComponent::fontSizeMinus()

View File

@@ -87,6 +87,12 @@ namespace BlackGui
//! Used as overlay and not dock widget
void setAsUsedInOverlayMode() { m_usedAsOverlayWidget = true; }
//! Ignore incoming send/receive signals
void activate(bool send, bool receive) { m_activeSend = send; m_activeReceive = receive; }
//! Text activated
bool isActivated() const { return m_activeSend && m_activeReceive; }
//! Rows/columns
void setAtcButtonsRowsColumns(int rows, int cols, bool setMaxElements);
@@ -107,8 +113,10 @@ namespace BlackGui
QScopedPointer<Ui::CTextMessageComponent> ui;
BlackMisc::CIdentifier m_identifier { "TextMessageComponent", this };
BlackMisc::CSetting<Settings::TextMessageSettings> m_messageSettings { this, &CTextMessageComponent::onSettingsChanged };
BlackMisc::CSetting<BlackMisc::Audio::TSettings> m_audioSettings { this };
BlackMisc::CSetting<BlackMisc::Audio::TSettings> m_audioSettings { this };
bool m_usedAsOverlayWidget = false; //!< disables dockwidget parts if used as overlay widget
bool m_activeSend = true; //!< ignore sent callback
bool m_activeReceive = true; //!< ignore received messages
//! Enum to widget
QWidget *getTabWidget(TextMessageTab tab) const;
@@ -119,6 +127,9 @@ namespace BlackGui
//! Select given tab
void selectTabWidget(TextMessageTab tab);
//! Select tab by callsign (for private messages)
void selectTabWidget(const BlackMisc::Aviation::CCallsign &callsign, bool addIfNotExisting);
//! Is that a closeable tab (one the user can close)
bool isCloseableTab(const QWidget *tabWidget) const;