[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