[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdepim/libkcal
From:       Cornelius Schumacher <schumacher () kde ! org>
Date:       2003-01-29 13:53:42
[Download RAW message or body]

CVS commit by cschumac: 

Replaced AddIncidenceVisitor classes by a common template class
Incidence::AddVisitor.


  M +1 -15     calendar.cpp   1.37
  M +18 -0     incidence.h   1.27
  M +1 -16     resourcecalendar.cpp   1.8


--- kdepim/libkcal/calendar.cpp  #1.36:1.37
@@ -32,18 +32,4 @@
 using namespace KCal;
 
-class AddIncidenceVisitor : public Incidence::Visitor
-{
-  public:
-    /** Add incidence to calendar \a calendar. */
-    AddIncidenceVisitor( Calendar *calendar ) : mCalendar( calendar ) {}
-
-    bool visit( Event *e ) { return mCalendar->addEvent( e ); }
-    bool visit( Todo *t ) { return mCalendar->addTodo( t ); }
-    bool visit( Journal *j ) { return mCalendar->addJournal( j ); }
-
-  private:
-    Calendar *mCalendar;
-};
-
 Calendar::Calendar()
 {
@@ -309,5 +295,5 @@ QPtrList<Event> Calendar::events()
 bool Calendar::addIncidence(Incidence *i)
 {
-  AddIncidenceVisitor v(this);
+  Incidence::AddVisitor<Calendar> v(this);
 
   return i->accept(v);

--- kdepim/libkcal/incidence.h  #1.26:1.27
@@ -79,4 +79,22 @@ class Incidence : public IncidenceBase
     };
 
+    /**
+      This class implements a visitor for adding an Incidence to a resource
+      supporting addEvent(), addTodo() and addJournal() calls.
+    */
+    template<class T>
+    class AddVisitor : public Visitor
+    {
+      public:
+        AddVisitor( T *r ) : mResource( r ) {}
+
+        bool visit( Event *e ) { return mResource->addEvent( e ); }
+        bool visit( Todo *t ) { return mResource->addTodo( t ); }
+        bool visit( Journal *j ) { return mResource->addJournal( j ); }
+
+      private:
+        T *mResource;
+    };
+
     /** enumeration for describing an event's secrecy. */
     enum { SecrecyPublic = 0, SecrecyPrivate = 1, SecrecyConfidential = 2 };

--- kdepim/libkcal/resourcecalendar.cpp  #1.7:1.8
@@ -30,19 +30,4 @@
 using namespace KCal;
 
-class AddIncidenceVisitor : public Incidence::Visitor
-{
-  public:
-    /** Add incidence to calendar \a calendar. */
-    AddIncidenceVisitor( ResourceCalendar *r ) : mResource( r ) {}
-
-    bool visit( Event *e ) { return mResource->addEvent( e ); }
-    bool visit( Todo *t ) { return mResource->addTodo( t ); }
-    bool visit( Journal *j ) { return mResource->addJournal( j ); }
-
-  private:
-    ResourceCalendar *mResource;
-};
-
-
 ResourceCalendar::ResourceCalendar( const KConfig *config )
     : KRES::Resource( config )
@@ -63,5 +48,5 @@ void ResourceCalendar::writeConfig( KCon
 bool ResourceCalendar::addIncidence( Incidence *incidence )
 {
-  AddIncidenceVisitor v( this );
+  Incidence::AddVisitor<ResourceCalendar> v( this );
   return incidence->accept( v );
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic