diff options
| -rw-r--r-- | client/builder.cc | 243 | ||||
| -rw-r--r-- | client/builder.h | 61 | 
2 files changed, 0 insertions, 304 deletions
| diff --git a/client/builder.cc b/client/builder.cc deleted file mode 100644 index bdbb85b..0000000 --- a/client/builder.cc +++ /dev/null @@ -1,243 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            builder.cc - * - *  Fri Aug 31 12:27:45 CEST 2007 - *  Copyright 2007 Lars Bisballe Jensen and Bent Bisballe Nyeng - *  elsenator@gmail.com and deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of Pracro. - * - *  Pracro is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  Pracro is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with Pracro; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include "builder.h" -#include "sendrecieve.h" -#include "widgets.h" -#include "macro.h" -#include <QVBoxLayout> -#include <QMessageBox> -#include <QDomDocument> -#include <QDomElement> -#include <QDomNode> -#include <QByteArray> - -extern QString cpr; -extern QString user; -extern QString host; -extern quint16 port; - -Builder::Builder(QDomDocument *xml_doc) -  : QObject() -{ -  // Execute the recursive function with documentElement -  recurser(xml_doc->documentElement(), NULL); -} - -Builder::~Builder() -{ -} - -void Builder::recurser(QDomNode xml_node, QWidget *parent) -{ -  QWidget *widget = NULL; -  QDomElement xml_elem = xml_node.toElement(); - -  if(xml_elem.tagName() == "macro") { -    // Assign the macro name and version to QStrings for use when comitting -    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() == "window") { -    Window *window = new Window(xml_elem); -    widget = window; -    mainwidget = window; - -  } else if(xml_elem.tagName() == "frame") { -    if(xml_elem.hasAttribute("caption")) { -      GroupBox *frame = new GroupBox(xml_elem); -      widget = frame; -    } else { -      Frame *frame = new Frame(xml_elem); -      widget = frame; -    } - -  } else if(xml_elem.tagName() == "label") { -    Label *label = new Label(xml_elem); -    widget = label; - -  } else if(xml_elem.tagName() == "lineedit") { -    LineEdit *lineedit = new LineEdit(xml_elem); -    widgets.push_back(lineedit); -    widget = lineedit; - -  } else if(xml_elem.tagName() == "button") { -    PushButton *pushbutton = new PushButton(xml_elem); -    //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())); -    connect(pushbutton, SIGNAL(act_cancel()), this, SLOT(cancel())); -    connect(pushbutton, SIGNAL(act_continue(QString)), this, SLOT(cont(QString))); -    widget = pushbutton; - -  } else if(xml_elem.tagName() == "textedit") { -    TextEdit *textedit = new TextEdit(xml_elem); -    widgets.push_back(textedit); -    widget = textedit; - -  } else if(xml_elem.tagName() == "checkbox") { -    CheckBox *checkbox = new CheckBox(xml_elem); -    widgets.push_back(checkbox); -    widget = checkbox; - -  } else if(xml_elem.tagName() == "radiobuttons") { -    RadioButtons *radiobuttons = new RadioButtons(xml_elem); -    widgets.push_back(radiobuttons); -    widget = radiobuttons; -    //return; // Don't iterate children - -  } else if(xml_elem.tagName() == "combobox") { -    ComboBox *combobox = new ComboBox(xml_elem); -    widgets.push_back(combobox); -    widget = combobox; -    //return; // Don't iterate children - -  } else if(xml_elem.tagName() == "listbox") { -    ListBox *listbox = new ListBox(xml_elem); -    widgets.push_back(listbox); -    widget = listbox; -    //return; // Don't iterate children -  } - -  QDomNodeList children = xml_node.childNodes(); - -  for (int i=0; i<children.count();i++) { -    QDomNode child = children.at(i); -    recurser(child, widget); -  } - -  if(parent != NULL && widget != NULL) parent->layout()->addWidget(widget); -  if(widget != NULL) widget->show(); -} - -bool Builder::doCommit() -{ -  // Check for, and count, errors on all entries before comitting -  int faulty = 0; // 0 initial errors - -  QVector< Widget* >::iterator i=widgets.begin(); -  while (i != widgets.end()) { -    Widget* w = *i; -    if(!w->isValid()) faulty++; // Regexp check, returns valid if entry passed -    i++; -  } - -  // If all entries passed validation, continue commit -  if(faulty == 0) { -    printf("Builder -> committing...\n"); -     -    // Build the XML commit -    QString xml_string; -    xml_string.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); -    xml_string.append("<pracro version=\"1.0\" cpr=\"" + cpr + "\" user=\"" + user + "\">\n"); -    xml_string.append("  <commit macro=\"" + macro + "\" version=\"" +  -		      version + "\">\n"); - -    // 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; -       -      xml_string.append("    <field name=\"" + w->getName() -		     + "\" value=\"" + w->getValue() + "\"/>\n"); -      i++; -    } -     -    xml_string.append("  </commit>\n"); -    xml_string.append("</pracro>\n"); -     -    // Print commit to stdout for debug purposes -    printf("%s\n", xml_string.toStdString().c_str()); - -    // Convert the commit to Utf-8 charset -    QByteArray xml_array = xml_string.toUtf8(); -    QDomDocument xml_result; - -    // Use setContent of QDomDocument to validate the xml commit -    if (!xml_result.setContent(xml_array)) { -      printf("Parse error: Invalid XML\n"); -    } -     -    // Commit the xml data to the server -    SendRecieve macro_commit(host, port); -    macro_commit.makeConnection(&xml_result); -    // Recieve answer from server whether successful or not -    //QByteArray ba = macro_commit.getResult(); -    QString ba = macro_commit.getResult(); -    printf("Server returned result: %s", ba.toStdString().c_str()); -    return true; -  } else { -    return false; -  } -} - -void Builder::commit() -{ -  if(doCommit()) { -    mainwidget->close(); -  } else { -   QMessageBox::critical(NULL, "Fejl", -			  "Makroen er ikke udfyldt korrekt, prøv igen.\n" -			  , QMessageBox::Ok); -  } -} - -void Builder::reset() -{ -  QMessageBox::warning(NULL, tr("Reset"), -                   tr("Du har valgt at nulstille de indtastede data.\n" -                      "Er du sikker?"), -                   QMessageBox::Yes | QMessageBox::Cancel); -  printf("Builder -> resetting...\n"); -} - -void Builder::cancel() -{ -  printf("Builder -> cancelling...\n"); -  mainwidget->close(); -} - -void Builder::cont(QString name) -{ -  QString macro; -  QVector< Widget* >::iterator i=widgets.begin(); -  while (i != widgets.end()) { -    Widget* w = *i; -    if(w->getName() == name) { -      macro = w->getValue(); -    } -    i++; -  } -  if(doCommit()) { -    new_macro("FIXME", macro); -    mainwidget->close(); -  } else { -   QMessageBox::critical(NULL, "Fejl", -			 "Makroen er ikke udfyldt korrekt, prøv igen.\n", -			 QMessageBox::Ok); -  } -  printf("%s : Builder -> continuing...\n", macro.toStdString().c_str()); -} diff --git a/client/builder.h b/client/builder.h deleted file mode 100644 index b7f6fb1..0000000 --- a/client/builder.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            builder.h - * - *  Fri Aug 31 12:27:45 CEST 2007 - *  Copyright 2007 Lars Bisballe Jensen and Bent Bisballe Nyeng - *  elsenator@gmail.com and deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of Pracro. - * - *  Pracro is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 2 of the License, or - *  (at your option) any later version. - * - *  Pracro is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with Pracro; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#ifndef __PRACRO_BUILDER_H__ -#define __PRACRO_BUILDER_H__ - -#include "widgets/widget.h" -#include <QDomDocument> -#include <QWidget> -#include <QDomNode> -#include <QObject> -#include <QVector> - -class Builder : public QObject -{ -  Q_OBJECT - -public: -  Builder(QDomDocument *xml_doc); -  ~Builder(); - -public slots: -  void commit(); -  void reset(); -  void cancel(); -  void cont(QString name); - -private: -  bool doCommit(); -  void recurser(QDomNode xml_node, QWidget *parent); -  QVector< Widget* > widgets; -  QString macro; -  QString version; -  QWidget *mainwidget; - -}; - -#endif/*__PRACRO_BUILDER_H__*/ | 
