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
This commit is contained in:
Vojtech Bocek
2013-12-07 23:02:09 +01:00
parent 4168a07310
commit 81c29dc7c4
+10 -5
View File
@@ -611,16 +611,21 @@ Page* PageSet::FindPage(std::string name)
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;