mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-08-11 04:05:38 +08:00
refs #196, encapsulated transponder mode selection (combo box)
* promoted QComboBox in GUI * features automatic reset for ident * Conversion to CTransponder::TransponderMode from string
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "blackcore/context_application.h"
|
||||
#include "blackcore/context_simulator.h"
|
||||
#include "blackcore/coreruntime.h"
|
||||
#include "blackgui/transpondermodeselector.h"
|
||||
#include "blackgui/atcstationlistmodel.h"
|
||||
#include "blackgui/serverlistmodel.h"
|
||||
#include "blackgui/aircraftlistmodel.h"
|
||||
|
||||
@@ -454,7 +454,7 @@ QStatusBar QLabel {
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>7</number>
|
||||
<number>4</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="pg_StatusPage">
|
||||
<property name="sizePolicy">
|
||||
@@ -1388,7 +1388,7 @@ QStatusBar QLabel {
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QComboBox" name="cb_CockpitTransponderMode">
|
||||
<widget class="BlackGui::CTransponderModeSelector" name="cbp_CockpitTransponderMode">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -1401,21 +1401,6 @@ QStatusBar QLabel {
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>S</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>C</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>I</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
@@ -1800,7 +1785,7 @@ QStatusBar QLabel {
|
||||
<item>
|
||||
<widget class="QTabWidget" name="Simulator">
|
||||
<property name="currentIndex">
|
||||
<number>3</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tb_SettingsTrafficNetwork">
|
||||
<attribute name="title">
|
||||
@@ -3195,6 +3180,13 @@ QStatusBar QLabel {
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>BlackGui::CTransponderModeSelector</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>blackgui/transpondermodeselector.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>cb_StatusWithDBus</tabstop>
|
||||
<tabstop>le_StatusNetworkContext</tabstop>
|
||||
@@ -3223,7 +3215,7 @@ QStatusBar QLabel {
|
||||
<tabstop>cb_CockpitSelcal1</tabstop>
|
||||
<tabstop>cb_CockpitSelcal2</tabstop>
|
||||
<tabstop>ds_CockpitTransponder</tabstop>
|
||||
<tabstop>cb_CockpitTransponderMode</tabstop>
|
||||
<tabstop>cbp_CockpitTransponderMode</tabstop>
|
||||
<tabstop>le_CockpitVoiceRoomCom1</tabstop>
|
||||
<tabstop>cb_CockpitVoiceRoom1Override</tabstop>
|
||||
<tabstop>le_CockpitVoiceRoomCom2</tabstop>
|
||||
|
||||
@@ -42,15 +42,15 @@ void MainWindow::cockpitValuesChanged()
|
||||
else if (sender == this->ui->pb_CockpitIdent)
|
||||
{
|
||||
// trigger the real button
|
||||
if (this->ui->cb_CockpitTransponderMode->currentText() == "I")
|
||||
if (this->ui->cbp_CockpitTransponderMode->isIdentSelected())
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("");
|
||||
this->resetTransponderMode();
|
||||
this->ui->cbp_CockpitTransponderMode->resetTransponderMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("background: red");
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("I"); // trigger real button and whole process
|
||||
this->ui->cbp_CockpitTransponderMode->setSelectedTransponderModeStateIdent(); // trigger real button and whole process
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -92,25 +92,7 @@ void MainWindow::updateCockpitFromContext()
|
||||
this->ui->ds_CockpitTransponder->setValue(tc);
|
||||
}
|
||||
|
||||
QString tm = this->ui->cb_CockpitTransponderMode->currentText().trimmed().toUpper();
|
||||
switch (transponder.getTransponderMode())
|
||||
{
|
||||
case CTransponder::StateStandby:
|
||||
case CTransponder::ModeS:
|
||||
if (tm != "S")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("S");
|
||||
break;
|
||||
case CTransponder::ModeC:
|
||||
if (tm != "C")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("C");
|
||||
break;
|
||||
case CTransponder::StateIdent:
|
||||
if (tm != "I")
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText("I");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this->ui->cbp_CockpitTransponderMode->setSelectedTransponderMode(transponder.getTransponderMode());
|
||||
|
||||
if (this->m_contextNetworkAvailable)
|
||||
{
|
||||
@@ -228,11 +210,6 @@ void MainWindow::updateComFrequencyDisplays(const CComSystem &com1, const CComSy
|
||||
void MainWindow::resetTransponderMode()
|
||||
{
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("");
|
||||
if (this->ui->cb_CockpitTransponderMode->currentText() == "I")
|
||||
{
|
||||
// only reset if still "I"
|
||||
this->ui->cb_CockpitTransponderMode->setCurrentText(this->m_transponderResetValue);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -258,25 +235,11 @@ void MainWindow::sendCockpitUpdates()
|
||||
this->ui->ds_CockpitTransponder->setValue(transponder.getTransponderCode());
|
||||
}
|
||||
|
||||
QString tm = this->ui->cb_CockpitTransponderMode->currentText().toUpper();
|
||||
if (tm == "S")
|
||||
transponder.setTransponderMode(CTransponder::ModeS);
|
||||
else if (tm == "C")
|
||||
transponder.setTransponderMode(CTransponder::ModeC);
|
||||
else if (tm == "I")
|
||||
transponder.setTransponderMode(this->ui->cbp_CockpitTransponderMode->getSelectedTransponderMode());
|
||||
if (this->ui->cbp_CockpitTransponderMode->isIdentSelected())
|
||||
{
|
||||
// ident shall be sent for some time, then reset
|
||||
transponder.setTransponderMode(CTransponder::StateIdent);
|
||||
this->ui->pb_CockpitIdent->setStyleSheet("background: red");
|
||||
if (this->m_ownAircraft.getTransponderMode() == CTransponder::ModeS)
|
||||
{
|
||||
this->m_transponderResetValue = "S";
|
||||
}
|
||||
else
|
||||
{
|
||||
this->m_transponderResetValue = "C";
|
||||
}
|
||||
QTimer::singleShot(5000, this, SLOT(resetTransponderMode()));
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -317,7 +317,7 @@ void MainWindow::initGuiSignals()
|
||||
this->connect(this->ui->le_CommandLineInput, &QLineEdit::returnPressed, this, &MainWindow::commandEntered);
|
||||
|
||||
// cockpit
|
||||
connected = this->connect(this->ui->cb_CockpitTransponderMode, SIGNAL(currentIndexChanged(QString)), this, SLOT(cockpitValuesChanged()));
|
||||
connected = this->connect(this->ui->cbp_CockpitTransponderMode, SIGNAL(currentIndexChanged(QString)), this, SLOT(cockpitValuesChanged()));
|
||||
Q_ASSERT(connected);
|
||||
this->connect(this->ui->ds_CockpitCom1Active, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->ds_CockpitCom2Active, &QDoubleSpinBox::editingFinished, this, &MainWindow::cockpitValuesChanged);
|
||||
@@ -333,6 +333,7 @@ void MainWindow::initGuiSignals()
|
||||
this->connect(this->ui->pb_CockpitToggleCom2, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->pb_CockpitIdent, &QPushButton::clicked, this, &MainWindow::cockpitValuesChanged);
|
||||
this->connect(this->ui->pb_CockpitSelcalTest, &QPushButton::clicked, this, &MainWindow::testSelcal);
|
||||
this->connect(this->ui->cbp_CockpitTransponderMode, &CTransponderModeSelector::identEnded, this, &MainWindow::resetTransponderMode);
|
||||
this->connect(qApp, &QApplication::focusChanged, this, &MainWindow::inputFocusChanged);
|
||||
|
||||
// voice
|
||||
|
||||
Reference in New Issue
Block a user