From bb0a96749e8381b3d9af0812554f93122c448773 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 11 Nov 2016 20:42:35 +0100 Subject: [PATCH] refs #799, adjusted swift client reg. the settings updates --- src/blackgui/components/mappingcomponent.cpp | 20 ++++++++++++++++- src/blackgui/components/mappingcomponent.h | 3 +++ src/swiftguistandard/swiftguistd.cpp | 3 +-- src/swiftguistandard/swiftguistd.h | 12 +++------- src/swiftguistandard/swiftguistdinit.cpp | 23 -------------------- 5 files changed, 26 insertions(+), 35 deletions(-) diff --git a/src/blackgui/components/mappingcomponent.cpp b/src/blackgui/components/mappingcomponent.cpp index d3e2879a0..5255cfa25 100644 --- a/src/blackgui/components/mappingcomponent.cpp +++ b/src/blackgui/components/mappingcomponent.cpp @@ -70,6 +70,8 @@ namespace BlackGui ui->tvp_RenderedAircraft->setAircraftMode(CSimulatedAircraftListModel::RenderedMode); ui->tvp_RenderedAircraft->setResizeMode(CAircraftModelView::ResizingOnce); + connect(sGui->getIContextNetwork(), &IContextNetwork::connectionStatusChanged, this, &CMappingComponent::ps_connectionStatusChanged); + connect(ui->tvp_AircraftModels, &CAircraftModelView::requestUpdate, this, &CMappingComponent::ps_onModelsUpdateRequested); connect(ui->tvp_AircraftModels, &CAircraftModelView::modelDataChanged, this, &CMappingComponent::ps_onRowCountChanged); connect(ui->tvp_AircraftModels, &CAircraftModelView::clicked, this, &CMappingComponent::ps_onModelSelectedInView); @@ -386,6 +388,8 @@ namespace BlackGui void CMappingComponent::ps_markRenderedViewForUpdate() { m_missedRenderedAircraftUpdate = true; + m_updateTimer.start(); + this->ps_backgroundUpdate(); } void CMappingComponent::ps_addingRemoteAircraftFailed(const CSimulatedAircraft &aircraft, const CStatusMessage &message) @@ -445,7 +449,21 @@ namespace BlackGui void CMappingComponent::ps_settingsChanged() { const CViewUpdateSettings settings = this->m_settings.get(); - this->m_updateTimer.setInterval(settings.getAircraftUpdateTime().toMs()); + this->m_updateTimer.setInterval(settings.getRenderingUpdateTime().toMs()); + } + + void CMappingComponent::ps_connectionStatusChanged(BlackCore::INetwork::ConnectionStatus from, BlackCore::INetwork::ConnectionStatus to) + { + Q_UNUSED(from); + if (INetwork::isDisconnectedStatus(to)) + { + ui->tvp_RenderedAircraft->clear(); + this->m_updateTimer.stop(); + } + else if (INetwork::isConnectedStatus(to)) + { + this->m_updateTimer.start(); + } } } // namespace } // namespace diff --git a/src/blackgui/components/mappingcomponent.h b/src/blackgui/components/mappingcomponent.h index 18fd74d01..f0413397b 100644 --- a/src/blackgui/components/mappingcomponent.h +++ b/src/blackgui/components/mappingcomponent.h @@ -148,6 +148,9 @@ namespace BlackGui //! Settings have been changed void ps_settingsChanged(); + + //! Connection status has been changed + void ps_connectionStatusChanged(BlackCore::INetwork::ConnectionStatus from, BlackCore::INetwork::ConnectionStatus to); }; } // namespace } // namespace diff --git a/src/swiftguistandard/swiftguistd.cpp b/src/swiftguistandard/swiftguistd.cpp index 537c8ef74..05764c788 100644 --- a/src/swiftguistandard/swiftguistd.cpp +++ b/src/swiftguistandard/swiftguistd.cpp @@ -38,7 +38,6 @@ class QCloseEvent; class QEvent; class QMouseEvent; - class QWidget; namespace BlackGui @@ -327,7 +326,7 @@ void SwiftGuiStd::updateGuiStatusInformation() } // update status fields - QString s = QString("network: %1").arg(network); + const QString s = QString("network: %1").arg(network); ui->comp_InfoBarStatus->setDBusTooltip(s); } diff --git a/src/swiftguistandard/swiftguistd.h b/src/swiftguistandard/swiftguistd.h index 47cb0aa9d..2f030e1f8 100644 --- a/src/swiftguistandard/swiftguistd.h +++ b/src/swiftguistandard/swiftguistd.h @@ -105,9 +105,9 @@ private: QScopedPointer ui; // if I pass the parent, the dialog is always center over the parent QScopedPointer m_navigator{new BlackGui::Components::CNavigatorDialog()}; - bool m_init = false; - BlackGui::CManagedStatusBar m_statusBar; - BlackMisc::CLogSubscriber m_logSubscriber { this, &SwiftGuiStd::ps_displayStatusMessageInGui }; + bool m_init = false; + BlackGui::CManagedStatusBar m_statusBar; + BlackMisc::CLogSubscriber m_logSubscriber { this, &SwiftGuiStd::ps_displayStatusMessageInGui }; // contexts bool m_coreAvailable = false; @@ -169,12 +169,6 @@ private: //! \param mainPage index to be checked bool isMainPageSelected(MainPageIndex mainPage) const; - //! Start all update timers - void startUpdateTimersWhenConnected(); - - //! Stop all update timers - void stopUpdateTimersWhenDisconnected(); - //! Stop all timers //! \param disconnect also disconnect signal/slots void stopAllTimers(bool disconnectSignalSlots); diff --git a/src/swiftguistandard/swiftguistdinit.cpp b/src/swiftguistandard/swiftguistdinit.cpp index c2aea6e4b..e5cdc1573 100644 --- a/src/swiftguistandard/swiftguistdinit.cpp +++ b/src/swiftguistandard/swiftguistdinit.cpp @@ -141,9 +141,6 @@ void SwiftGuiStd::init() ui->comp_MainInfoArea->getLogComponent()->appendPlainTextToConsole(sGui->swiftVersionString()); ui->comp_MainInfoArea->getLogComponent()->appendPlainTextToConsole(CBuildConfig::compiledWithInfo()); - // update timers - this->startUpdateTimersWhenConnected(); - // do this as last statement, so it can be used as flag // whether init has been completed this->setVisible(true); @@ -205,11 +202,6 @@ void SwiftGuiStd::initGuiSignals() connect(ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedWindowsOpacity, this, &SwiftGuiStd::ps_onChangedWindowOpacity); connect(sGui, &CGuiApplication::styleSheetsChanged, this, &SwiftGuiStd::ps_onStyleSheetsChanged); - // sliders - connect(ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedUsersUpdateInterval, ui->comp_MainInfoArea->getUserComponent(), &CUserComponent::setUpdateIntervalSeconds); - connect(ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedAircraftUpdateInterval, ui->comp_MainInfoArea->getAircraftComponent(), &CAircraftComponent::setUpdateIntervalSeconds); - connect(ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedAtcStationsUpdateInterval, ui->comp_MainInfoArea->getAtcStationComponent(), &::CAtcStationComponent::setUpdateIntervalSeconds); - // login connect(ui->comp_Login, &CLoginComponent::loginOrLogoffCancelled, this, &SwiftGuiStd::ps_setMainPageToInfoArea); connect(ui->comp_Login, &CLoginComponent::loginOrLogoffSuccessful, this, &SwiftGuiStd::ps_setMainPageToInfoArea); @@ -244,24 +236,9 @@ void SwiftGuiStd::initialDataReads() CLogMessage(this).info("Initial data read"); } -void SwiftGuiStd::startUpdateTimersWhenConnected() -{ - ui->comp_MainInfoArea->getAtcStationComponent()->setUpdateIntervalSeconds(ui->comp_MainInfoArea->getSettingsComponent()->getAtcUpdateIntervalSeconds()); - ui->comp_MainInfoArea->getAircraftComponent()->setUpdateIntervalSeconds(ui->comp_MainInfoArea->getSettingsComponent()->getAircraftUpdateIntervalSeconds()); - ui->comp_MainInfoArea->getUserComponent()->setUpdateIntervalSeconds(ui->comp_MainInfoArea->getSettingsComponent()->getUsersUpdateIntervalSeconds()); -} - -void SwiftGuiStd::stopUpdateTimersWhenDisconnected() -{ - ui->comp_MainInfoArea->getAtcStationComponent()->stopTimer(); - ui->comp_MainInfoArea->getAircraftComponent()->stopTimer(); - ui->comp_MainInfoArea->getUserComponent()->stopTimer(); -} - void SwiftGuiStd::stopAllTimers(bool disconnectSignalSlots) { this->m_timerContextWatchdog->stop(); - this->stopUpdateTimersWhenDisconnected(); if (!disconnectSignalSlots) { return; } this->disconnect(this->m_timerContextWatchdog); }