From 96acb3d14d42931a5157ff283d74a60cdb62c685 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Tue, 5 Aug 2014 09:20:30 -0500 Subject: Allow using variables and addition/subtraction in variables Change-Id: I1acba95302e414e1a471d27474508a7c48df0328 --- gui/devices/800x1280/res/ui.xml | 35 ++++++++++++++++++----------------- gui/pages.cpp | 27 ++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 18 deletions(-) (limited to 'gui') diff --git a/gui/devices/800x1280/res/ui.xml b/gui/devices/800x1280/res/ui.xml index 328b31f69..b074931b6 100644 --- a/gui/devices/800x1280/res/ui.xml +++ b/gui/devices/800x1280/res/ui.xml @@ -58,24 +58,25 @@ + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/gui/pages.cpp b/gui/pages.cpp index 1bc15c6cd..72ffda3d5 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -783,7 +783,32 @@ int PageSet::LoadVariables(xml_node<>* vars) if(name && value) { p = persist ? atoi(persist->value()) : 0; - DataManager::SetValue(name->value(), value->value(), p); + string temp = value->value(); + string valstr = gui_parse_text(temp); + + if (valstr.find("+") != string::npos) { + string val1str = valstr; + val1str = val1str.substr(0, val1str.find('+')); + string val2str = valstr; + val2str = val2str.substr(val2str.find('+') + 1, string::npos); + int val1 = atoi(val1str.c_str()); + int val2 = atoi(val2str.c_str()); + int val = val1 + val2; + + DataManager::SetValue(name->value(), val, p); + } else if (valstr.find("-") != string::npos) { + string val1str = valstr; + val1str = val1str.substr(0, val1str.find('-')); + string val2str = valstr; + val2str = val2str.substr(val2str.find('-') + 1, string::npos); + int val1 = atoi(val1str.c_str()); + int val2 = atoi(val2str.c_str()); + int val = val1 - val2; + + DataManager::SetValue(name->value(), val, p); + } else { + DataManager::SetValue(name->value(), valstr, p); + } } child = child->next_sibling("variable"); -- cgit v1.2.3