mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
[UI] Focus in text message entry field if a text message tab is requested
* requested by AF * added signals/slots * foucs functions
This commit is contained in:
committed by
Mat Sutcliffe
parent
03afc8968a
commit
1deeaf39e8
@@ -107,14 +107,19 @@ namespace BlackGui
|
||||
if (pb) { pb->setChecked(true); }
|
||||
}
|
||||
|
||||
Q_UNUSED(dockedIndexes);
|
||||
Q_UNUSED(dockedIndexes)
|
||||
}
|
||||
|
||||
void CMainKeypadAreaComponent::focusInEntryField()
|
||||
{
|
||||
ui->lep_CommandLineInput->setFocus();
|
||||
}
|
||||
|
||||
void CMainKeypadAreaComponent::buttonSelected()
|
||||
{
|
||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
||||
QPushButton *senderButton = static_cast<QPushButton *>(QObject::sender());
|
||||
Q_ASSERT_X(senderButton, Q_FUNC_INFO, "No sender button");
|
||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
||||
if (!senderButton) { return; }
|
||||
const CMainInfoAreaComponent::InfoArea infoArea = buttonToMainInfoArea(senderButton);
|
||||
if (infoArea != CMainInfoAreaComponent::InfoAreaNone)
|
||||
@@ -157,7 +162,7 @@ namespace BlackGui
|
||||
|
||||
void CMainKeypadAreaComponent::connectionStatusChanged(const CConnectionStatus &from, const CConnectionStatus &to)
|
||||
{
|
||||
Q_UNUSED(from);
|
||||
Q_UNUSED(from)
|
||||
|
||||
// Connected button
|
||||
if (to.isConnected())
|
||||
|
||||
@@ -46,6 +46,9 @@ namespace BlackGui
|
||||
//! Main info area changed
|
||||
void onMainInfoAreaChanged(int currentTabIndex, QList<int> dockedIndexes, QList<int> floatingIndexes);
|
||||
|
||||
//! Focus in entry fields
|
||||
void focusInEntryField();
|
||||
|
||||
signals:
|
||||
//! Button to select main info area has been pressed
|
||||
//! \sa CMainInfoAreaComponent
|
||||
|
||||
@@ -795,6 +795,8 @@ namespace BlackGui
|
||||
|
||||
// force display
|
||||
if (!m_usedAsOverlayWidget) { this->displayMyself(); }
|
||||
|
||||
emit this->textMessageTabSelected();
|
||||
}
|
||||
|
||||
void CTextMessageComponent::showCorrespondingTabForFrequency(const CFrequency &frequency)
|
||||
@@ -822,12 +824,14 @@ namespace BlackGui
|
||||
// set via widget, as ALL can be removed
|
||||
switch (tab)
|
||||
{
|
||||
case TextMessagesAll : ui->tw_TextMessages->setCurrentWidget(ui->tb_TextMessagesAll); break;
|
||||
case TextMessagesAll : ui->tw_TextMessages->setCurrentWidget(ui->tb_TextMessagesAll); break;
|
||||
case TextMessagesCom1: ui->tw_TextMessages->setCurrentWidget(ui->tb_TextMessagesCOM1); break;
|
||||
case TextMessagesCom2: ui->tw_TextMessages->setCurrentWidget(ui->tb_TextMessagesCOM2); break;
|
||||
case TextMessagesUnicom: ui->tw_TextMessages->setCurrentWidget(ui->tb_TextMessagesUnicom); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
emit this->textMessageTabSelected();
|
||||
}
|
||||
|
||||
void CTextMessageComponent::setAtcButtonsRowsColumns(int rows, int cols, bool setMaxElements)
|
||||
|
||||
@@ -118,6 +118,9 @@ namespace BlackGui
|
||||
//! Command line was entered
|
||||
void commandEntered(const QString &commandLine, const BlackMisc::CIdentifier &originator);
|
||||
|
||||
//! Text message tab selected
|
||||
void textMessageTabSelected();
|
||||
|
||||
private:
|
||||
QScopedPointer<Ui::CTextMessageComponent> ui;
|
||||
BlackMisc::CIdentifier m_identifier { "TextMessageComponent", this };
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "blackgui/components/logindialog.h"
|
||||
#include "blackgui/components/modelbrowserdialog.h"
|
||||
#include "blackgui/components/settingscomponent.h"
|
||||
#include "blackgui/components/textmessagecomponent.h"
|
||||
#include "blackgui/guiapplication.h"
|
||||
#include "blackgui/guiutility.h"
|
||||
#include "blackgui/overlaymessagesframe.h"
|
||||
@@ -442,6 +443,25 @@ void SwiftGuiStd::onRequestedConsoleMessage(const QString &logMsg, bool clear)
|
||||
log->appendPlainTextToConsole(logMsg);
|
||||
}
|
||||
|
||||
void SwiftGuiStd::focusInMainEntryField()
|
||||
{
|
||||
ui->comp_MainKeypadArea->focusInEntryField();
|
||||
}
|
||||
|
||||
void SwiftGuiStd::focusInTextMessageEntryField()
|
||||
{
|
||||
if (!ui->comp_MainInfoArea->getTextMessageComponent()) { return; }
|
||||
if (ui->comp_MainInfoArea->getTextMessageComponent()->isParentDockWidgetFloating())
|
||||
{
|
||||
ui->comp_MainInfoArea->getTextMessageComponent()->activateWindow();
|
||||
ui->comp_MainInfoArea->getTextMessageComponent()->focusTextEntry();
|
||||
}
|
||||
else
|
||||
{
|
||||
this->focusInMainEntryField();
|
||||
}
|
||||
}
|
||||
|
||||
void SwiftGuiStd::showMinimized()
|
||||
{
|
||||
this->showMinimizedModeChecked();
|
||||
|
||||
@@ -281,6 +281,12 @@ private:
|
||||
//! UI Console message has been recevied
|
||||
void onRequestedConsoleMessage(const QString &logMsg, bool clear);
|
||||
|
||||
//! Focus in main entry window
|
||||
void focusInMainEntryField();
|
||||
|
||||
//! Focus in the text message entry field
|
||||
void focusInTextMessageEntryField();
|
||||
|
||||
//! Show window minimized
|
||||
void showMinimized();
|
||||
|
||||
|
||||
@@ -208,10 +208,13 @@ void SwiftGuiStd::initGuiSignals()
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::connectPressed, this, &SwiftGuiStd::loginRequested);
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::changedOpacity, this, &SwiftGuiStd::onChangedWindowOpacity);
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::identPressed, ui->comp_MainInfoArea->getCockpitComponent(), &CCockpitComponent::setSelectedTransponderModeStateIdent);
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::textEntered, ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::handleGlobalCommandLineText);
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::textEntered, ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::handleGlobalCommandLineText);
|
||||
connect(ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::audioPressed, ui->comp_MainInfoArea, &CMainInfoAreaComponent::selectAudioTab);
|
||||
connect(ui->comp_MainInfoArea, &CMainInfoAreaComponent::changedInfoAreaStatus, ui->comp_MainKeypadArea, &CMainKeypadAreaComponent::onMainInfoAreaChanged);
|
||||
|
||||
// text component
|
||||
connect(ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::textMessageTabSelected, this, &SwiftGuiStd::focusInTextMessageEntryField, Qt::QueuedConnection);
|
||||
|
||||
// audio
|
||||
connect(ui->comp_MainInfoArea->getAtcStationComponent(), &CAtcStationComponent::requestAudioWidget, ui->comp_MainInfoArea, &CMainInfoAreaComponent::selectAudioTab);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user