Ref T275, added param "ignoreSameAsGlobal" in function "setInterpolationAndRenderingSetupsPerCallsign"

This commit is contained in:
Klaus Basan
2018-06-20 00:56:14 +02:00
parent b0c54b4a9f
commit d3796fc65a
9 changed files with 24 additions and 15 deletions

View File

@@ -199,7 +199,7 @@ namespace BlackCore
virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) = 0;
//! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::setInterpolationSetupsPerCallsign
virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) = 0;
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal) = 0;
//! Time synchronization offset
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0;

View File

@@ -191,10 +191,12 @@ namespace BlackCore
}
//! \copydoc ISimulator::setInterpolationSetupPerCallsign
virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal) override
{
Q_UNUSED(setups);
Q_UNUSED(ignoreSameAsGlobal);
logEmptyContextWarning(Q_FUNC_INFO);
return false;
}
//! \copydoc IContextSimulator::getTimeSynchronizationOffset

View File

@@ -304,12 +304,12 @@ namespace BlackCore
return m_simulatorPlugin.second->getInterpolationSetupPerCallsignOrDefault(callsign);
}
void CContextSimulator::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups)
bool CContextSimulator::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups, bool ignoreSameAsGlobal)
{
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
if (m_simulatorPlugin.first.isUnspecified()) { return; }
if (m_simulatorPlugin.first.isUnspecified()) { return false; }
Q_ASSERT(m_simulatorPlugin.second);
return m_simulatorPlugin.second->setInterpolationSetupsPerCallsign(setups);
return m_simulatorPlugin.second->setInterpolationSetupsPerCallsign(setups, ignoreSameAsGlobal);
}
void CContextSimulator::setInterpolationAndRenderingSetupGlobal(const CInterpolationAndRenderingSetupGlobal &setup)

View File

@@ -93,7 +93,7 @@ namespace BlackCore
virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override;
virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const override;
virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign getInterpolationAndRenderingSetupPerCallsignOrDefault(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override;
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal) override;
virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override;
virtual BlackMisc::CPixmap iconForModel(const QString &modelString) const override;
virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override;

View File

@@ -184,9 +184,9 @@ namespace BlackCore
return m_dBusInterface->callDBusRet<CInterpolationAndRenderingSetupPerCallsign>(QLatin1String("getInterpolationAndRenderingSetupsPerCallsign"), callsign);
}
void CContextSimulatorProxy::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups)
bool CContextSimulatorProxy::setInterpolationAndRenderingSetupsPerCallsign(const CInterpolationSetupList &setups, bool ignoreSameAsGlobal)
{
m_dBusInterface->callDBus(QLatin1String("setInterpolationAndRenderingSetupsPerCallsign"), setups);
return m_dBusInterface->callDBusRet<bool>(QLatin1String("setInterpolationAndRenderingSetupsPerCallsign"), setups, ignoreSameAsGlobal);
}
void CContextSimulatorProxy::setInterpolationAndRenderingSetupGlobal(const CInterpolationAndRenderingSetupGlobal &setup)

View File

@@ -79,7 +79,7 @@ namespace BlackCore
virtual void setInterpolationAndRenderingSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override;
virtual BlackMisc::Simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const override;
virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign getInterpolationAndRenderingSetupPerCallsignOrDefault(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual void setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups) override;
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const BlackMisc::Simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal) override;
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override;
virtual BlackMisc::CPixmap iconForModel(const QString &modelString) const override;
virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override;

View File

@@ -28,16 +28,22 @@ namespace BlackMisc
return CInterpolationSetupList(setups.values());
}
void IInterpolationSetupProvider::setInterpolationSetupsPerCallsign(const CInterpolationSetupList &setups)
bool IInterpolationSetupProvider::setInterpolationSetupsPerCallsign(const CInterpolationSetupList &setups, bool ignoreSameAsGlobal)
{
const CInterpolationAndRenderingSetupGlobal gs = this->getInterpolationSetupGlobal();
SetupsPerCallsign setupsPerCs;
for (const CInterpolationAndRenderingSetupPerCallsign &setup : setups)
{
if (ignoreSameAsGlobal && setup.isEqualToGlobal(gs)) { continue; }
setupsPerCs.insert(setup.getCallsign(), setup);
}
QWriteLocker l(&m_lockSetup);
m_setups = setupsPerCs;
{
QWriteLocker l(&m_lockSetup);
if (m_setups.isEmpty() && setupsPerCs.isEmpty()) { return false; }
m_setups = setupsPerCs;
}
return true;
}
CInterpolationAndRenderingSetupGlobal IInterpolationSetupProvider::getInterpolationSetupGlobal() const
@@ -91,7 +97,8 @@ namespace BlackMisc
{
if (removeGlobalSetup)
{
if (setup.isEqualToGlobal(this->getInterpolationSetupGlobal()))
const CInterpolationAndRenderingSetupGlobal gs = this->getInterpolationSetupGlobal();
if (setup.isEqualToGlobal(gs))
{
QWriteLocker l(&m_lockSetup);
m_setups.remove(callsign);

View File

@@ -40,7 +40,7 @@ namespace BlackMisc
//! Set all setups per callsign
//! \threadsafe
virtual void setInterpolationSetupsPerCallsign(const CInterpolationSetupList &setups);
virtual bool setInterpolationSetupsPerCallsign(const CInterpolationSetupList &setups, bool ignoreSameAsGlobal = true);
//! The global setup
//! \threadsafe

View File

@@ -143,7 +143,7 @@ namespace BlackMisc
QString ISimulationEnvironmentProvider::getElevationsFoundMissedInfo() const
{
static const QString info("%1/%2 %3");
static const QString info("%1/%2 %3%");
const QPair<int, int> foundMissed = this->getElevationsFoundMissed();
const int f = foundMissed.first;
const int m = foundMissed.second;