Convert profile firmware types and remove some old code

This commit is contained in:
elecpower
2021-12-31 10:53:08 +01:00
committed by Raphael Coeffic
parent 9db320577a
commit 06fef816f0
2 changed files with 14 additions and 48 deletions
+12 -46
View File
@@ -409,12 +409,6 @@ QMap<int, QString> AppData::getActiveProfiles() const
void AppData::convertSettings(QSettings & settings)
{
quint32 savedVer = settings.value(SETTINGS_VERSION_KEY, 0).toUInt();
#if (VERSION_NUMBER < QT_VERSION_CHECK(2, 3, 0))
// convert old 2.2.x version marker; TODO: remove once v2.3 is established (because we'll always convert and clean 2.2.x settings anyway)
if (savedVer == 220)
savedVer = 0x2020000;
#endif
if (savedVer == CPN_SETTINGS_VERSION)
return;
if (savedVer > CPN_SETTINGS_VERSION) {
@@ -432,29 +426,16 @@ void AppData::convertSettings(QSettings & settings)
<< " from v" << fmtHex(savedVer) << " (" << fmtHex(savedMajMin) << ") to v"
<< fmtHex(CPN_SETTINGS_VERSION) << " (" << fmtHex(currMajMin) << "). Removing unused: " << removeUnused;
if (settings.contains("useWizard")) {
if (!settings.contains(newModelAction_key()))
settings.setValue(newModelAction_key(), (settings.value("useWizard").toBool() ? MODEL_ACT_WIZARD : MODEL_ACT_EDITOR));
if (removeUnused)
settings.remove("useWizard");
}
// meaning of warningId changed during v2.2 development but value of "7" indicates old setting, removing it will restore defaults
if (savedMajMin < 0x203 && settings.contains("warningId") && settings.value("warningId").toInt() == 7)
settings.remove("warningId");
// Convert joystick settings to new style of key names
static const QString jsCalBasePath = QStringLiteral("JsCalibration/%1");
if (settings.contains(jsCalBasePath.arg("stick0_axe"))) {
const QStringList vars({"axe", "inv", "max", "med", "min"});
for (int i=0; i < MAX_JOYSTICKS; ++i) {
for (const QString & var : vars) {
const QString oldPath = jsCalBasePath.arg(QString("stick%1_%2").arg(i).arg(var)); // old format "/stick#_var"
const QVariant val = settings.value(oldPath);
if (val.isValid())
settings.setValue(jsCalBasePath.arg(QString("%1/stick_%2").arg(i).arg(var)), val); // new format "/#/stick_var"
if (removeUnused)
settings.remove(oldPath);
// firmwares renamed from opentx-* to edgetx-* at 2.6
if (savedMajMin < 0x206) {
static const QString profileFwTypePath = QStringLiteral("Profiles/profile%1/fwType");
for (int i = 0; i < MAX_PROFILES; i++) {
if (settings.contains(profileFwTypePath.arg(i))) {
const QVariant oldValue = settings.value(profileFwTypePath.arg(i));
if (oldValue.isValid()) {
QString val = settings.value(profileFwTypePath.arg(i)).toString();
settings.setValue(profileFwTypePath.arg(i), val.replace("opentx-", "edgetx-"));
}
}
}
}
@@ -481,7 +462,8 @@ void AppData::clearUnusedSettings(QSettings & settings)
bool AppData::findPreviousVersionSettings(QString * version) const
{
static const QStringList versList({QStringLiteral("2.2"), QStringLiteral("2.1"), QStringLiteral("2.0")});
// TODO need a more dynamic method since ETX moves so quickly
static const QStringList versList({QStringLiteral("2.5"), QStringLiteral("2.4")});
for (const QString &ver : versList) {
const QString prod("Companion " % ver);
@@ -498,15 +480,6 @@ bool AppData::findPreviousVersionSettings(QString * version) const
}
}
QSettings settings(COMPANY, "OpenTX Companion");
if (settings.contains(SETTINGS_VERSION_KEY)) {
*version = QStringLiteral("1.x");
return true;
}
else {
settings.clear();
}
return false;
}
@@ -515,13 +488,6 @@ bool AppData::importSettings(const QString & fromVersion)
QString fromProduct;
upgradeFromVersion.clear();
if (fromVersion.startsWith("2."))
fromProduct = "Companion " % fromVersion;
else if (fromVersion == "1.x")
fromProduct = "OpenTX Companion";
else
return false;
upgradeFromVersion = fromVersion;
QSettings fromSettings(COMPANY, fromProduct);
+2 -2
View File
@@ -38,7 +38,7 @@
#include <QSettings>
#include <QStandardPaths>
//! CPN_SETTINGS_REVISION is used to track settings changes independently of OpenTX version. It should be reset to zero whenever settings are migrated to new COMPANY or PRODUCT.
//! CPN_SETTINGS_REVISION is used to track settings changes independently of EdgeTX version. It should be reset to zero whenever settings are migrated to new COMPANY or PRODUCT.
//! \note !! Increment this value if properties are removed or refactored. It will trigger a conversion/cleanup of any stored settings. \sa AppData::convertSettings()
#define CPN_SETTINGS_REVISION 0
@@ -51,7 +51,7 @@
#define APP_COMPANION QStringLiteral("EdgeTX Companion")
#define APP_SIMULATOR QStringLiteral("EdgeTX Simulator")
//! Default location for OpenTX-related user documents (settigns, logs, etc)
//! Default location for EdgeTX-related user documents (settigns, logs, etc)
#define CPN_DOCUMENTS_LOCATION QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) % "/" % COMPANY
//! Location for settings backup files. TODO: make option or remember last location.
#define CPN_SETTINGS_BACKUP_DIR CPN_DOCUMENTS_LOCATION % "/backup"