feat: Improve searching for previous versions of companion app settings (#1540)

This commit is contained in:
Neil Horne
2022-02-04 10:50:22 +10:00
committed by GitHub
parent 9fc701c131
commit 44f12ba7f0
+12 -7
View File
@@ -470,14 +470,13 @@ void AppData::clearUnusedSettings(QSettings & settings)
bool AppData::findPreviousVersionSettings(QString * version) const
{
// TODO need a more dynamic method since ETX moves so quickly
static const QStringList versList({QStringLiteral("2.6"), QStringLiteral("2.5"), QStringLiteral("2.4")});
int vmaj = VERSION_MAJOR;
int vmin = VERSION_MINOR - 1; // make sure we do not try to import from ourselves otherwise settings WILL get corrupted
for (const QString &ver : versList) {
const QString prod("Companion " % ver);
// make sure we do not try to import from ourselves otherwise settings WILL get corrupted
if (prod == PRODUCT)
continue;
for (;(vmaj << 8 | vmin) >= (2 << 8 | 4);) { // 2.4 earliest EdgeTX version
const QString ver = QString("%1.%2").arg(vmaj).arg(vmin);
const QString prod = QString("Companion %1").arg(ver);
qDebug() << "Searching for previous version" << ver;
QSettings settings(COMPANY, prod);
if (settings.contains(SETTINGS_VERSION_KEY)) {
*version = ver;
@@ -486,6 +485,12 @@ bool AppData::findPreviousVersionSettings(QString * version) const
else {
settings.clear();
}
--vmin;
if (vmin < 0) {
vmin = 30; // abitary maximum minor version for earlier major versions
--vmaj;
}
}
return false;