Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81c29dc7 authored by Vojtech Bocek's avatar Vojtech Bocek
Browse files

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: default avatarVojtech Bocek <vbocek@gmail.com>

Change-Id: I6415979011b38cbb15dec9909c445b02da6eadc0
parent 4168a073
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -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;