diff options
Diffstat (limited to 'client/widgets/widget.cc')
| -rw-r--r-- | client/widgets/widget.cc | 30 | 
1 files changed, 13 insertions, 17 deletions
diff --git a/client/widgets/widget.cc b/client/widgets/widget.cc index d17754e..61e2a53 100644 --- a/client/widgets/widget.cc +++ b/client/widgets/widget.cc @@ -26,10 +26,12 @@   */  #include "widget.h" -Widget::Widget(QDomNode &node) +Widget::Widget(QDomNode &node, MacroWindow *macrowindow)  {    QDomElement elem = node.toElement(); +  this->macrowindow = macrowindow; +      if(elem.hasAttribute("name")) {      widget_name = elem.attribute("name");    } else { @@ -37,11 +39,11 @@ Widget::Widget(QDomNode &node)             elem.tagName().toStdString().c_str());    } -  if(elem.hasAttribute("lua_validator")) { -    lua_validator = elem.attribute("lua_validator"); -    hasluavalidator = true; +  if(elem.hasAttribute("lua")) { +    luaprogram = elem.attribute("lua"); +    hasluaprogram = true;    } else { -    hasluavalidator = false; +    hasluaprogram = false;    }    if(elem.hasAttribute("regexp")) { @@ -63,6 +65,10 @@ QString Widget::getValue()    return "";  } +void Widget::setValue(QString) +{ +} +  bool Widget::isValid()  {    return regexpValidator() && luaValidator(); @@ -75,17 +81,7 @@ bool Widget::regexpValidator()  bool Widget::luaValidator()  { -  if(!hasluavalidator) return true; - -  Variables v; -  v["value"] = getValue().toStdString(); -  LUA lua(v); -   -  std::string program = lua_validator.toStdString(); - -  std::string result = lua.run(program); - -  //  printf("Running [%s] => [%s]\n", program.c_str(), result.c_str()); +  if(!hasluaprogram) return true; -  return result == "true"; +  return macrowindow->lua->run(luaprogram, getValue());  }  | 
