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:
parent
7c33043ac0
commit
ff7c698371
2 changed files with 64 additions and 52 deletions
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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_
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue