refs #395, improved snapshot handling

* disabled sets distance and max.aircraft to 0
* fixed changed snapshot detection
* added rendering enabled to signal, only one function to decide (instead of duplicated logic)
This commit is contained in:
Klaus Basan
2015-05-28 04:04:28 +02:00
parent 718b10d9f6
commit d8d0eca3d8
13 changed files with 86 additions and 62 deletions

View File

@@ -157,7 +157,9 @@ namespace BlackCore
if (maxRenderedAircraft == m_maxRenderedAircraft) { return; }
if (maxRenderedAircraft < 1)
{
// disable, we set both values to 0
m_maxRenderedAircraft = 0;
m_maxRenderedDistance = CLength(0.0, CLengthUnit::NM());
}
else if (maxRenderedAircraft >= MaxAircraftInfinite)
{
@@ -169,7 +171,8 @@ namespace BlackCore
}
bool r = isRenderingRestricted();
emit renderRestrictionsChanged(r, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
bool e = isRenderingEnabled();
emit renderRestrictionsChanged(r, e, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
}
void CSimulatorCommon::setMaxRenderedDistance(CLength &distance)
@@ -179,6 +182,12 @@ namespace BlackCore
{
m_maxRenderedDistance = CLength(0.0, CLengthUnit::nullUnit());
}
else if (distance.isZeroEpsilonConsidered())
{
// zero means disabled, we disable max aircraft too
this->m_maxRenderedAircraft = 0;
this->m_maxRenderedDistance = CLength(0.0, CLengthUnit::NM());
}
else
{
Q_ASSERT(!distance.isNegativeWithEpsilonConsidered());
@@ -186,7 +195,8 @@ namespace BlackCore
}
bool r = isRenderingRestricted();
emit renderRestrictionsChanged(r, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
bool e = isRenderingEnabled();
emit renderRestrictionsChanged(r, e, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
}
CLength CSimulatorCommon::getMaxRenderedDistance() const
@@ -273,7 +283,7 @@ namespace BlackCore
{
this->m_maxRenderedDistance = CLength(0, CLengthUnit::nullUnit());
this->m_maxRenderedAircraft = MaxAircraftInfinite;
emit renderRestrictionsChanged(false, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
emit renderRestrictionsChanged(false, true, getMaxRenderedAircraft(), getMaxRenderedDistance(), getRenderedDistanceBoundary());
}
int CSimulatorCommon::physicallyRemoveMultipleRemoteAircraft(const CCallsignSet &callsigns)