Add m_customTickRateMs to new settings API

The value is verified before saving and loading. It is the
responsibility of the function calling the settings API to verify data.
This commit is contained in:
Vasily
2019-12-10 08:28:41 +01:00
committed by username223
parent 87bf59fd31
commit 31982c54bf
4 changed files with 27 additions and 47 deletions
+22 -46
View File
@@ -278,28 +278,6 @@ OverlayController::OverlayController( bool desktopMode,
return obj; return obj;
} ); } );
// Keep the settings for vsyncDisabled and crash recovery here in main
// overlaycontroller
appSettings()->beginGroup( "applicationSettings" );
auto value = appSettings()->value( "customTickRateMs", m_customTickRateMs );
if ( value.isValid() && !value.isNull() )
{
// keep sane tickrate (between 1~k_maxCustomTickRate)
if ( value.toInt() < 1 )
{
m_customTickRateMs = 1;
}
else if ( value.toInt() > k_maxCustomTickRate )
{
m_customTickRateMs = k_maxCustomTickRate;
}
else
{
m_customTickRateMs = value.toInt();
}
}
appSettings()->endGroup();
// Grab local version number // Grab local version number
QStringList verNumericalString QStringList verNumericalString
= QString( application_strings::applicationVersionString ).split( "-" ); = QString( application_strings::applicationVersionString ).split( "-" );
@@ -835,38 +813,36 @@ void OverlayController::setPreviousShutdownSafe( bool value )
settings::BoolSetting::APPLICATION_previousShutdownSafe, value ); settings::BoolSetting::APPLICATION_previousShutdownSafe, value );
} }
int verifyCustomTickRate( const int tickRate )
{
if ( tickRate < 1 )
{
return 1;
}
else if ( tickRate > k_maxCustomTickRate )
{
return k_maxCustomTickRate;
}
return tickRate;
}
int OverlayController::customTickRateMs() const int OverlayController::customTickRateMs() const
{ {
return m_customTickRateMs; const auto tickRate = settings::getSetting(
settings::IntSetting::APPLICATION_customTickRateMs );
return verifyCustomTickRate( tickRate );
} }
void OverlayController::setCustomTickRateMs( int value, bool notify ) void OverlayController::setCustomTickRateMs( int value, bool notify )
{ {
if ( m_customTickRateMs == value ) const auto verifiedTickRate = verifyCustomTickRate( value );
{
return;
}
// keep m_customTickRateMs sane (between 1~k_maxCustomTickRate)
if ( value < 1 )
{
m_customTickRateMs = 1;
}
else if ( value > k_maxCustomTickRate )
{
m_customTickRateMs = k_maxCustomTickRate;
}
else
{
m_customTickRateMs = value;
}
appSettings()->beginGroup( "applicationSettings" ); settings::setSetting( settings::IntSetting::APPLICATION_customTickRateMs,
appSettings()->setValue( "customTickRateMs", m_customTickRateMs ); verifiedTickRate );
appSettings()->endGroup();
appSettings()->sync();
if ( notify ) if ( notify )
{ {
emit customTickRateMsChanged( m_customTickRateMs ); emit customTickRateMsChanged( verifiedTickRate );
} }
} }
@@ -879,7 +855,7 @@ void OverlayController::OnTimeoutPumpEvents()
if ( vsyncDisabled() ) if ( vsyncDisabled() )
{ {
// check if it's time for a custom tick rate tick // check if it's time for a custom tick rate tick
if ( m_customTickRateCounter > m_customTickRateMs ) if ( m_customTickRateCounter > customTickRateMs() )
{ {
mainEventLoop(); mainEventLoop();
m_customTickRateCounter = 0; m_customTickRateCounter = 0;
-1
View File
@@ -122,7 +122,6 @@ private:
bool m_desktopMode; bool m_desktopMode;
bool m_noSound; bool m_noSound;
bool m_newVersionDetected = false; bool m_newVersionDetected = false;
int m_customTickRateMs = 20;
int m_remoteVersionMajor = -1; int m_remoteVersionMajor = -1;
int m_remoteVersionMinor = -1; int m_remoteVersionMinor = -1;
int m_remoteVersionPatch = -1; int m_remoteVersionPatch = -1;
+1
View File
@@ -82,6 +82,7 @@ enum class IntSetting
PLAYSPACE_turnComfortFactor, PLAYSPACE_turnComfortFactor,
APPLICATION_debugState, APPLICATION_debugState,
APPLICATION_customTickRateMs,
UTILITY_alarmHour, UTILITY_alarmHour,
UTILITY_alarmMinute, UTILITY_alarmMinute,
+4
View File
@@ -380,6 +380,10 @@ private:
SettingCategory::Application, SettingCategory::Application,
QtInfo{ "debugState" }, QtInfo{ "debugState" },
0 }, 0 },
IntSettingValue{ IntSetting::APPLICATION_customTickRateMs,
SettingCategory::Application,
QtInfo{ "customTickRateMs" },
20 },
IntSettingValue{ IntSetting::UTILITY_alarmHour, IntSettingValue{ IntSetting::UTILITY_alarmHour,
SettingCategory::Utility, SettingCategory::Utility,