From 3e3a5e7ba353a02ac29c86eb94214d98a6c17bb7 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sun, 19 Apr 2020 23:58:11 +0800 Subject: Add configuration file revision checking. Upgrading should be less dangerous now. --- qmidiplayer-desktop/qmpsettings.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'qmidiplayer-desktop') diff --git a/qmidiplayer-desktop/qmpsettings.cpp b/qmidiplayer-desktop/qmpsettings.cpp index 134b73b..cdc96b8 100644 --- a/qmidiplayer-desktop/qmpsettings.cpp +++ b/qmidiplayer-desktop/qmpsettings.cpp @@ -1,11 +1,26 @@ #include "qmpsettings.hpp" +#include #include +#define QMP_CONFIGURATION_FILE_REV 1 + QSettings* qmpSettings::settings=nullptr; qmpSettings::qmpSettings() { qRegisterMetaTypeStreamOperators>(); - settings=new QSettings(QStandardPaths::writableLocation(QStandardPaths::StandardLocation::ConfigLocation)+QString("/qmprc"),QSettings::IniFormat); + QString confpath=QStandardPaths::writableLocation(QStandardPaths::StandardLocation::ConfigLocation)+QString("/qmprc"); + settings=new QSettings(confpath,QSettings::IniFormat); + if(settings->value("ConfigurationFileRevision").toInt()!=QMP_CONFIGURATION_FILE_REV&& + QFile::exists(confpath)) + { + qWarning("Your current configuration file is not compatible with this version of QMidiPlayer. " + "QMidiPlayer will start with its default configuration. A backup of the old configuration " + "is automatically saved as qmprc.old."); + QFile::remove(confpath+".old"); + QFile::copy(confpath,confpath+".old"); + settings->clear(); + settings->setValue("ConfigurationFileRevision",QMP_CONFIGURATION_FILE_REV); + } } qmpSettings::~qmpSettings() -- cgit v1.2.3