beremiz

SVGHMI: Fixes UI lifecycle problems

2023-11-25, Edouard Tisserant
89549813a6c1
SVGHMI: Fixes UI lifecycle problems

Was sometime showing HMI tree of previously closed project : no more module globals to store hmi tree.
C++ dead object exceptions happened when re-opening SVGHMI UI or building after close of UI.
// lists.ysl2
//
// compute list widget related constants
// for details, refer to :
// widget_list.ysl2
// widget_textlist.ysl2
// widget_textstulelist.ysl2
// List widgets
const "hmi_lists_descs", "$parsed_widgets/widget[@type = 'List']";
const "hmi_lists", "$hmi_elements[@id = $hmi_lists_descs/@id]";
// TextList widget
const "hmi_textlists_descs", "$parsed_widgets/widget[@type = 'TextList']";
const "hmi_textlists", "$hmi_elements[@id = $hmi_textlists_descs/@id]";
// TextStyleList widgets
const "hmi_textstylelists_descs", "$parsed_widgets/widget[@type = 'TextStyleList']";
const "hmi_textstylelists", "$hmi_elements[@id = $hmi_textstylelists_descs/@id]";
const "textstylelist_related" foreach "$hmi_textstylelists" list {
attrib "listid" value "@id";
foreach "func:refered_elements(.)" elt {
attrib "eltid" value "@id";
}
}
const "textstylelist_related_ns", "exsl:node-set($textstylelist_related)";