fix(cpn): Widget name truncation, top bar widget cfg lost if more than 4 (#4584)

This commit is contained in:
Neil Horne
2024-02-05 11:23:54 +10:00
committed by GitHub
parent a40c2b8377
commit 7e706b73d5
3 changed files with 13 additions and 6 deletions
@@ -132,9 +132,16 @@ bool RadioLayout::CustomScreenData::isEmpty() const
return strlen(layoutId) == 0;
}
void RadioLayout::CustomScreens::clear()
{
for (int i = 0; i < MAX_CUSTOM_SCREENS; i++) {
customScreenData[i] = CustomScreenData();
}
}
void RadioLayout::init(const char* layoutId, CustomScreens& customScreens)
{
memset(&customScreens, 0, sizeof(CustomScreens));
customScreens.clear();
for (int i = 0; i < MAX_CUSTOM_SCREENS; i++) {
if (i == 0)
+4 -4
View File
@@ -35,9 +35,9 @@ constexpr int MAX_THEME_OPTIONS {5};
constexpr int LEN_ZONE_OPTION_STRING {8};
constexpr int MAX_LAYOUT_ZONES {10};
constexpr int MAX_LAYOUT_OPTIONS {10};
constexpr int WIDGET_NAME_LEN {10};
constexpr int WIDGET_NAME_LEN {12};
constexpr int MAX_WIDGET_OPTIONS {5};
constexpr int MAX_TOPBAR_ZONES {4};
constexpr int MAX_TOPBAR_ZONES {6}; // max 4 used for portrait
constexpr int MAX_TOPBAR_OPTIONS {1};
constexpr int LAYOUT_ID_LEN {12};
@@ -79,8 +79,6 @@ enum ZoneOptionAlign
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT,
// this one MUST be last
ALIGN_COUNT
};
@@ -160,6 +158,8 @@ class RadioLayout
struct CustomScreens {
CustomScreenData customScreenData[MAX_CUSTOM_SCREENS];
void clear();
};
static void init(const char * layoutId, CustomScreens & customScreens);
@@ -2940,7 +2940,7 @@ void OpenTxModelData::afterImport()
if (version < 220) { // re-initialise as no conversion possible
const char * layoutId = "Layout2P1"; // currently all using same default though might change for NV14
RadioLayout::init(layoutId, modelData.customScreens);
memset(&modelData.topBarData, 0, sizeof(TopBarPersistentData));
modelData.topBarData = TopBarPersistentData();
}
}