summaryrefslogtreecommitdiffabout
path: root/libkcal
Side-by-side diff
Diffstat (limited to 'libkcal') (more/less context) (ignore whitespace changes)
-rw-r--r--libkcal/calendar.h1
-rw-r--r--libkcal/calendarlocal.cpp23
-rw-r--r--libkcal/calendarlocal.h1
-rw-r--r--libkcal/incidencebase.cpp5
4 files changed, 28 insertions, 2 deletions
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index b801186..b7d6a1f 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -80,2 +80,3 @@ public:
virtual QPtrList<Event> getExternLastSyncEvents() = 0;
+ virtual void removeSyncInfo( QString syncProfile) = 0;
virtual bool isSaving() { return false; }
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index 21b4aaf..3f46d53 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -223,3 +223,24 @@ Todo *CalendarLocal::todo( QString syncProf, QString id )
}
-
+void CalendarLocal::removeSyncInfo( QString syncProfile)
+{
+ QPtrList<Incidence> all = rawIncidences() ;
+ Incidence *inc;
+ for ( inc = all.first(); inc; inc = all.next() ) {
+ inc->removeID( syncProfile );
+ }
+ if ( syncProfile.isEmpty() ) {
+ QPtrList<Event> el;
+ Event *todo;
+ for ( todo = mEventList.first(); todo; todo = mEventList.next() ) {
+ if ( todo->uid().left( 15 ) == QString("last-syncEvent-") )
+ el.append( todo );
+ }
+ for ( todo = el.first(); todo; todo = el.next() ) {
+ deleteIncidence ( todo );
+ }
+ } else {
+ Event *lse = event( "last-syncEvent-"+ syncProfile);
+ deleteIncidence ( lse );
+ }
+}
QPtrList<Event> CalendarLocal::getExternLastSyncEvents()
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index 5b6c64c..98ec710 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -71,2 +71,3 @@ class CalendarLocal : public Calendar
*/
+ void removeSyncInfo( QString syncProfile);
bool addAnniversaryNoDup( Event *event );
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp
index b36dc1a..9aa517c 100644
--- a/libkcal/incidencebase.cpp
+++ b/libkcal/incidencebase.cpp
@@ -355,3 +355,6 @@ void IncidenceBase::removeID(const QString &prof)
{
- mExternalId = KIdManager::removeId ( mExternalId, prof);
+ if ( prof.isEmpty() )
+ mExternalId = ":";
+ else
+ mExternalId = KIdManager::removeId ( mExternalId, prof);