Add support for persistent variables in theme's <variables> section
* Add support for variables with persist="1", which will cause
them saved into settings file and reloaded on next boot.
* This is handy for theme makers, who can use this to
implement "theme settings".
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
Change-Id: I6415979011b38cbb15dec9909c445b02da6eadc0
diff --git a/gui/pages.cpp b/gui/pages.cpp
index d02dd21..d662f18 100644
--- a/gui/pages.cpp
+++ b/gui/pages.cpp
@@ -611,16 +611,21 @@
int PageSet::LoadVariables(xml_node<>* vars)
{
xml_node<>* child;
+ xml_attribute<> *name, *value, *persist;
+ int p;
child = vars->first_node("variable");
while (child)
{
- if (!child->first_attribute("name"))
- break;
- if (!child->first_attribute("value"))
- break;
+ name = child->first_attribute("name");
+ value = child->first_attribute("value");
+ persist = child->first_attribute("persist");
+ if(name && value)
+ {
+ p = persist ? atoi(persist->value()) : 0;
+ DataManager::SetValue(name->value(), value->value(), p);
+ }
- DataManager::SetValue(child->first_attribute("name")->value(), child->first_attribute("value")->value());
child = child->next_sibling("variable");
}
return 0;