diff options
Diffstat (limited to 'client/macrowindow.cc')
-rw-r--r-- | client/macrowindow.cc | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/client/macrowindow.cc b/client/macrowindow.cc index 74e8d54..aab9857 100644 --- a/client/macrowindow.cc +++ b/client/macrowindow.cc @@ -35,6 +35,8 @@ #include <QDomNode> #include <QByteArray> +#include "lua.h" + extern QString cpr; extern QString user; extern QString host; @@ -45,12 +47,15 @@ MacroWindow::MacroWindow(QDomDocument *xml_doc) { isclosed = false; + this->lua = new LUA(this); + // Execute the recursive function with documentElement recurser(xml_doc->documentElement(), NULL); } MacroWindow::~MacroWindow() { + delete lua; } void MacroWindow::recurser(QDomNode xml_node, QWidget *parent) @@ -63,31 +68,39 @@ void MacroWindow::recurser(QDomNode xml_node, QWidget *parent) if(xml_elem.hasAttribute("name")) macro = xml_elem.attribute("name"); if(xml_elem.hasAttribute("version")) version = xml_elem.attribute("version"); + } else if(xml_elem.tagName() == "luaprograms") { + // Nothing to do here + } else if(xml_elem.tagName() == "luaprogram") { + + if(xml_elem.hasAttribute("name")) { + luaprograms[xml_elem.attribute("name")] = xml_elem.text(); + } + } else if(xml_elem.tagName() == "window") { - Window *window = new Window(xml_elem); + Window *window = new Window(xml_elem, this); widget = window; mainwidget = window; } else if(xml_elem.tagName() == "frame") { if(xml_elem.hasAttribute("caption")) { - GroupBox *frame = new GroupBox(xml_elem); + GroupBox *frame = new GroupBox(xml_elem, this); widget = frame; } else { - Frame *frame = new Frame(xml_elem); + Frame *frame = new Frame(xml_elem, this); widget = frame; } } else if(xml_elem.tagName() == "label") { - Label *label = new Label(xml_elem); + Label *label = new Label(xml_elem, this); widget = label; } else if(xml_elem.tagName() == "lineedit") { - LineEdit *lineedit = new LineEdit(xml_elem); + LineEdit *lineedit = new LineEdit(xml_elem, this); widgets.push_back(lineedit); widget = lineedit; } else if(xml_elem.tagName() == "button") { - PushButton *pushbutton = new PushButton(xml_elem); + PushButton *pushbutton = new PushButton(xml_elem, this); //connect(pushbutton, SIGNAL(act_continue()), main, SLOT(get_macro())); connect(pushbutton, SIGNAL(act_commit()), this, SLOT(commit())); connect(pushbutton, SIGNAL(act_reset()), this, SLOT(reset())); @@ -96,29 +109,29 @@ void MacroWindow::recurser(QDomNode xml_node, QWidget *parent) widget = pushbutton; } else if(xml_elem.tagName() == "textedit") { - TextEdit *textedit = new TextEdit(xml_elem); + TextEdit *textedit = new TextEdit(xml_elem, this); widgets.push_back(textedit); widget = textedit; } else if(xml_elem.tagName() == "checkbox") { - CheckBox *checkbox = new CheckBox(xml_elem); + CheckBox *checkbox = new CheckBox(xml_elem, this); widgets.push_back(checkbox); widget = checkbox; } else if(xml_elem.tagName() == "radiobuttons") { - RadioButtons *radiobuttons = new RadioButtons(xml_elem); + RadioButtons *radiobuttons = new RadioButtons(xml_elem, this); widgets.push_back(radiobuttons); widget = radiobuttons; //return; // Don't iterate children } else if(xml_elem.tagName() == "combobox") { - ComboBox *combobox = new ComboBox(xml_elem); + ComboBox *combobox = new ComboBox(xml_elem, this); widgets.push_back(combobox); widget = combobox; //return; // Don't iterate children } else if(xml_elem.tagName() == "listbox") { - ListBox *listbox = new ListBox(xml_elem); + ListBox *listbox = new ListBox(xml_elem, this); widgets.push_back(listbox); widget = listbox; //return; // Don't iterate children @@ -254,3 +267,26 @@ 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++; + } +} |