fix: colorlcd "Global" bg image not being loaded at theme change (#1684)

Fixes #1680
This commit is contained in:
Peter Feerick
2022-03-16 21:21:53 +10:00
committed by GitHub
parent 7abc59e626
commit fe37d428b8
+19 -1
View File
@@ -300,7 +300,25 @@ void ThemeFile::applyBackground()
if (pos != std::string::npos) {
auto rootDir = backgroundImageFileName.substr(0, pos + 1);
rootDir = rootDir + "background_" + std::to_string(LCD_W) + "x" + std::to_string(LCD_H) + ".png";
instance->setBackgroundImageFileName((char *)rootDir.c_str());
FIL file;
FRESULT result = f_open(&file, rootDir.c_str(), FA_OPEN_EXISTING);
if (result == FR_OK) {
instance->setBackgroundImageFileName((char *)rootDir.c_str());
} else {
// TODO: This needs to be made user configurable, not
// require the file be deleted to remove global background
char fileName[FF_MAX_LFN + 1];
fileName[FF_MAX_LFN] = '\0';
strncpy(fileName, THEMES_PATH, FF_MAX_LFN);
strcat(fileName, "/EdgeTX/background.png");
result = f_open(&file, fileName, FA_OPEN_EXISTING);
if (result == FR_OK) {
instance->setBackgroundImageFileName(fileName);
} else {
instance->setBackgroundImageFileName("");
}
}
} else {
instance->setBackgroundImageFileName("");
}