summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-08-02 00:52:35 (UTC)
committer zautrix <zautrix>2004-08-02 00:52:35 (UTC)
commit54157cb44316de72d776cfae70bdadf6c52f4773 (patch) (unidiff)
tree953c8ae225a54fc43a7298d49b08e821bf741cb9
parent3ebd85e83e6f9d4ac59ce1828548f7236e2b1af0 (diff)
downloadkdepimpi-54157cb44316de72d776cfae70bdadf6c52f4773.zip
kdepimpi-54157cb44316de72d776cfae70bdadf6c52f4773.tar.gz
kdepimpi-54157cb44316de72d776cfae70bdadf6c52f4773.tar.bz2
Hack, hack, hack
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp43
-rw-r--r--korganizer/calendarview.h2
-rw-r--r--libkcal/calendar.h4
-rw-r--r--libkcal/calendarlocal.cpp8
-rw-r--r--libkcal/calendarlocal.h4
-rw-r--r--libkcal/incidencebase.cpp12
-rw-r--r--libkcal/incidencebase.h3
-rw-r--r--libkcal/sharpformat.cpp18
8 files changed, 35 insertions, 59 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 9160e1d..cbe2a10 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -909,6 +909,12 @@ void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* t
909 } 909 }
910 910
911} 911}
912void CalendarView::checkExternalId( Incidence * inc )
913{
914 QPtrList<Event> lastSync = mCalendar->getExternLastSyncEvents() ;
915 checkExternSyncEvent( lastSync, inc );
916
917}
912bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode ) 918bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int mode )
913{ 919{
914 bool syncOK = true; 920 bool syncOK = true;
@@ -1026,7 +1032,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1026 QString pref = "e"; 1032 QString pref = "e";
1027 if ( inR->type() == "Todo" ) 1033 if ( inR->type() == "Todo" )
1028 pref = "t"; 1034 pref = "t";
1029 if ( des.find(pref+QString::number( inR->zaurusId() ) +"," ) >= 0 && mode != 5) { // delete it 1035 if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it
1030 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); 1036 inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE );
1031 //remote->deleteIncidence( inR ); 1037 //remote->deleteIncidence( inR );
1032 ++deletedEventR; 1038 ++deletedEventR;
@@ -1076,12 +1082,12 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int
1076 inR = remote->incidence( uid ); 1082 inR = remote->incidence( uid );
1077 if ( ! inR ) { 1083 if ( ! inR ) {
1078 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { 1084 if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
1079 if ( inL->zaurusId() >= 0 && mode != 4 ) { 1085 if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) {
1080 local->deleteIncidence( inL ); 1086 local->deleteIncidence( inL );
1081 ++deletedEventL; 1087 ++deletedEventL;
1082 } else { 1088 } else {
1083 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { 1089 if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) {
1084 inL->setZaurusId( -1 ); 1090 inL->setID(mCurrentSyncDevice, -1 );
1085 ++addedEventR; 1091 ++addedEventR;
1086 inL->setLastModified( modifiedCalendar ); 1092 inL->setLastModified( modifiedCalendar );
1087 remote->addIncidence( inL->clone() ); 1093 remote->addIncidence( inL->clone() );
@@ -1200,7 +1206,7 @@ void CalendarView::syncSharp()
1200 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) { 1206 if ( inc->tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) {
1201 loc = mCalendar->incidence(inc->uid() ); 1207 loc = mCalendar->incidence(inc->uid() );
1202 if ( loc ) { 1208 if ( loc ) {
1203 loc->setZaurusId( inc->zaurusId() ); 1209 loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) );
1204 loc->setZaurusUid( inc->zaurusUid() ); 1210 loc->setZaurusUid( inc->zaurusUid() );
1205 } 1211 }
1206 } 1212 }
@@ -1829,22 +1835,7 @@ void CalendarView::changeTodoDisplay(Todo *which, int action)
1829{ 1835{
1830 changeIncidenceDisplay((Incidence *)which, action); 1836 changeIncidenceDisplay((Incidence *)which, action);
1831} 1837}
1832void CalendarView::checkZaurusId( int id, bool todo ) 1838
1833{
1834 if ( id >= 0 ) {
1835 Incidence* lse = mCalendar->event( "last-syncEvent-Sharp-DTM");
1836 if ( lse ) {
1837 QString des = lse->description();
1838 QString pref = "e";
1839 if ( todo )
1840 pref = "t";
1841 des += pref+ QString::number ( id ) + ",";
1842 lse->setReadOnly( false );
1843 lse->setDescription( des );
1844 lse->setReadOnly( true );
1845 }
1846 }
1847}
1848void CalendarView::changeIncidenceDisplay(Incidence *which, int action) 1839void CalendarView::changeIncidenceDisplay(Incidence *which, int action)
1849{ 1840{
1850 updateUnmanagedViews(); 1841 updateUnmanagedViews();
@@ -2576,7 +2567,7 @@ void CalendarView::deleteTodo(Todo *todo)
2576 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2567 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2577 i18n("Delete To-Do")); 2568 i18n("Delete To-Do"));
2578 } else { 2569 } else {
2579 checkZaurusId( todo->zaurusId(), true ); 2570 checkExternalId( todo );
2580 calendar()->deleteTodo(todo); 2571 calendar()->deleteTodo(todo);
2581 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2572 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2582 updateView(); 2573 updateView();
@@ -2588,7 +2579,7 @@ void CalendarView::deleteTodo(Todo *todo)
2588 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."), 2579 KMessageBox::sorry(this,i18n("Cannot delete To-Do\nwhich has children."),
2589 i18n("Delete To-Do")); 2580 i18n("Delete To-Do"));
2590 } else { 2581 } else {
2591 checkZaurusId( todo->zaurusId(), true ); 2582 checkExternalId( todo );
2592 mCalendar->deleteTodo(todo); 2583 mCalendar->deleteTodo(todo);
2593 changeTodoDisplay( todo,KOGlobals::EVENTDELETED ); 2584 changeTodoDisplay( todo,KOGlobals::EVENTDELETED );
2594 updateView(); 2585 updateView();
@@ -2650,7 +2641,7 @@ void CalendarView::deleteEvent(Event *anEvent)
2650 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2641 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2651 schedule(Scheduler::Cancel,anEvent); 2642 schedule(Scheduler::Cancel,anEvent);
2652 2643
2653 checkZaurusId( anEvent->zaurusId()); 2644 checkExternalId( anEvent);
2654 mCalendar->deleteEvent(anEvent); 2645 mCalendar->deleteEvent(anEvent);
2655 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED); 2646 changeEventDisplay(anEvent,KOGlobals::EVENTDELETED);
2656 break; 2647 break;
@@ -2684,7 +2675,7 @@ void CalendarView::deleteEvent(Event *anEvent)
2684 case KMessageBox::Continue: // OK 2675 case KMessageBox::Continue: // OK
2685 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2676 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2686 schedule(Scheduler::Cancel,anEvent); 2677 schedule(Scheduler::Cancel,anEvent);
2687 checkZaurusId( anEvent->zaurusId()); 2678 checkExternalId( anEvent);
2688 mCalendar->deleteEvent(anEvent); 2679 mCalendar->deleteEvent(anEvent);
2689 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2680 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2690 break; 2681 break;
@@ -2692,7 +2683,7 @@ void CalendarView::deleteEvent(Event *anEvent)
2692 } else { 2683 } else {
2693 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0) 2684 if (anEvent->organizer()==KOPrefs::instance()->email() && anEvent->attendeeCount()>0)
2694 schedule(Scheduler::Cancel,anEvent); 2685 schedule(Scheduler::Cancel,anEvent);
2695 checkZaurusId( anEvent->zaurusId()); 2686 checkExternalId( anEvent);
2696 mCalendar->deleteEvent(anEvent); 2687 mCalendar->deleteEvent(anEvent);
2697 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED); 2688 changeEventDisplay(anEvent, KOGlobals::EVENTDELETED);
2698 } 2689 }
@@ -3446,7 +3437,7 @@ bool CalendarView::removeCompletedSubTodos( Todo* t )
3446 } 3437 }
3447 if ( deleteTodo ) { 3438 if ( deleteTodo ) {
3448 if ( t->isCompleted() ) { 3439 if ( t->isCompleted() ) {
3449 checkZaurusId( t->zaurusId(), true ); 3440 checkExternalId( t );
3450 mCalendar->deleteTodo( t ); 3441 mCalendar->deleteTodo( t );
3451 changeTodoDisplay( t,KOGlobals::EVENTDELETED ); 3442 changeTodoDisplay( t,KOGlobals::EVENTDELETED );
3452 } 3443 }
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 557554f..f7a1213 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -483,7 +483,7 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
483 483
484 QDateTime loadedFileVersion; 484 QDateTime loadedFileVersion;
485 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete ); 485 void checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* toDelete );
486 void checkZaurusId( int id, bool todo = false ); 486 void checkExternalId( Incidence * inc );
487 int mGlobalSyncMode; 487 int mGlobalSyncMode;
488 QString mCurrentSyncDevice; 488 QString mCurrentSyncDevice;
489 QString mCurrentSyncName; 489 QString mCurrentSyncName;
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index df5bbcf..d59bca6 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -162,7 +162,7 @@ public:
162 Retrieves an event on the basis of the unique string ID. 162 Retrieves an event on the basis of the unique string ID.
163 */ 163 */
164 virtual Event *event( const QString &UniqueStr ) = 0; 164 virtual Event *event( const QString &UniqueStr ) = 0;
165 virtual Event *event( int ) = 0; 165 virtual Event *event( QString, int ) = 0;
166 /** 166 /**
167 Builds and then returns a list of all events that match for the 167 Builds and then returns a list of all events that match for the
168 date specified. useful for dayView, etc. etc. 168 date specified. useful for dayView, etc. etc.
@@ -211,7 +211,7 @@ public:
211 returns a pointer or null. 211 returns a pointer or null.
212 */ 212 */
213 virtual Todo *todo( const QString &uid ) = 0; 213 virtual Todo *todo( const QString &uid ) = 0;
214 virtual Todo *todo( int ) = 0; 214 virtual Todo *todo( QString, int ) = 0;
215 /** 215 /**
216 Returns list of todos due on the specified date. 216 Returns list of todos due on the specified date.
217 */ 217 */
diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp
index 09ce9f0..e464a77 100644
--- a/libkcal/calendarlocal.cpp
+++ b/libkcal/calendarlocal.cpp
@@ -212,11 +212,11 @@ QPtrList<Todo> CalendarLocal::rawTodos()
212{ 212{
213 return mTodoList; 213 return mTodoList;
214} 214}
215Todo *CalendarLocal::todo( int id ) 215Todo *CalendarLocal::todo( QString syncProf, int id )
216{ 216{
217 Todo *todo; 217 Todo *todo;
218 for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) { 218 for ( todo = mTodoList.first(); todo; todo = mTodoList.next() ) {
219 if ( todo->zaurusId() == id ) return todo; 219 if ( todo->getID( syncProf ) == id ) return todo;
220 } 220 }
221 221
222 return 0; 222 return 0;
@@ -235,11 +235,11 @@ QPtrList<Event> CalendarLocal::getExternLastSyncEvents()
235 return el; 235 return el;
236 236
237} 237}
238Event *CalendarLocal::event( int id ) 238Event *CalendarLocal::event( QString syncProf, int id )
239{ 239{
240 Event *todo; 240 Event *todo;
241 for ( todo = mEventList.first(); todo; todo = mEventList.next() ) { 241 for ( todo = mEventList.first(); todo; todo = mEventList.next() ) {
242 if ( todo->zaurusId() == id ) return todo; 242 if ( todo->getID( syncProf ) == id ) return todo;
243 } 243 }
244 244
245 return 0; 245 return 0;
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index 3257198..4728063 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -175,8 +175,8 @@ class CalendarLocal : public Calendar
175 */ 175 */
176 QPtrList<Event> rawEvents( const QDate &start, const QDate &end, 176 QPtrList<Event> rawEvents( const QDate &start, const QDate &end,
177 bool inclusive = false ); 177 bool inclusive = false );
178 Todo *CalendarLocal::todo( int uid ); 178 Todo *todo( QString, int uid );
179 Event *CalendarLocal::event( int uid ); 179 Event *event( QString,int uid );
180 180
181 181
182 182
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp
index f1db8b7..5d8785b 100644
--- a/libkcal/incidencebase.cpp
+++ b/libkcal/incidencebase.cpp
@@ -38,7 +38,6 @@ IncidenceBase::IncidenceBase() :
38 mDuration = 0; 38 mDuration = 0;
39 mHasDuration = false; 39 mHasDuration = false;
40 mPilotId = 0; 40 mPilotId = 0;
41 mZaurusId = -1;
42 mZaurusUid = 0; 41 mZaurusUid = 0;
43 mExternalId = ":"; 42 mExternalId = ":";
44 mTempSyncStat = 0; 43 mTempSyncStat = 0;
@@ -62,7 +61,6 @@ IncidenceBase::IncidenceBase(const IncidenceBase &i) :
62 mFloats = i.mFloats; 61 mFloats = i.mFloats;
63 mLastModified = i.mLastModified; 62 mLastModified = i.mLastModified;
64 mPilotId = i.mPilotId; 63 mPilotId = i.mPilotId;
65 mZaurusId = i.mZaurusId;
66 mZaurusUid = i.mZaurusUid; 64 mZaurusUid = i.mZaurusUid;
67 mTempSyncStat = i.mTempSyncStat; 65 mTempSyncStat = i.mTempSyncStat;
68 mSyncStatus = i.mSyncStatus; 66 mSyncStatus = i.mSyncStatus;
@@ -342,16 +340,6 @@ int IncidenceBase::pilotId() const
342{ 340{
343 return mPilotId; 341 return mPilotId;
344} 342}
345void IncidenceBase::setZaurusId( int id )
346{
347 if (mReadOnly) return;
348 mZaurusId = id;
349}
350
351int IncidenceBase::zaurusId() const
352{
353 return mZaurusId;
354}
355 343
356int IncidenceBase::zaurusUid() const 344int IncidenceBase::zaurusUid() const
357{ 345{
diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h
index 2f85df6..e2950d3 100644
--- a/libkcal/incidencebase.h
+++ b/libkcal/incidencebase.h
@@ -126,8 +126,6 @@ class IncidenceBase : public CustomProperties
126 /** Return Pilot Id. */ 126 /** Return Pilot Id. */
127 int pilotId() const; 127 int pilotId() const;
128 128
129 void setZaurusId(int id);
130 int zaurusId() const;
131 void setZaurusUid(int id); 129 void setZaurusUid(int id);
132 int zaurusUid() const; 130 int zaurusUid() const;
133 void setTempSyncStat(int id); 131 void setTempSyncStat(int id);
@@ -161,7 +159,6 @@ class IncidenceBase : public CustomProperties
161 int mDuration; 159 int mDuration;
162 bool mHasDuration; 160 bool mHasDuration;
163 QString mExternalId; 161 QString mExternalId;
164 int mZaurusId;
165 int mZaurusUid; 162 int mZaurusUid;
166 int mTempSyncStat; 163 int mTempSyncStat;
167 164
diff --git a/libkcal/sharpformat.cpp b/libkcal/sharpformat.cpp
index d39d2dd..605a54d 100644
--- a/libkcal/sharpformat.cpp
+++ b/libkcal/sharpformat.cpp
@@ -85,12 +85,12 @@ class SharpParser : public QObject
85 85
86 if ( qName == "Event" ) { 86 if ( qName == "Event" ) {
87 Event *event; 87 Event *event;
88 event = existingCalendar->event( attList[0].toInt() ); 88 event = existingCalendar->event( "Sharp_DTM",attList[0].toInt() );
89 if ( event ) 89 if ( event )
90 event = (Event*)event->clone(); 90 event = (Event*)event->clone();
91 else 91 else
92 event = new Event; 92 event = new Event;
93 event->setZaurusId( attList[0].toInt() ); 93 event->setID("Sharp_DTM", attList[0].toInt() );
94 event->setZaurusUid( cSum ); 94 event->setZaurusUid( cSum );
95 event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); 95 event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL );
96 96
@@ -189,7 +189,7 @@ class SharpParser : public QObject
189 } else if ( qName == "Todo" ) { 189 } else if ( qName == "Todo" ) {
190 Todo *todo; 190 Todo *todo;
191 191
192 todo = existingCalendar->todo( attList[0].toInt() ); 192 todo = existingCalendar->todo( "Sharp_DTM", attList[0].toInt() );
193 if (todo ) 193 if (todo )
194 todo = (Todo*)todo->clone(); 194 todo = (Todo*)todo->clone();
195 else 195 else
@@ -201,7 +201,7 @@ class SharpParser : public QObject
201//3,Privat,20040317T000000,20040318T000000,20040319T000000,0,5,Call bbb,"notes123 bbb gggg ""bb "" " 201//3,Privat,20040317T000000,20040318T000000,20040319T000000,0,5,Call bbb,"notes123 bbb gggg ""bb "" "
202//2,"Familie,Freunde,Holiday",20040318T000000,20040324T000000,20040317T000000,1,2,tod2,notes 202//2,"Familie,Freunde,Holiday",20040318T000000,20040324T000000,20040317T000000,1,2,tod2,notes
203 203
204 todo->setZaurusId( attList[0].toInt() ); 204 todo->setID( "Sharp_DTM", attList[0].toInt() );
205 todo->setZaurusUid( cSum ); 205 todo->setZaurusUid( cSum );
206 todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); 206 todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
207 207
@@ -466,7 +466,7 @@ int SharpFormat::getNumFromRecord( QString answer, Incidence* inc )
466 int newnum = templist[0].toInt( &ok ); 466 int newnum = templist[0].toInt( &ok );
467 if ( ok && newnum > 0) { 467 if ( ok && newnum > 0) {
468 retval = newnum; 468 retval = newnum;
469 inc->setZaurusId( newnum ); 469 inc->setID( "Sharp_DTM",newnum );
470 inc->setZaurusUid( getCsum( templist ) ); 470 inc->setZaurusUid( getCsum( templist ) );
471 inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); 471 inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID );
472 } 472 }
@@ -520,7 +520,7 @@ bool SharpFormat::save( Calendar *calendar)
520 deleteEnt = true; 520 deleteEnt = true;
521 changeEnt = true; 521 changeEnt = true;
522 } 522 }
523 else if ( ev->zaurusId() == -1 ) { // add new 523 else if ( ev->getID("Sharp_DTM") == -1 ) { // add new
524 command = "(echo \"" + ePrefix + eString + "\" ) | db2file datebook -w -g -c " + codec+ " > "+ fileName; 524 command = "(echo \"" + ePrefix + eString + "\" ) | db2file datebook -w -g -c " + codec+ " > "+ fileName;
525 system ( command.utf8() ); 525 system ( command.utf8() );
526 QFile file( fileName ); 526 QFile file( fileName );
@@ -606,7 +606,7 @@ bool SharpFormat::save( Calendar *calendar)
606 deleteEnt = true; 606 deleteEnt = true;
607 changeEnt = true; 607 changeEnt = true;
608 } 608 }
609 else if ( to->zaurusId() == -1 ) { // add new 609 else if ( to->getID("Sharp_DTM") == -1 ) { // add new
610 command = "(echo \"" + tPrefix + eString + "\" ) | db2file todo -w -g -c " + codec+ " > "+ fileName; 610 command = "(echo \"" + tPrefix + eString + "\" ) | db2file todo -w -g -c " + codec+ " > "+ fileName;
611 system ( command.utf8() ); 611 system ( command.utf8() );
612 QFile file( fileName ); 612 QFile file( fileName );
@@ -696,7 +696,7 @@ QString SharpFormat::dtToString( const QDateTime& dti, bool useTZ )
696QString SharpFormat::getEventString( Event* event ) 696QString SharpFormat::getEventString( Event* event )
697{ 697{
698 QStringList list; 698 QStringList list;
699 list.append( QString::number(event->zaurusId() ) ); 699 list.append( QString::number(event->getID("Sharp_DTM") ) );
700 list.append( event->categories().join(",") ); 700 list.append( event->categories().join(",") );
701 if ( !event->summary().isEmpty() ) 701 if ( !event->summary().isEmpty() )
702 list.append( event->summary() ); 702 list.append( event->summary() );
@@ -860,7 +860,7 @@ QString SharpFormat::getEventString( Event* event )
860QString SharpFormat::getTodoString( Todo* todo ) 860QString SharpFormat::getTodoString( Todo* todo )
861{ 861{
862 QStringList list; 862 QStringList list;
863 list.append( QString::number( todo->zaurusId() ) ); 863 list.append( QString::number( todo->getID("Sharp_DTM") ) );
864 list.append( todo->categories().join(",") ); 864 list.append( todo->categories().join(",") );
865 865
866 if ( todo->hasStartDate() ) { 866 if ( todo->hasStartDate() ) {