From 96c3b5c064a26b8598943a122d9b6ecbdf1062e9 Mon Sep 17 00:00:00 2001
From: senator <senator>
Date: Mon, 17 Mar 2008 11:29:52 +0000
Subject: recent changes, dunno what exactly, but perhaps something with moving
 on to next dialog by clicking next

---
 client/builder.cc | 18 ++++++++++++++++++
 client/builder.h  |  1 +
 client/macro.cc   | 34 +++++++++++++++++++++++++++++++++-
 client/macro.h    |  9 ++++++++-
 client/main.cc    | 13 ++++++++-----
 5 files changed, 68 insertions(+), 7 deletions(-)

(limited to 'client')

diff --git a/client/builder.cc b/client/builder.cc
index 29c42c6..af44fd8 100644
--- a/client/builder.cc
+++ b/client/builder.cc
@@ -69,9 +69,11 @@ void Builder::recurser(QDomNode xml_node, QWidget *parent)
 
   } 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()), this, SLOT(cont("fisk")));
     widget = pushbutton;
 
   } else if(xml_elem.tagName() == "textedit") {
@@ -190,3 +192,19 @@ void Builder::cancel()
 {
   printf("Builder -> cancelling...\n");
 }
+
+void Builder::cont(QString name)
+{
+  /*
+  QVector< Widget* >::iterator i=widgets.begin();
+  while (i != widgets.end()) {
+    Widget* w = *i;
+    
+    if(w->getName()
+    xml_string.append("    <field name=\"" + w->getName()
+		      + "\" value=\"" + w->getValue() + "\"/>\n");
+    i++;
+  }
+  */
+  printf("%s : Builder -> continuing...\n", name.toStdString().c_str());
+}
diff --git a/client/builder.h b/client/builder.h
index 586370d..534480f 100644
--- a/client/builder.h
+++ b/client/builder.h
@@ -47,6 +47,7 @@ public slots:
   void commit();
   void reset();
   void cancel();
+  void cont(QString name);
 
 private:
   void recurser(QDomNode xml_node, QWidget *parent);
diff --git a/client/macro.cc b/client/macro.cc
index ec520f0..654557d 100644
--- a/client/macro.cc
+++ b/client/macro.cc
@@ -28,10 +28,22 @@
 #include "builder.h"
 #include "sendrecieve.h"
 #include <QDomDocument>
+#include <QApplication>
+
+#define MY_EVENT_ID 65432
+
+class MyEvent : public QEvent {
+public:
+  MyEvent(QString macro) : QEvent((QEvent::Type)MY_EVENT_ID)
+  {
+    this->macro = macro;
+  }
+  QString macro;
+};
 
 static QDomDocument xml_request(QString name);
 
-void macro(QString name)
+void create_macro(QString name)
 {
   // Build the XML request
   QDomDocument xml_req = xml_request(name);
@@ -55,6 +67,26 @@ void macro(QString name)
   Builder *builder = new Builder(&xml_doc);
 }
 
+bool MyEventHandler::eventFilter( QObject *o, QEvent *e )
+{
+
+  if ( e->type() == MY_EVENT_ID ) {
+    MyEvent *event = (MyEvent*)e;
+    create_macro(event->macro);
+    // ... DO SOMETHING WITH EVENT
+    return TRUE; // eat event
+  } else {
+    // standard event processing
+    return FALSE;
+  }
+}
+
+void new_macro(QString macro)
+{
+  MyEvent *event = new MyEvent(macro);
+  qApp->postEvent(qApp, event);
+}
+
 static QDomDocument xml_request(QString name)
 {
   // Create the xml request array
diff --git a/client/macro.h b/client/macro.h
index 36f4f4f..9863d3a 100644
--- a/client/macro.h
+++ b/client/macro.h
@@ -28,7 +28,14 @@
 #define __PRACRO_MACRO_H__
 
 #include <QString>
+#include <QObject>
+#include <QEvent>
 
-void macro(QString name);
+class MyEventHandler : public QObject {
+protected:
+  bool eventFilter( QObject *o, QEvent *e );
+};
+
+void new_macro(QString name);
 
 #endif/*__PRACRO_MACRO_H__*/
diff --git a/client/main.cc b/client/main.cc
index a37ed1e..025b713 100644
--- a/client/main.cc
+++ b/client/main.cc
@@ -25,16 +25,19 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
  */
 
-#include "macro.h"
-#include "sendrecieve.h"
 #include <QApplication>
+#include <QObject>
+#include <QEvent>
+#include "macro.h"
 
 int main(int argc, char *argv[])
 {
   QApplication app(argc, argv);
-
-  macro("example");
+  
+  MyEventHandler *eventhandler = new MyEventHandler();
+  app.installEventFilter( eventhandler );
+  
+  new_macro("example");
 
   return app.exec();
 }
-
-- 
cgit v1.2.3