From ce667bf4b2f3de7aab677ac7e7f23bc72d3db80f Mon Sep 17 00:00:00 2001 From: senator Date: Wed, 25 Jul 2007 09:11:31 +0000 Subject: migrated all widgets to use QDomNodes; Implemented the getName functionality --- client/widgets/checkbox.cc | 12 ++++++++++-- client/widgets/checkbox.h | 3 ++- client/widgets/frame.cc | 1 + client/widgets/label.cc | 22 +++++++++++++++------- client/widgets/label.h | 4 +++- client/widgets/lineedit.cc | 3 ++- client/widgets/pushbutton.cc | 6 ++++-- client/widgets/pushbutton.h | 6 +++--- client/widgets/radiobutton.cc | 2 +- client/widgets/window.cc | 19 +++++++++++++++++++ 10 files changed, 60 insertions(+), 18 deletions(-) diff --git a/client/widgets/checkbox.cc b/client/widgets/checkbox.cc index ae9f143..33cd9d1 100644 --- a/client/widgets/checkbox.cc +++ b/client/widgets/checkbox.cc @@ -26,9 +26,17 @@ */ #include "checkbox.h" -CheckBox::CheckBox(QWidget *parent) : QCheckBox(parent) +CheckBox::CheckBox(QDomNode node) : QCheckBox() { - setText("Checkbox"); + QDomElement elem = node.toElement(); + widget_name = elem.attribute("name"); + setText(elem.attribute("caption")); + + if(elem.attribute("value") == "true") { + setChecked(true); + } else if (elem.attribute("value") == "false") { + setChecked(false); + } } QString CheckBox::getValue() diff --git a/client/widgets/checkbox.h b/client/widgets/checkbox.h index df59014..94905f2 100644 --- a/client/widgets/checkbox.h +++ b/client/widgets/checkbox.h @@ -28,13 +28,14 @@ #define __PRACRO_CHECKBOX_H__ #include "widget.h" +#include #include class CheckBox : public Widget, public QCheckBox { public: - CheckBox(QWidget *parent); + CheckBox(QDomNode node); public slots: QString getValue(); diff --git a/client/widgets/frame.cc b/client/widgets/frame.cc index 0ea7d25..b993f9a 100644 --- a/client/widgets/frame.cc +++ b/client/widgets/frame.cc @@ -29,6 +29,7 @@ Frame::Frame(QDomNode node) : QGroupBox() { QDomElement elem = node.toElement(); + widget_name = elem.attribute("name"); setTitle(elem.attribute("caption")); } diff --git a/client/widgets/label.cc b/client/widgets/label.cc index b30d1cb..b6f93b5 100644 --- a/client/widgets/label.cc +++ b/client/widgets/label.cc @@ -27,16 +27,24 @@ #include "label.h" #include -Label::Label(QDomNode node) : QLabel(NULL) +Label::Label(QDomNode node) : QLabel() { QDomElement elem = node.toElement(); + widget_name = elem.attribute("name"); setText(elem.attribute("caption")); - if(elem.attribute("align") == "left") { - setAlignment(Qt::AlignLeft); - } else if (elem.attribute("align") == "center") { - setAlignment(Qt::AlignHCenter); - } else if (elem.attribute("align") == "right") { - setAlignment(Qt::AlignRight); + if(elem.hasAttribute("align")) { + if(elem.attribute("align") == "left") { + setAlignment(Qt::AlignLeft); + } else if (elem.attribute("align") == "center") { + setAlignment(Qt::AlignHCenter); + } else if (elem.attribute("align") == "right") { + setAlignment(Qt::AlignRight); + } } } + +QString Label::getValue() +{ + return text(); +} diff --git a/client/widgets/label.h b/client/widgets/label.h index 78376dd..5393992 100644 --- a/client/widgets/label.h +++ b/client/widgets/label.h @@ -27,11 +27,12 @@ #ifndef __PRACRO_LABEL_H__ #define __PRACRO_LABEL_H__ +#include "widget.h" #include #include #include -class Label : public QLabel +class Label : public QLabel, public Widget { Q_OBJECT @@ -40,6 +41,7 @@ public: Label(QDomNode node); public slots: + QString getValue(); private: diff --git a/client/widgets/lineedit.cc b/client/widgets/lineedit.cc index 686791d..d50ec6b 100644 --- a/client/widgets/lineedit.cc +++ b/client/widgets/lineedit.cc @@ -30,6 +30,7 @@ LineEdit::LineEdit(QDomNode node) : QLineEdit() { QDomElement elem = node.toElement(); + widget_name = elem.attribute("name"); rx = QRegExp(elem.attribute("regexp")); connect(this, SIGNAL(textChanged(QString)), this, SLOT(changed(QString))); @@ -54,7 +55,7 @@ void LineEdit::changed(QString text) valid = false; } setPalette(palette); - printf("%s\n", text.toStdString().c_str()); + //printf("%s\n", text.toStdString().c_str()); } bool LineEdit::isValid() diff --git a/client/widgets/pushbutton.cc b/client/widgets/pushbutton.cc index 88fcf61..5a1e305 100644 --- a/client/widgets/pushbutton.cc +++ b/client/widgets/pushbutton.cc @@ -27,9 +27,11 @@ #include "pushbutton.h" #include -PushButton::PushButton(QWidget *parent, QString caption, QString type) : QPushButton(parent) +PushButton::PushButton(QDomNode node) : QPushButton() { - setText(caption); + QDomElement elem = node.toElement(); + widget_name = elem.attribute("name"); + setText(elem.attribute("caption")); //connect(this, SIGNAL(onClicked()), this, SLOT(clicked())); } diff --git a/client/widgets/pushbutton.h b/client/widgets/pushbutton.h index 3fc334f..a64568f 100644 --- a/client/widgets/pushbutton.h +++ b/client/widgets/pushbutton.h @@ -30,7 +30,7 @@ #include "widget.h" #include #include -//#include +#include class PushButton : public QPushButton, public Widget { @@ -38,10 +38,10 @@ class PushButton : public QPushButton, public Widget Q_OBJECT public: - PushButton(QWidget *parent, QString caption = "*", QString type = "*"); - QString getValue(); + PushButton(QDomNode node); public slots: + QString getValue(); private: diff --git a/client/widgets/radiobutton.cc b/client/widgets/radiobutton.cc index 89f9f4f..55e3379 100644 --- a/client/widgets/radiobutton.cc +++ b/client/widgets/radiobutton.cc @@ -29,7 +29,7 @@ RadioButton::RadioButton(QDomNode node) : QRadioButton() { QDomElement elem = node.toElement(); - + widget_name = elem.attribute("name"); if(elem.hasAttribute("caption")) { setText(elem.attribute("caption")); } else { diff --git a/client/widgets/window.cc b/client/widgets/window.cc index 657b62c..95f01a6 100644 --- a/client/widgets/window.cc +++ b/client/widgets/window.cc @@ -28,6 +28,25 @@ Window::Window(QDomNode node) : QWidget(NULL) { + QDomElement elem = node.toElement(); + + if(elem.hasAttribute("name")) { + widget_name = elem.attribute("name"); + } else { + printf("ERROR!! Widget has no name...\n"); + } + + if(elem.hasAttribute("width")) { + setMinimumWidth(elem.attribute("width").toInt()); + } + + if(elem.hasAttribute("height")) { + setMinimumHeight(elem.attribute("height").toInt()); + } + + if(elem.hasAttribute("caption")) { + setWindowTitle(elem.attribute("caption")); + } } QString Window::getValue() -- cgit v1.2.3