diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/lua.cc | 15 | ||||
| -rw-r--r-- | client/macrowindow.cc | 57 | ||||
| -rw-r--r-- | client/macrowindow.h | 5 | ||||
| -rw-r--r-- | client/widgetbuilder.cc | 17 | ||||
| -rw-r--r-- | client/widgetbuilder.h | 1 | ||||
| -rw-r--r-- | client/widgets/checkbox.cc | 2 | ||||
| -rw-r--r-- | client/widgets/combobox.cc | 5 | ||||
| -rw-r--r-- | client/widgets/lineedit.cc | 2 | ||||
| -rw-r--r-- | client/widgets/listbox.cc | 4 | ||||
| -rw-r--r-- | client/widgets/multilist.cc | 2 | ||||
| -rw-r--r-- | client/widgets/radiobuttons.cc | 2 | ||||
| -rw-r--r-- | client/widgets/textedit.cc | 2 | ||||
| -rw-r--r-- | client/widgets/window.cc | 5 | ||||
| -rw-r--r-- | client/widgets/window.h | 4 | 
14 files changed, 56 insertions, 67 deletions
| diff --git a/client/lua.cc b/client/lua.cc index 22249a4..65d0188 100644 --- a/client/lua.cc +++ b/client/lua.cc @@ -28,6 +28,8 @@  #include "macrowindow.h" +#include "widgets/widget.h" +  #define GLOBAL_POINTER "_pracroGlobalLUAObjectPointerThisShouldBeANameThatIsNotAccidentallyOverwritten"  static int _enable(lua_State *L) @@ -170,22 +172,27 @@ LUA::~LUA()  QString LUA::getValue(QString name)  { -  return macrowindow->getValue(name); +  Widget *widget = macrowindow->getWidget(name); +  if(widget) return widget->getValue(); +  return "";  }  void LUA::setValue(QString name, QString value)  { -  macrowindow->setValue(name, value); +  Widget *widget = macrowindow->getWidget(name); +  if(widget) return widget->setValue(value);  }  void LUA::enable(QString name)  { -  return macrowindow->enable(name); +  Widget *widget = macrowindow->getWidget(name); +  if(widget) return widget->enable();  }  void LUA::disable(QString name)  { -  return macrowindow->disable(name); +  Widget *widget = macrowindow->getWidget(name); +  if(widget) return widget->disable();  }  bool LUA::run(QString program, QString name, QString value) diff --git a/client/macrowindow.cc b/client/macrowindow.cc index ad85c6f..764bf79 100644 --- a/client/macrowindow.cc +++ b/client/macrowindow.cc @@ -85,10 +85,18 @@ void MacroWindow::initMacro(QDomNode &node)      QDomNodeList children = node.childNodes(); +    // Build widgets      for (int i=0; i<children.count();i++) {        QDomNode child = children.at(i);        widgets += widgetBuilder(child, mainwidget, this);      } + +    // Insert their values (this must be done last for lua progs to work properly) +    for (int i=0; i<children.count();i++) { +      QDomNode child = children.at(i); +      setValues(child, this); +    } +      return;    } @@ -98,7 +106,6 @@ void MacroWindow::initMacro(QDomNode &node)      QDomNode child = children.at(i);      initMacro(child);    } -  }  bool MacroWindow::doCommit() @@ -221,55 +228,13 @@ bool MacroWindow::isClosed()    return isclosed;  } -QString MacroWindow::getValue(QString name) -{ -  // Iterate the different entries, and append their results to the commit string -  QVector< Widget* >::iterator i=widgets.begin(); -  while (i != widgets.end()) { -    Widget* w = *i; -    if(name == w->getName()) return w->getValue(); -    i++; -  } -  return name + " - No such field!"; -} - -void MacroWindow::setValue(QString name, QString value) -{ -  // Iterate the different entries, and append their results to the commit string -  QVector< Widget* >::iterator i = widgets.begin(); -  while (i != widgets.end()) { -    Widget* w = *i; -    if(name == w->getName()) w->setValue(value); -    i++; -  } -} - -void MacroWindow::enable(QString name) -{ -  // Iterate the different entries, and append their results to the commit string -  QVector< Widget* >::iterator i=widgets.begin(); -  while (i != widgets.end()) { -    Widget* w = *i; -    if(name == w->getName()) { -      w->enable(); -      return; -    } -    i++; -  } -  printf("widget not found!\n"); -} - -void MacroWindow::disable(QString name) +Widget *MacroWindow::getWidget(QString name)  { -  // Iterate the different entries, and append their results to the commit string    QVector< Widget* >::iterator i=widgets.begin();    while (i != widgets.end()) {      Widget* w = *i; -    if(name == w->getName()) { -      w->disable(); -      return; -    } +    if(name == w->getName()) return w;      i++;    } -  printf("widget not found!\n"); +  return NULL;  } diff --git a/client/macrowindow.h b/client/macrowindow.h index 050e59d..9386f35 100644 --- a/client/macrowindow.h +++ b/client/macrowindow.h @@ -50,10 +50,7 @@ public:    LUA *lua; -  QString getValue(QString name); -  void setValue(QString name, QString value); -  void enable(QString name); -  void disable(QString name); +  Widget *getWidget(QString name);  public slots:    void commit(); diff --git a/client/widgetbuilder.cc b/client/widgetbuilder.cc index d458379..f1011e5 100644 --- a/client/widgetbuilder.cc +++ b/client/widgetbuilder.cc @@ -112,3 +112,20 @@ QVector< Widget* > widgetBuilder(QDomNode xml_node, QWidget *parent, MacroWindow    return widgets;  } + +void setValues(QDomNode xml_node, MacroWindow *macrowindow) +{ +  QDomElement xml_elem = xml_node.toElement(); + +  if(xml_elem.hasAttribute("name") && xml_elem.hasAttribute("value")) { +    Widget *widget = macrowindow->getWidget(xml_elem.attribute("name")); +    if(widget) widget->setValue(xml_elem.attribute("value")); +  } + +  QDomNodeList children = xml_node.childNodes(); + +  for (int i=0; i<children.count();i++) { +    QDomNode child = children.at(i); +    setValues(child, macrowindow); +  } +} diff --git a/client/widgetbuilder.h b/client/widgetbuilder.h index f3b7369..21bf15e 100644 --- a/client/widgetbuilder.h +++ b/client/widgetbuilder.h @@ -34,5 +34,6 @@  #include "macrowindow.h"  QVector< Widget* > widgetBuilder(QDomNode xml_node, QWidget *parent, MacroWindow *macrowindow); +void setValues(QDomNode xml_node, MacroWindow *macrowindow);  #endif/*__PRACRO_WIDGETBUILDER_H__*/ diff --git a/client/widgets/checkbox.cc b/client/widgets/checkbox.cc index 8474e58..95f5a53 100644 --- a/client/widgets/checkbox.cc +++ b/client/widgets/checkbox.cc @@ -47,11 +47,13 @@ CheckBox::CheckBox(QDomNode &node, MacroWindow *macrowindow)    connect(this, SIGNAL(stateChanged(int)), this, SLOT(state_change())); +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    } else {      setValue("false");    } +  */  }  QString CheckBox::getValue() diff --git a/client/widgets/combobox.cc b/client/widgets/combobox.cc index 3856bed..d6d6483 100644 --- a/client/widgets/combobox.cc +++ b/client/widgets/combobox.cc @@ -67,12 +67,11 @@ ComboBox::ComboBox(QDomNode &node, MacroWindow *macrowindow)      }    } +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    }  - - -  //  addItems(itemlist); +  */    types_t combotype = SELECT;    if(elem.hasAttribute("type")) { diff --git a/client/widgets/lineedit.cc b/client/widgets/lineedit.cc index 8694889..69073ce 100644 --- a/client/widgets/lineedit.cc +++ b/client/widgets/lineedit.cc @@ -42,6 +42,7 @@ LineEdit::LineEdit(QDomNode &node, MacroWindow *macrowindow)    connect(this, SIGNAL(textChanged(QString)), this, SLOT(changed())); +  /* // This is done later    if(elem.hasAttribute("value")) {      setText(elem.attribute("value"));    } else { @@ -49,6 +50,7 @@ LineEdit::LineEdit(QDomNode &node, MacroWindow *macrowindow)      setText(" ");      setText("");    } +  */  }  void LineEdit::changed() diff --git a/client/widgets/listbox.cc b/client/widgets/listbox.cc index 4af7952..a47812a 100644 --- a/client/widgets/listbox.cc +++ b/client/widgets/listbox.cc @@ -87,10 +87,12 @@ ListBox::ListBox(QDomNode &node, MacroWindow *macrowindow)      QDomElement list_elem = child.toElement();      addItem(createItem(list_elem));    } - +   +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    } +  */  }  bool ListBox::isValid() diff --git a/client/widgets/multilist.cc b/client/widgets/multilist.cc index a15d995..80addf7 100644 --- a/client/widgets/multilist.cc +++ b/client/widgets/multilist.cc @@ -80,9 +80,11 @@ MultiList::MultiList(QDomNode &node, MacroWindow *macrowindow)    rem->setText("-");    layout->addWidget(rem, 1, 1, Qt::AlignTop); +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    } +  */    if(elem.hasAttribute("format")) {      format = elem.attribute("format"); diff --git a/client/widgets/radiobuttons.cc b/client/widgets/radiobuttons.cc index bd88601..a690f17 100644 --- a/client/widgets/radiobuttons.cc +++ b/client/widgets/radiobuttons.cc @@ -67,9 +67,11 @@ RadioButtons::RadioButtons(QDomNode &node, MacroWindow *macrowindow)      radiobutton_list.push_back(radiobutton);    } +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    } +  */  }  bool RadioButtons::isValid() diff --git a/client/widgets/textedit.cc b/client/widgets/textedit.cc index 0c1a0e0..dbc9e25 100644 --- a/client/widgets/textedit.cc +++ b/client/widgets/textedit.cc @@ -46,12 +46,14 @@ TextEdit::TextEdit(QDomNode &node, MacroWindow *macrowindow)    connect(this, SIGNAL(textChanged()), this, SLOT(changed())); +  /* // This is done later    if(elem.hasAttribute("value")) {      setValue(elem.attribute("value"));    } else {      setValue(" ");      setValue("");    } +  */  }  void TextEdit::changed() diff --git a/client/widgets/window.cc b/client/widgets/window.cc index c4d8d14..bda3667 100644 --- a/client/widgets/window.cc +++ b/client/widgets/window.cc @@ -67,8 +67,3 @@ Window::Window(QDomNode &node, MacroWindow *macrowindow)    setContentsMargins(0,0,0,0);  } - -QString Window::getValue() -{ -  return "Window"; -} diff --git a/client/widgets/window.h b/client/widgets/window.h index bd4c77b..af1e3d7 100644 --- a/client/widgets/window.h +++ b/client/widgets/window.h @@ -35,10 +35,6 @@ class Window : public QWidget, public Widget  {  public:    Window(QDomNode &node, MacroWindow *macrowindow); - -public slots: -  QString getValue(); -  };  #endif/*__PRACRO_WINDOW_H__*/ | 
