X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fqtuiapplication.h;h=e5e5d0787a58f21768d39ac01628343ed78ac8c2;hb=8fe8accd73abf77ab21d2d1c1346d2bc5c4de2ff;hp=773bd74805945aaae2c829b442021bad4063e569;hpb=0a43227b8cd44625f4881cc1545d42c8c8a4876c;p=quassel.git diff --git a/src/qtui/qtuiapplication.h b/src/qtui/qtuiapplication.h index 773bd748..e5e5d078 100644 --- a/src/qtui/qtuiapplication.h +++ b/src/qtui/qtuiapplication.h @@ -31,6 +31,7 @@ #include "quassel.h" #include "uisettings.h" +#include "qtuisettings.h" class QtUi; @@ -64,6 +65,28 @@ protected: virtual void quit(); private: + /** + * Migrate settings if neccessary and possible + * + * If unsuccessful (major version changed, minor version upgrade failed), returning false, the + * settings are in an unknown state and the client should quit. + * + * @return True if settings successfully migrated, otherwise false + */ + bool migrateSettings(); + + /** + * Migrate from one minor settings version to the next + * + * Settings can only be migrated one version at a time. Start from the current version, calling + * this function for each intermediate version up until the latest version. + * + * @param[in] settings Current settings instance + * @param[in] newVersion Next target version for migration, at most 1 from the current version + * @return True if minor revision of settings successfully migrated, otherwise false + */ + bool applySettingsMigration(QtUiSettings settings, const uint newVersion); + bool _aboutToQuit; };