Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / PyEvent / PyEvent_EventFilter.cpp
1
2 #include "PyEvent_EventFilter.h"
3 #include "PyEvent_Event.h"
4
5 #include <QApplication>
6
7 PyEvent_EventFilter* PyEvent_EventFilter::myFilter = NULL;
8
9 /*!Constructor.*/
10 PyEvent_EventFilter::PyEvent_EventFilter()
11 : QObject()
12 {
13   /* VSR 13/01/03 : installing global event filter for the application */
14   qApp->installEventFilter( this );
15 }
16
17 /*!Destructor.*/
18 PyEvent_EventFilter::~PyEvent_EventFilter()
19 {
20   qApp->removeEventFilter( this );
21 }
22
23 /*!
24   Custom event filter
25 */
26 bool PyEvent_EventFilter::eventFilter( QObject* o, QEvent* e )
27 {
28   if ( e->type() == PyEvent_EVENT )
29   { 
30     PyEvent_Event* aSE = (PyEvent_Event*)((PyEvent_CustomEvent*)e)->data();
31     processEvent(aSE);
32     ((PyEvent_CustomEvent*)e)->setData( 0 );
33     return true;
34   }
35   return QObject::eventFilter( o, e );
36 }
37
38 /*!Process event.*/
39 void PyEvent_EventFilter::processEvent( PyEvent_Event* theEvent )
40 {
41   if(theEvent)
42     theEvent->ExecutePostedEvent();
43 }
44
45 /*!Create new instance of PyEvent_EventFilter*/
46 void PyEvent_EventFilter::Init()
47 {
48   if( myFilter==NULL )
49     myFilter = new PyEvent_EventFilter();
50 }
51
52 /*!Destroy filter.*/
53 void PyEvent_EventFilter::Destroy()
54 {
55   if( myFilter )
56   {
57     delete myFilter;
58     myFilter = NULL;
59   }
60 }