Avoid redundant update of model set ui

* added changed simulator in signal
* only changed once when cache changed
This commit is contained in:
Klaus Basan
2018-03-19 20:46:08 +01:00
parent 3b9a732fff
commit 07589e8219
5 changed files with 12 additions and 10 deletions

View File

@@ -95,7 +95,7 @@ namespace BlackCore
void renderRestrictionsChanged(bool restricted, bool enabled, int maxAircraft, const BlackMisc::PhysicalQuantities::CLength &maxRenderedDistance); void renderRestrictionsChanged(bool restricted, bool enabled, int maxAircraft, const BlackMisc::PhysicalQuantities::CLength &maxRenderedDistance);
//! Model set ready or changed //! Model set ready or changed
void modelSetChanged(); void modelSetChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator);
//! A single model has been matched for given aircraft //! A single model has been matched for given aircraft
void modelMatchingCompleted(const BlackMisc::Simulation::CSimulatedAircraft &aircraft); void modelMatchingCompleted(const BlackMisc::Simulation::CSimulatedAircraft &aircraft);

View File

@@ -68,7 +68,8 @@ namespace BlackCore
this->restoreSimulatorPlugins(); this->restoreSimulatorPlugins();
connect(&m_weatherManager, &CWeatherManager::weatherGridReceived, this, &CContextSimulator::weatherGridReceived); connect(&m_weatherManager, &CWeatherManager::weatherGridReceived, this, &CContextSimulator::weatherGridReceived);
connect(&m_modelSetLoader, &CAircraftModelSetLoader::simulatorChanged, this, &CContextSimulator::modelSetChanged); // seems to be redundant, as changed sim will cause changed cache
// connect(&m_modelSetLoader, &CAircraftModelSetLoader::simulatorChanged, this, &CDigestSignal::modelSetChanged);
connect(&m_modelSetLoader, &CAircraftModelSetLoader::cacheChanged, this, &CContextSimulator::modelSetChanged); connect(&m_modelSetLoader, &CAircraftModelSetLoader::cacheChanged, this, &CContextSimulator::modelSetChanged);
// deferred init of last model set, if no other data are set in meantime // deferred init of last model set, if no other data are set in meantime
@@ -534,7 +535,7 @@ namespace BlackCore
void CContextSimulator::onModelSetChanged(const CSimulatorInfo &simulator) void CContextSimulator::onModelSetChanged(const CSimulatorInfo &simulator)
{ {
Q_UNUSED(simulator); Q_UNUSED(simulator);
emit this->modelSetChanged(); emit this->modelSetChanged(simulator);
} }
void CContextSimulator::xCtxTextMessagesReceived(const Network::CTextMessageList &textMessages) void CContextSimulator::xCtxTextMessagesReceived(const Network::CTextMessageList &textMessages)

View File

@@ -51,7 +51,7 @@ namespace BlackCore
"simulatorStatusChanged", this, SIGNAL(simulatorStatusChanged(int))); "simulatorStatusChanged", this, SIGNAL(simulatorStatusChanged(int)));
Q_ASSERT(s); Q_ASSERT(s);
s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(), s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(),
"modelSetChanged", this, SIGNAL(modelSetChanged())); "modelSetChanged", this, SIGNAL(modelSetChanged(BlackMisc::Simulation::CSimulatorInfo)));
Q_ASSERT(s); Q_ASSERT(s);
s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(), s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(),
"ownAircraftModelChanged", this, SIGNAL(ownAircraftModelChanged(BlackMisc::Simulation::CAircraftModel))); "ownAircraftModelChanged", this, SIGNAL(ownAircraftModelChanged(BlackMisc::Simulation::CAircraftModel)));

View File

@@ -143,8 +143,9 @@ namespace BlackGui
connect(ui->tvp_RenderedAircraft, &CAircraftModelView::objectChanged, this, &CMappingComponent::onChangedSimulatedAircraftInView); connect(ui->tvp_RenderedAircraft, &CAircraftModelView::objectChanged, this, &CMappingComponent::onChangedSimulatedAircraftInView);
// with external core models might be already available // with external core models might be already available
this->onModelSetSimulatorChanged(ui->comp_SimulatorSelector->getValue()); const CSimulatorInfo sim(ui->comp_SimulatorSelector->getValue());
this->onModelSetChanged(); this->onModelSetSimulatorChanged(sim);
this->onModelSetChanged(sim);
} }
CMappingComponent::~CMappingComponent() CMappingComponent::~CMappingComponent()
@@ -168,7 +169,7 @@ namespace BlackGui
return ui->tvp_AircraftModels->container().findModelsStartingWith(modelName, cs); return ui->tvp_AircraftModels->container().findModelsStartingWith(modelName, cs);
} }
void CMappingComponent::onModelSetChanged() void CMappingComponent::onModelSetChanged(const CSimulatorInfo &simulator)
{ {
if (ui->tvp_AircraftModels->displayAutomatically()) if (ui->tvp_AircraftModels->displayAutomatically())
{ {
@@ -176,7 +177,7 @@ namespace BlackGui
} }
else else
{ {
CLogMessage(this).info("Models loaded, you can update the model view"); CLogMessage(this).info("Model set loaded ('%1'), you can update the model view") << simulator.toQString(true);
} }
// change completer // change completer

View File

@@ -79,9 +79,9 @@ namespace BlackGui
private: private:
//! Aircraft models available //! Aircraft models available
void onModelSetChanged(); void onModelSetChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator);
//! Changed count //! Changed count of rendered or aircraft model count
void onRowCountChanged(int count, bool withFilter); void onRowCountChanged(int count, bool withFilter);
//! Simulated aircraft did change in view //! Simulated aircraft did change in view