summaryrefslogtreecommitdiffstats
path: root/kmail/isubject.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /kmail/isubject.cpp
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmail/isubject.cpp')
-rw-r--r--kmail/isubject.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/kmail/isubject.cpp b/kmail/isubject.cpp
new file mode 100644
index 00000000..13f8e890
--- /dev/null
+++ b/kmail/isubject.cpp
@@ -0,0 +1,39 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "isubject.h"
+#include "interfaces/observer.h"
+
+#include <qtl.h>
+
+#include <kdebug.h>
+
+namespace KMail {
+
+ ISubject::~ISubject()
+ {
+ mObserverList.clear();
+ }
+
+ void ISubject::attach( Interface::Observer * pObserver )
+ {
+ if ( qFind( mObserverList.begin(), mObserverList.end(), pObserver ) == mObserverList.end() )
+ mObserverList.push_back( pObserver );
+ }
+
+ void ISubject::detach( Interface::Observer * pObserver ) {
+ QValueVector<Interface::Observer*>::iterator it = qFind( mObserverList.begin(), mObserverList.end(), pObserver );
+ if ( it != mObserverList.end() )
+ mObserverList.erase( it );
+ }
+
+ void ISubject::notify()
+ {
+ kdDebug(5006) << "ISubject::notify " << mObserverList.size() << endl;
+ for ( QValueVector<Interface::Observer*>::iterator it = mObserverList.begin() ; it != mObserverList.end() ; ++it )
+ (*it)->update( this );
+ }
+
+}
+