summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2008-07-02 09:42:38 +0000
committerdeva <deva>2008-07-02 09:42:38 +0000
commitfe81dbb0a0dfc9c3808df9576dfe9a8f0b7520be (patch)
tree33281ee07a3fef90dfca8fbe330cbd7f16b79967
parent4d7617cbf20985b7cf2231675d8aadd01f77c3d2 (diff)
Made all setValue calls in a second pass, to the construction of the widgets.
-rw-r--r--client/lua.cc15
-rw-r--r--client/macrowindow.cc57
-rw-r--r--client/macrowindow.h5
-rw-r--r--client/widgetbuilder.cc17
-rw-r--r--client/widgetbuilder.h1
-rw-r--r--client/widgets/checkbox.cc2
-rw-r--r--client/widgets/combobox.cc5
-rw-r--r--client/widgets/lineedit.cc2
-rw-r--r--client/widgets/listbox.cc4
-rw-r--r--client/widgets/multilist.cc2
-rw-r--r--client/widgets/radiobuttons.cc2
-rw-r--r--client/widgets/textedit.cc2
-rw-r--r--client/widgets/window.cc5
-rw-r--r--client/widgets/window.h4
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__*/