From 7e70662a2987c06eef8f7906e3ec796005004583 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 2 Feb 2017 01:15:46 +0100 Subject: [PATCH] refs #873, changed signal for selector in internal component --- src/blackgui/components/internalscomponent.cpp | 7 +++++++ src/blackgui/components/internalscomponent.h | 3 +++ src/blackgui/components/remoteaircraftselector.cpp | 9 ++++++++- src/blackgui/components/remoteaircraftselector.h | 12 ++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/blackgui/components/internalscomponent.cpp b/src/blackgui/components/internalscomponent.cpp index 77352da13..ab3c36000 100644 --- a/src/blackgui/components/internalscomponent.cpp +++ b/src/blackgui/components/internalscomponent.cpp @@ -86,6 +86,8 @@ namespace BlackGui connect(ui->pb_LatestPartsLog, &QPushButton::pressed, this, &CInternalsComponent::ps_showLogFiles); connect(ui->pb_RequestFromNetwork, &QPushButton::pressed, this, &CInternalsComponent::ps_requestPartsFromNetwork); + connect(ui->comp_RemoteAircraftSelector, &CRemoteAircraftSelector::changedCallsign, this, &CInternalsComponent::ps_selectorChanged); + contextFlagsToGui(); } @@ -312,6 +314,11 @@ namespace BlackGui }); } + void CInternalsComponent::ps_selectorChanged() + { + this->ps_setCurrentParts(); + } + CAircraftParts CInternalsComponent::guiToAircraftParts() const { const CAircraftLights lights( diff --git a/src/blackgui/components/internalscomponent.h b/src/blackgui/components/internalscomponent.h index 9a35b6096..588bed689 100644 --- a/src/blackgui/components/internalscomponent.h +++ b/src/blackgui/components/internalscomponent.h @@ -75,6 +75,9 @@ namespace BlackGui //! Request parts (aka aircraft config) from network void ps_requestPartsFromNetwork(); + //! Selector has been changed + void ps_selectorChanged(); + private: QScopedPointer ui; diff --git a/src/blackgui/components/remoteaircraftselector.cpp b/src/blackgui/components/remoteaircraftselector.cpp index a4e44b3cf..06c09cb55 100644 --- a/src/blackgui/components/remoteaircraftselector.cpp +++ b/src/blackgui/components/remoteaircraftselector.cpp @@ -41,6 +41,7 @@ namespace BlackGui Q_ASSERT(s); s = connect(sGui->getIContextNetwork(), &IContextNetwork::addedAircraft, this, &CRemoteAircraftSelector::ps_onAddedAircraft); Q_ASSERT(s); + s = connect(ui->cb_RemoteAircraftSelector, &QComboBox::currentTextChanged, this, &CRemoteAircraftSelector::ps_comboBoxChanged); Q_UNUSED(s); } @@ -83,6 +84,13 @@ namespace BlackGui } } + void CRemoteAircraftSelector::ps_comboBoxChanged(const QString &text) + { + if (this->m_currentText == text) { return; } + this->m_currentText = text; + emit this->changedCallsign(); + } + void CRemoteAircraftSelector::fillComboBox() { if (!this->isVisible()) { return; } // for performance reasons @@ -127,6 +135,5 @@ namespace BlackGui ui->cb_RemoteAircraftSelector->setCurrentIndex(index); } } - } // namespace } // namespace diff --git a/src/blackgui/components/remoteaircraftselector.h b/src/blackgui/components/remoteaircraftselector.h index 8c6b2fc14..18361a534 100644 --- a/src/blackgui/components/remoteaircraftselector.h +++ b/src/blackgui/components/remoteaircraftselector.h @@ -47,6 +47,10 @@ namespace BlackGui //! Indicate if aircraft parts enabled aircraft void indicatePartsEnabled(bool indicate); + signals: + //! Callsign changed + void changedCallsign(); + protected: //! \copydoc QWidget::showEvent virtual void showEvent(QShowEvent *event) override; @@ -58,15 +62,19 @@ namespace BlackGui //! IContextNetwork::removedAircraft void ps_onRemovedAircraft(const BlackMisc::Aviation::CCallsign &callsign); + //! Combo box has been changed + void ps_comboBoxChanged(const QString &text); + private: QScopedPointer ui; - BlackMisc::Simulation::CSimulatedAircraftList m_aircraft; + + QString m_currentText; bool m_showPartsEnabled = false; + BlackMisc::Simulation::CSimulatedAircraftList m_aircraft; //! Set combobox items void fillComboBox(); }; - } // namespace } // namespace