mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
Reselect ATC station if data are updated, and update the ATIS info
This commit is contained in:
committed by
Mat Sutcliffe
parent
b87d0f5f15
commit
eb014639fe
@@ -241,10 +241,21 @@ namespace BlackGui
|
||||
ui->tvp_AtcStationsOnline->showOverlayHTMLMessage(msg, 5000);
|
||||
ui->tvp_AtcStationsOnlineTree->showOverlayHTMLMessage(msg, 5000);
|
||||
}
|
||||
|
||||
if (stationsCount < 1)
|
||||
{
|
||||
m_selectedCallsign.clear();
|
||||
}
|
||||
else if (!m_selectedCallsign.isEmpty() && onlineStations.containsCallsign(m_selectedCallsign))
|
||||
{
|
||||
const CAtcStation lastSelected = onlineStations.findFirstByCallsign(m_selectedCallsign);
|
||||
this->triggerOnlineAtcStationSelected(lastSelected);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_selectedCallsign.clear();
|
||||
ui->tvp_AtcStationsOnline->clear();
|
||||
this->updateTreeView();
|
||||
}
|
||||
@@ -444,6 +455,16 @@ namespace BlackGui
|
||||
this->onOnlineAtcStationSelected(station);
|
||||
}
|
||||
|
||||
void CAtcStationComponent::triggerOnlineAtcStationSelected(const CAtcStation &station)
|
||||
{
|
||||
// pass copy, not reference -> can crash
|
||||
QPointer<CAtcStationComponent> myself(this);
|
||||
QTimer::singleShot(500, this, [ = ]
|
||||
{
|
||||
if (myself) { myself->onOnlineAtcStationSelected(station); }
|
||||
});
|
||||
}
|
||||
|
||||
void CAtcStationComponent::onOnlineAtcStationSelected(const CAtcStation &station)
|
||||
{
|
||||
if (!station.hasCallsign()) { return; }
|
||||
@@ -452,6 +473,7 @@ namespace BlackGui
|
||||
(station.hasAtis() ? u"\n\n" % station.getAtis().getMessage() : QStringLiteral("")) %
|
||||
(station.hasMetar() ? u"\n\n" % station.getMetar().getMessage() : QStringLiteral(""));
|
||||
ui->te_AtcStationsOnlineInfo->setText(infoMessage);
|
||||
m_selectedCallsign = station.getCallsign();
|
||||
}
|
||||
|
||||
void CAtcStationComponent::atcStationsTabChanged()
|
||||
@@ -491,6 +513,7 @@ namespace BlackGui
|
||||
{
|
||||
ui->tvp_AtcStationsOnline->clear();
|
||||
ui->tvp_AtcStationsOnlineTree->clear();
|
||||
m_selectedCallsign.clear();
|
||||
}
|
||||
|
||||
void CAtcStationComponent::showOverlayInlineTextMessage()
|
||||
|
||||
@@ -99,12 +99,15 @@ namespace BlackGui
|
||||
//! Request new ATIS
|
||||
void requestAtisUpdates();
|
||||
|
||||
//! A tree view station has been selected
|
||||
//! A station has been selected
|
||||
void onOnlineAtcStationSelected(const BlackMisc::Aviation::CAtcStation &station);
|
||||
|
||||
//! Online ATC station selected
|
||||
void onOnlineAtcStationVariantSelected(const BlackMisc::CVariant &object);
|
||||
|
||||
//! Trigger a selection of an onlie station (async)
|
||||
void triggerOnlineAtcStationSelected(const BlackMisc::Aviation::CAtcStation &station);
|
||||
|
||||
//! Tab changed
|
||||
void atcStationsTabChanged();
|
||||
|
||||
@@ -168,6 +171,7 @@ namespace BlackGui
|
||||
QScopedPointer<Ui::CAtcStationComponent> ui;
|
||||
QTimer m_updateTimer;
|
||||
QList<int> m_stretch;
|
||||
BlackMisc::Aviation::CCallsign m_selectedCallsign;
|
||||
QDateTime m_timestampLastReadOnlineStations; //!< stations read
|
||||
QDateTime m_timestampOnlineStationsChanged; //!< stations marked as changed
|
||||
QDateTime m_timestampLastReadBookedStations; //!< stations read
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace BlackMisc
|
||||
|
||||
bool CAtcStationList::updateIfMessageChanged(const CInformationMessage &im, const CCallsign &callsign, bool overrideWithNewer)
|
||||
{
|
||||
const CInformationMessage::InformationType t = im.getType();
|
||||
const CInformationMessage::InformationType type = im.getType();
|
||||
|
||||
// for loop just to get reference
|
||||
bool unequal = false;
|
||||
@@ -66,7 +66,7 @@ namespace BlackMisc
|
||||
{
|
||||
if (station.getCallsign() != callsign) { continue; }
|
||||
|
||||
const CInformationMessage m = station.getInformationMessage(t);
|
||||
const CInformationMessage m = station.getInformationMessage(type);
|
||||
if (m.getType() == CInformationMessage::Unspecified) { break; }
|
||||
|
||||
if (m.getMessage() == im.getMessage())
|
||||
|
||||
Reference in New Issue
Block a user