summaryrefslogtreecommitdiff
path: root/client/macro.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/macro.cc')
-rw-r--r--client/macro.cc145
1 files changed, 0 insertions, 145 deletions
diff --git a/client/macro.cc b/client/macro.cc
deleted file mode 100644
index 8160c9f..0000000
--- a/client/macro.cc
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * macro.cc
- *
- * Fri Aug 31 13:40:17 CEST 2007
- * Copyright 2007 Bent Bisballe Nyeng and Lars Bisballe Jensen
- * deva@aasimon.org and elsenator@gmail.com
- ****************************************************************************/
-
-/*
- * 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 "macro.h"
-
-#include <QApplication>
-#include <QDomDocument>
-#include <QObject>
-#include <QEvent>
-#include <QLinkedList>
-
-#include "macrowindow.h"
-#include "netcom.h"
-
-#define MACRO_EVENT_ID 65432
-
-QLinkedList< MacroWindow * > macrowindows;
-
-extern QString cpr;
-extern QString user;
-extern QString host;
-extern quint16 port;
-
-/**
- * Macro Event used to trigger the creation of a new macro
- */
-class MacroEvent : public QEvent {
-public:
- MacroEvent(QString course, QString macro) :
- QEvent((QEvent::Type)MACRO_EVENT_ID),
- macro(macro),
- course(course) {}
- QString macro;
- QString course;
-};
-
-/**
- * Macro Event Filter used to catch the Macro Events.
- */
-class MacroEventFilter : public QObject {
-protected:
- bool eventFilter( QObject *o, QEvent *e );
-};
-
-/**
- * The single global macro event filter.
- * It is created the first time new_macro is called.
- */
-static MacroEventFilter *macro_event_filter = NULL;
-
-/**
- * Create the new macro
- */
-static void create_macro(QString course, QString macro)
-{
- NetCom netcom("", 0, "", "");
- QDomDocument xml_doc = netcom.send(course, macro);
-
- cleanup_macros();
-
- //
- // TODO: This is where the dependency checking should occur.
- //
-
- // Initiate the new macro window with the xml document and push
- // it to the window list
- QDomNodeList courses = xml_doc.documentElement().childNodes();
- QDomNode coursenode = courses.at(0); // There can be only one! (Swush, flomp)
- QDomNodeList macros = coursenode.childNodes();
- for(int j = 0; j < macros.count(); j++) {
- QDomNode macronode = macros.at(j);
- // Only create if the macro contains something.
- if(macronode.childNodes().count())
- macrowindows.push_back( new MacroWindow( netcom, macronode, "dims" ) );
- }
-}
-
-/**
- * Event filter callback method
- */
-bool MacroEventFilter::eventFilter(QObject *, QEvent *e)
-{
- if(e->type() == MACRO_EVENT_ID) {
- MacroEvent *event = (MacroEvent*)e;
- create_macro(event->course, event->macro);
- return TRUE; // eat event
- } else {
- return FALSE;
- }
-}
-
-/**
- * Delete all closed windows from window list
- */
-void cleanup_macros()
-{
- QLinkedList< MacroWindow * >::iterator i = macrowindows.begin();
- while(i != macrowindows.end()) {
- if( (*i)->isClosed() ) {
- delete *i;
- i = macrowindows.erase(i);
- } else {
- i++;
- }
- }
-}
-
-/**
- * Public macro creation function.
- * Initiates the creation of a new macro.
- */
-void new_macro(QString course, QString macro)
-{
- if(macro_event_filter == NULL) {
- macro_event_filter = new MacroEventFilter();
- qApp->installEventFilter( macro_event_filter );
- }
-
- MacroEvent *event = new MacroEvent(course, macro);
- qApp->postEvent(qApp, event);
- qApp->processEvents(); // To prevent QT from closing when no windows are present
-}