Make listbox translation work
Change-Id: I446f4499a43e6348a2b95846f3e5ea86967abbdc
diff --git a/gui/listbox.cpp b/gui/listbox.cpp
index eeddff9..b0d2731 100644
--- a/gui/listbox.cpp
+++ b/gui/listbox.cpp
@@ -36,7 +36,7 @@
xml_node<>* child;
mIconSelected = mIconUnselected = NULL;
mUpdate = 0;
- isCheckList = false;
+ isCheckList = isTextParsed = false;
// Get the icons, if any
child = FindNode(node, "icon");
@@ -87,7 +87,8 @@
attr = child->first_attribute("name");
if (!attr)
continue;
- item.displayName = gui_parse_text(attr->value());
+ // We will parse display names when we get page focus to ensure that translating takes place
+ item.displayName = attr->value();
item.variableValue = gui_parse_text(child->value());
item.selected = (child->value() == currentValue);
item.action = NULL;
@@ -191,6 +192,13 @@
{
GUIScrollList::SetPageFocus(inFocus);
if (inFocus) {
+ if (!isTextParsed) {
+ isTextParsed = true;
+ for (size_t i = 0; i < mListItems.size(); i++) {
+ ListItem& item = mListItems[i];
+ item.displayName = gui_parse_text(item.displayName);
+ }
+ }
DataManager::GetValue(mVariable, currentValue);
NotifyVarChange(mVariable, currentValue);
}
diff --git a/gui/objects.hpp b/gui/objects.hpp
index 15ad1e6..e7ade18 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -652,6 +652,7 @@
ImageResource* mIconSelected;
ImageResource* mIconUnselected;
bool isCheckList;
+ bool isTextParsed;
};
class GUIPartitionList : public GUIScrollList