From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: 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 --- kmail/isubject.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 kmail/isubject.cpp (limited to 'kmail/isubject.cpp') diff --git a/kmail/isubject.cpp b/kmail/isubject.cpp new file mode 100644 index 000000000..13f8e8903 --- /dev/null +++ b/kmail/isubject.cpp @@ -0,0 +1,39 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "isubject.h" +#include "interfaces/observer.h" + +#include + +#include + +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::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::iterator it = mObserverList.begin() ; it != mObserverList.end() ; ++it ) + (*it)->update( this ); + } + +} + -- cgit v1.2.1