00001 #include <qobject.h> 00002 #include <qapplication.h> 00003 #include "mythobservable.h" 00004 00005 MythObservable::MythObservable() 00006 { 00007 } 00008 00009 MythObservable::~MythObservable() 00010 { 00011 } 00012 00013 void MythObservable::addListener(QObject *listener) 00014 { 00015 if (m_listeners.find(listener) == -1) 00016 m_listeners.append(listener); 00017 } 00018 00019 void MythObservable::removeListener(QObject *listener) 00020 { 00021 if (m_listeners.find(listener) != -1) 00022 m_listeners.remove(listener); 00023 } 00024 00025 QObject* MythObservable::firstListener() 00026 { 00027 return m_listeners.first(); 00028 } 00029 00030 QObject* MythObservable::nextListener() 00031 { 00032 return m_listeners.next(); 00033 } 00034 00035 QPtrList<QObject> MythObservable::getListeners() 00036 { 00037 return m_listeners; 00038 } 00039 00040 void MythObservable::dispatch(MythEvent &event) 00041 { 00042 QObject *listener = firstListener(); 00043 while (listener) 00044 { 00045 QApplication::postEvent(listener, event.clone()); 00046 listener = nextListener(); 00047 } 00048 } 00049 00050 void MythObservable::dispatchNow(MythEvent &event) 00051 { 00052 QObject *listener = firstListener(); 00053 while (listener) 00054 { 00055 QApplication::sendEvent(listener, event.clone()); 00056 listener = nextListener(); 00057 } 00058 } 00059
1.5.5