1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-23 16:25:16 +03:00

[Companion] Files automatically named during XXX => Horus conversions

This commit is contained in:
Bertrand Songis 2017-01-22 18:17:14 +01:00
parent 7c33043ac0
commit ff7c698371
2 changed files with 64 additions and 52 deletions

View file

@ -33,6 +33,61 @@ void GeneralSettings::convert(BoardEnum before, BoardEnum after)
// Here we can add explicit conversions when moving from one board to another // Here we can add explicit conversions when moving from one board to another
} }
void RadioData::setCurrentModel(unsigned int index)
{
generalSettings.currModelIndex = index;
strcpy(generalSettings.currModelFilename, models[index].filename);
}
void RadioData::fixModelFilename(unsigned int index)
{
ModelData & model = models[index];
QString filename(model.filename);
bool ok = filename.endsWith(".bin");
if (ok) {
if (filename.startsWith("model") && filename.mid(5, filename.length()-9).toInt() > 0) {
ok = false;
}
}
if (ok) {
for (unsigned i=0; i<index; i++) {
if (strcmp(models[i].filename, model.filename) == 0) {
ok = false;
break;
}
}
}
if (!ok) {
sprintf(model.filename, "model%d.bin", index+1);
}
}
void RadioData::fixModelFilenames()
{
for (unsigned int i=0; i<models.size(); i++) {
fixModelFilename(i);
}
setCurrentModel(generalSettings.currModelIndex);
}
QString RadioData::getNextModelFilename()
{
char filename[sizeof(ModelData::filename)];
int index = 0;
bool found = true;
while (found) {
sprintf(filename, "model%d.bin", ++index);
found = false;
for (unsigned int i=0; i<models.size(); i++) {
if (strcmp(filename, models[i].filename) == 0) {
found = true;
break;
}
}
}
return filename;
}
void RadioData::convert(BoardEnum before, BoardEnum after) void RadioData::convert(BoardEnum before, BoardEnum after)
{ {
generalSettings.convert(before, after); generalSettings.convert(before, after);
@ -46,4 +101,8 @@ void RadioData::convert(BoardEnum before, BoardEnum after)
models[i].category = 0; models[i].category = 0;
} }
} }
if (after == BOARD_HORUS) {
fixModelFilenames();
}
} }

View file

@ -1277,59 +1277,12 @@ class RadioData {
void convert(BoardEnum before, BoardEnum after); void convert(BoardEnum before, BoardEnum after);
void setCurrentModel(unsigned int index) void setCurrentModel(unsigned int index);
{ void fixModelFilenames();
generalSettings.currModelIndex = index; QString getNextModelFilename();
strcpy(generalSettings.currModelFilename, models[index].filename);
}
void fixModelFilename(unsigned int index) protected:
{ void fixModelFilename(unsigned int index);
ModelData & model = models[index];
QString filename(model.filename);
bool ok = filename.endsWith(".bin");
if (ok) {
if (filename.startsWith("model") && filename.mid(5, filename.length()-9).toInt() > 0) {
ok = false;
}
}
if (ok) {
for (unsigned i=0; i<index; i++) {
if (strcmp(models[i].filename, model.filename) == 0) {
ok = false;
break;
}
}
}
if (!ok) {
sprintf(model.filename, "model%d.bin", index+1);
}
}
void fixModelFilenames()
{
for (unsigned int i=0; i<models.size(); i++) {
fixModelFilename(i);
}
}
QString getNextModelFilename()
{
char filename[sizeof(ModelData::filename)];
int index = 0;
bool found = true;
while (found) {
sprintf(filename, "model%d.bin", ++index);
found = false;
for (unsigned int i=0; i<models.size(); i++) {
if (strcmp(filename, models[i].filename) == 0) {
found = true;
break;
}
}
}
return filename;
}
}; };
#endif // _RADIODATA_H_ #endif // _RADIODATA_H_