[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdepim/libkcal
From: Steffen Hansen <hansen () kde ! org>
Date: 2003-01-15 18:35:53
[Download RAW message or body]
CVS commit by steffen:
support multiple Observers per IncidenceBase
M +13 -5 incidencebase.cpp 1.15
M +2 -2 incidencebase.h 1.10
--- kdepim/libkcal/incidencebase.h #1.9:1.10
@@ -128,5 +128,5 @@ class IncidenceBase : public CustomPrope
void registerObserver( Observer * );
-
+ void unRegisterObserver( Observer * );
void updated();
@@ -151,5 +151,5 @@ class IncidenceBase : public CustomPrope
int mSyncStatus; // status (for sync)
- Observer *mObserver;
+ QPtrList<Observer> mObservers;
};
--- kdepim/libkcal/incidencebase.cpp #1.14:1.15
@@ -31,5 +31,5 @@ using namespace KCal;
IncidenceBase::IncidenceBase() :
mReadOnly(false), mFloats(true), mDuration(0), mHasDuration(false),
- mPilotId(0), mSyncStatus(SYNCMOD), mObserver(0)
+ mPilotId(0), mSyncStatus(SYNCMOD)
{
setUid(CalFormat::createUniqueId());
@@ -58,5 +58,5 @@ IncidenceBase::IncidenceBase(const Incid
// The copied object is a new one, so it isn't observed by the observer
// of the original object.
- mObserver = 0;
+ mObservers.clear();
mAttendees.setAutoDelete( true );
@@ -317,11 +317,19 @@ int IncidenceBase::pilotId() const
void IncidenceBase::registerObserver( IncidenceBase::Observer *observer )
{
- mObserver = observer;
+ if( !mObservers.contains(observer) ) mObservers.append( observer );
+}
+
+void IncidenceBase::unRegisterObserver( IncidenceBase::Observer *observer )
+{
+ mObservers.remove( observer );
}
void IncidenceBase::updated()
{
- if ( mObserver ) {
- mObserver->incidenceUpdated( this );
+ QPtrListIterator<Observer> it(mObservers);
+ while( it.current() ) {
+ Observer *o = it.current();
+ ++it;
+ o->incidenceUpdated( this );
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic