Ref T322, ATC stations UI, request updated distance along with stations

This commit is contained in:
Klaus Basan
2018-09-03 13:46:57 +02:00
committed by Roland Winklmeier
parent fa3555b792
commit f07ec8c519
2 changed files with 19 additions and 12 deletions

View File

@@ -135,7 +135,7 @@ namespace BlackGui
bool CAtcStationComponent::setParentDockWidgetInfoArea(CDockWidgetInfoArea *parentDockableWidget) bool CAtcStationComponent::setParentDockWidgetInfoArea(CDockWidgetInfoArea *parentDockableWidget)
{ {
CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea(parentDockableWidget); CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea(parentDockableWidget);
bool c = connect(this->getParentInfoArea(), &CInfoArea::changedInfoAreaTabBarIndex, this, &CAtcStationComponent::infoAreaTabBarChanged); const bool c = connect(this->getParentInfoArea(), &CInfoArea::changedInfoAreaTabBarIndex, this, &CAtcStationComponent::infoAreaTabBarChanged);
Q_ASSERT_X(c, Q_FUNC_INFO, "failed connect"); Q_ASSERT_X(c, Q_FUNC_INFO, "failed connect");
Q_ASSERT_X(parentDockableWidget, Q_FUNC_INFO, "missing parent"); Q_ASSERT_X(parentDockableWidget, Q_FUNC_INFO, "missing parent");
return c && parentDockableWidget; return c && parentDockableWidget;
@@ -143,7 +143,7 @@ namespace BlackGui
void CAtcStationComponent::update() void CAtcStationComponent::update()
{ {
if (!sGui || !sGui->getIContextNetwork()) { return; } if (!this->canAccessContext()) { return; }
Q_ASSERT(ui->tvp_AtcStationsBooked); Q_ASSERT(ui->tvp_AtcStationsBooked);
Q_ASSERT(ui->tvp_AtcStationsOnline); Q_ASSERT(ui->tvp_AtcStationsOnline);
@@ -171,7 +171,7 @@ namespace BlackGui
{ {
const CAtcStationsSettings settings = m_settingsAtc.getThreadLocal(); const CAtcStationsSettings settings = m_settingsAtc.getThreadLocal();
CAtcStationList onlineStations = CAtcStationList onlineStations =
sGui->getIContextNetwork()->getAtcStationsOnline().stationsWithValidFrequency(); // alternatively: stationsWithValidVoiceRoom() sGui->getIContextNetwork()->getAtcStationsOnline(true).stationsWithValidFrequency(); // alternatively: stationsWithValidVoiceRoom()
if (settings.showOnlyInRange()) if (settings.showOnlyInRange())
{ {
@@ -204,6 +204,7 @@ namespace BlackGui
void CAtcStationComponent::getMetar(const QString &airportIcaoCode) void CAtcStationComponent::getMetar(const QString &airportIcaoCode)
{ {
if (!this->canAccessContext()) { return; }
const CAirportIcaoCode icao(airportIcaoCode.isEmpty() ? ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper()); const CAirportIcaoCode icao(airportIcaoCode.isEmpty() ? ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper());
ui->le_AtcStationsOnlineMetar->setText(icao.asString()); ui->le_AtcStationsOnlineMetar->setText(icao.asString());
if (!icao.hasValidIcaoCode()) { return; } if (!icao.hasValidIcaoCode()) { return; }
@@ -217,16 +218,15 @@ namespace BlackGui
{ {
ui->te_AtcStationsOnlineInfo->clear(); ui->te_AtcStationsOnlineInfo->clear();
} }
// ui->le_AtcStationsOnlineMetar->clear();
} }
void CAtcStationComponent::reloadAtcStationsBooked() void CAtcStationComponent::reloadAtcStationsBooked()
{ {
Q_ASSERT(ui->tvp_AtcStationsBooked); Q_ASSERT(ui->tvp_AtcStationsBooked);
Q_ASSERT(sGui && sGui->getIContextNetwork()); if (!this->canAccessContext()) { return; }
QObject *sender = QObject::sender(); QObject *sender = QObject::sender();
if (sender == ui->tvp_AtcStationsBooked && sGui->getIContextNetwork()) if (sender == ui->tvp_AtcStationsBooked)
{ {
// trigger new read, which takes some time. A signal will be received when this is done // trigger new read, which takes some time. A signal will be received when this is done
CLogMessage(this).info("Requested new bookings"); CLogMessage(this).info("Requested new bookings");
@@ -234,7 +234,7 @@ namespace BlackGui
} }
else else
{ {
ui->tvp_AtcStationsBooked->updateContainerMaybeAsync(sGui->getIContextNetwork()->getAtcStationsBooked()); ui->tvp_AtcStationsBooked->updateContainerMaybeAsync(sGui->getIContextNetwork()->getAtcStationsBooked(false));
m_timestampLastReadBookedStations = QDateTime::currentDateTimeUtc(); m_timestampLastReadBookedStations = QDateTime::currentDateTimeUtc();
} }
} }
@@ -259,7 +259,7 @@ namespace BlackGui
this->update(); this->update();
} }
void CAtcStationComponent::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus from, BlackCore::INetwork::ConnectionStatus to) void CAtcStationComponent::connectionStatusChanged(INetwork::ConnectionStatus from, INetwork::ConnectionStatus to)
{ {
Q_UNUSED(from); Q_UNUSED(from);
if (INetwork::isDisconnectedStatus(to)) if (INetwork::isDisconnectedStatus(to))
@@ -276,7 +276,7 @@ namespace BlackGui
void CAtcStationComponent::testCreateDummyOnlineAtcStations(int number) void CAtcStationComponent::testCreateDummyOnlineAtcStations(int number)
{ {
if (sGui->getIContextNetwork()) if (this->canAccessContext())
{ {
sGui->getIContextNetwork()->testCreateDummyOnlineAtcStations(number); sGui->getIContextNetwork()->testCreateDummyOnlineAtcStations(number);
} }
@@ -298,7 +298,7 @@ namespace BlackGui
const QPointer<CAtcStationComponent> myself(this); const QPointer<CAtcStationComponent> myself(this);
QTimer::singleShot(1000, this, [ = ] QTimer::singleShot(1000, this, [ = ]
{ {
if (myself.isNull()) { return; } if (!myself) { return; }
this->update(); this->update();
}); });
Q_UNUSED(index); Q_UNUSED(index);
@@ -400,5 +400,11 @@ namespace BlackGui
if (!sGui->getIContextNetwork()->isConnected()) return; if (!sGui->getIContextNetwork()->isConnected()) return;
sGui->getIContextNetwork()->requestAtisUpdates(); sGui->getIContextNetwork()->requestAtisUpdates();
} }
bool CAtcStationComponent::canAccessContext() const
{
if (!sGui || sGui->isShuttingDown() || !sGui->getIContextNetwork()) { return false; }
return true;
}
} // namespace } // namespace
} // namespace } // namespace

View File

@@ -31,8 +31,6 @@
#include <QtGlobal> #include <QtGlobal>
#include <QTimer> #include <QTimer>
class QWidget;
namespace BlackMisc { namespace Aviation { class CCallsign; } } namespace BlackMisc { namespace Aviation { class CCallsign; } }
namespace Ui { class CAtcStationComponent; } namespace Ui { class CAtcStationComponent; }
namespace BlackGui namespace BlackGui
@@ -132,6 +130,9 @@ namespace BlackGui
//! Settings have been changed //! Settings have been changed
void settingsChanged(); void settingsChanged();
//! Contexts?
bool canAccessContext() const;
QScopedPointer<Ui::CAtcStationComponent> ui; QScopedPointer<Ui::CAtcStationComponent> ui;
QTimer m_updateTimer; QTimer m_updateTimer;
QDateTime m_timestampLastReadOnlineStations; //!< stations read QDateTime m_timestampLastReadOnlineStations; //!< stations read