diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 5164a8a7..61f471ed 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -64,6 +64,8 @@ void Settings::load() QString key = QString::fromLatin1(KEY) + QLatin1String("/General/"); + appVersion = settings->value(key + QLatin1String("AppVersion"), APP_VERSION_UNKN).toString().toUInt(0, 16); + // Angle mode special case. QString angleUnitStr; angleUnitStr = settings->value(key + QLatin1String("AngleMode"), "r").toString(); @@ -224,6 +226,8 @@ void Settings::save() int k, i; QString key = KEY + QLatin1String("/General/"); + settings->setValue(key + QLatin1String("AppVersion"), QString().sprintf("0x%06X", APP_VERSION)); + settings->setValue(key + QLatin1String("HistorySave"), historySave); settings->setValue(key + QLatin1String("LeaveLastExpression"), leaveLastExpression); settings->setValue(key + QLatin1String("VariableSave"), variableSave); diff --git a/src/core/settings.h b/src/core/settings.h index 3de94172..8fa3cd9f 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -26,6 +26,13 @@ #include #include +// current application version (0xMMNNPP format same as QT_VERSION) +#define APP_VERSION 0x001200 +// milestones for compatibility checks +#define APP_VERSION_001200 0x001200 +// unknown format (always windowPosition); + // docking layout has changed in 0.12 - reset window state + if (m_settings->appVersion < APP_VERSION_001200) + m_settings->windowState.clear(); + restoreState(m_settings->windowState); m_actions.viewFullScreenMode->setChecked(m_settings->windowOnfullScreen);