author | zautrix <zautrix> | 2004-08-07 11:30:06 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-08-07 11:30:06 (UTC) |
commit | 835cc1b2c671bf2ab228362cf4ea2e4a04a1d5e5 (patch) (unidiff) | |
tree | 816191299c688a7de051703af11d0ba4f8c8247f /libkcal | |
parent | 55ad0e5d505055016a0e5032bcc8f9355dfff210 (diff) | |
download | kdepimpi-835cc1b2c671bf2ab228362cf4ea2e4a04a1d5e5.zip kdepimpi-835cc1b2c671bf2ab228362cf4ea2e4a04a1d5e5.tar.gz kdepimpi-835cc1b2c671bf2ab228362cf4ea2e4a04a1d5e5.tar.bz2 |
More sync stuff converted
-rw-r--r-- | libkcal/incidencebase.cpp | 96 | ||||
-rw-r--r-- | libkcal/incidencebase.h | 13 | ||||
-rw-r--r-- | libkcal/sharpformat.cpp | 20 |
3 files changed, 35 insertions, 94 deletions
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp index 5d8785b..15c4fa8 100644 --- a/libkcal/incidencebase.cpp +++ b/libkcal/incidencebase.cpp | |||
@@ -8,73 +8,72 @@ | |||
8 | version 2 of the License, or (at your option) any later version. | 8 | version 2 of the License, or (at your option) any later version. |
9 | 9 | ||
10 | This library is distributed in the hope that it will be useful, | 10 | This library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Library General Public License for more details. | 13 | Library General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Library General Public License | 15 | You should have received a copy of the GNU Library General Public License |
16 | along with this library; see the file COPYING.LIB. If not, write to | 16 | along with this library; see the file COPYING.LIB. If not, write to |
17 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 17 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
18 | Boston, MA 02111-1307, USA. | 18 | Boston, MA 02111-1307, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <kglobal.h> | 21 | #include <kglobal.h> |
22 | #include <klocale.h> | 22 | #include <klocale.h> |
23 | #include <kdebug.h> | 23 | #include <kdebug.h> |
24 | #include <kidmanager.h> | ||
24 | 25 | ||
25 | #include "calformat.h" | 26 | #include "calformat.h" |
26 | 27 | ||
27 | #include "incidencebase.h" | 28 | #include "incidencebase.h" |
28 | 29 | ||
29 | using namespace KCal; | 30 | using namespace KCal; |
30 | 31 | ||
31 | IncidenceBase::IncidenceBase() : | 32 | IncidenceBase::IncidenceBase() : |
32 | mReadOnly(false), mFloats(true), mDuration(0), mHasDuration(false), | 33 | mReadOnly(false), mFloats(true), mDuration(0), mHasDuration(false), |
33 | mPilotId(0), mSyncStatus(SYNCMOD) | 34 | mPilotId(0), mSyncStatus(SYNCMOD) |
34 | { | 35 | { |
35 | setUid(CalFormat::createUniqueId()); | 36 | setUid(CalFormat::createUniqueId()); |
36 | mOrganizer = ""; | 37 | mOrganizer = ""; |
37 | mFloats = false; | 38 | mFloats = false; |
38 | mDuration = 0; | 39 | mDuration = 0; |
39 | mHasDuration = false; | 40 | mHasDuration = false; |
40 | mPilotId = 0; | 41 | mPilotId = 0; |
41 | mZaurusUid = 0; | ||
42 | mExternalId = ":"; | 42 | mExternalId = ":"; |
43 | mTempSyncStat = 0; | 43 | mTempSyncStat = 0; |
44 | mSyncStatus = 0; | 44 | mSyncStatus = 0; |
45 | mAttendees.setAutoDelete( true ); | 45 | mAttendees.setAutoDelete( true ); |
46 | } | 46 | } |
47 | 47 | ||
48 | IncidenceBase::IncidenceBase(const IncidenceBase &i) : | 48 | IncidenceBase::IncidenceBase(const IncidenceBase &i) : |
49 | CustomProperties( i ) | 49 | CustomProperties( i ) |
50 | { | 50 | { |
51 | mReadOnly = i.mReadOnly; | 51 | mReadOnly = i.mReadOnly; |
52 | mDtStart = i.mDtStart; | 52 | mDtStart = i.mDtStart; |
53 | mDuration = i.mDuration; | 53 | mDuration = i.mDuration; |
54 | mHasDuration = i.mHasDuration; | 54 | mHasDuration = i.mHasDuration; |
55 | mOrganizer = i.mOrganizer; | 55 | mOrganizer = i.mOrganizer; |
56 | mUid = i.mUid; | 56 | mUid = i.mUid; |
57 | QPtrList<Attendee> attendees = i.attendees(); | 57 | QPtrList<Attendee> attendees = i.attendees(); |
58 | for( Attendee *a = attendees.first(); a; a = attendees.next() ) { | 58 | for( Attendee *a = attendees.first(); a; a = attendees.next() ) { |
59 | mAttendees.append( new Attendee( *a ) ); | 59 | mAttendees.append( new Attendee( *a ) ); |
60 | } | 60 | } |
61 | mFloats = i.mFloats; | 61 | mFloats = i.mFloats; |
62 | mLastModified = i.mLastModified; | 62 | mLastModified = i.mLastModified; |
63 | mPilotId = i.mPilotId; | 63 | mPilotId = i.mPilotId; |
64 | mZaurusUid = i.mZaurusUid; | ||
65 | mTempSyncStat = i.mTempSyncStat; | 64 | mTempSyncStat = i.mTempSyncStat; |
66 | mSyncStatus = i.mSyncStatus; | 65 | mSyncStatus = i.mSyncStatus; |
67 | mExternalId = i.mExternalId; | 66 | mExternalId = i.mExternalId; |
68 | // The copied object is a new one, so it isn't observed by the observer | 67 | // The copied object is a new one, so it isn't observed by the observer |
69 | // of the original object. | 68 | // of the original object. |
70 | mObservers.clear(); | 69 | mObservers.clear(); |
71 | 70 | ||
72 | mAttendees.setAutoDelete( true ); | 71 | mAttendees.setAutoDelete( true ); |
73 | } | 72 | } |
74 | 73 | ||
75 | IncidenceBase::~IncidenceBase() | 74 | IncidenceBase::~IncidenceBase() |
76 | { | 75 | { |
77 | } | 76 | } |
78 | 77 | ||
79 | 78 | ||
80 | bool KCal::operator==( const IncidenceBase& i1, const IncidenceBase& i2 ) | 79 | bool KCal::operator==( const IncidenceBase& i1, const IncidenceBase& i2 ) |
@@ -328,120 +327,65 @@ void IncidenceBase::setSyncStatus(int stat) | |||
328 | int IncidenceBase::syncStatus() const | 327 | int IncidenceBase::syncStatus() const |
329 | { | 328 | { |
330 | return mSyncStatus; | 329 | return mSyncStatus; |
331 | } | 330 | } |
332 | 331 | ||
333 | void IncidenceBase::setPilotId( int id ) | 332 | void IncidenceBase::setPilotId( int id ) |
334 | { | 333 | { |
335 | if (mReadOnly) return; | 334 | if (mReadOnly) return; |
336 | mPilotId = id; | 335 | mPilotId = id; |
337 | } | 336 | } |
338 | 337 | ||
339 | int IncidenceBase::pilotId() const | 338 | int IncidenceBase::pilotId() const |
340 | { | 339 | { |
341 | return mPilotId; | 340 | return mPilotId; |
342 | } | 341 | } |
343 | 342 | ||
344 | int IncidenceBase::zaurusUid() const | ||
345 | { | ||
346 | return mZaurusUid; | ||
347 | } | ||
348 | void IncidenceBase::setZaurusUid( int id ) | ||
349 | { | ||
350 | if (mReadOnly) return; | ||
351 | mZaurusUid = id; | ||
352 | } | ||
353 | |||
354 | int IncidenceBase::tempSyncStat() const | 343 | int IncidenceBase::tempSyncStat() const |
355 | { | 344 | { |
356 | return mTempSyncStat; | 345 | return mTempSyncStat; |
357 | } | 346 | } |
358 | void IncidenceBase::setTempSyncStat( int id ) | 347 | void IncidenceBase::setTempSyncStat( int id ) |
359 | { | 348 | { |
360 | if (mReadOnly) return; | 349 | if (mReadOnly) return; |
361 | mTempSyncStat = id; | 350 | mTempSyncStat = id; |
362 | } | 351 | } |
363 | 352 | ||
364 | void IncidenceBase::setID( const QString & prof , int id ) | 353 | void IncidenceBase::removeID(const QString &prof) |
365 | { | 354 | { |
366 | int num = mExternalId.find( ":"+prof+";" ); | 355 | mExternalId = KIdManager::removeId ( mExternalId, prof); |
367 | if ( num >= 0 ) { | 356 | |
368 | int len = prof.length()+2; | 357 | } |
369 | int end = mExternalId.find( ";", num+len ); | 358 | void IncidenceBase::setID( const QString & prof , const QString & id ) |
370 | if ( end > 0 ) { | 359 | { |
371 | mExternalId = mExternalId.left( num+len ) +QString::number( id)+mExternalId.mid( end ); | 360 | mExternalId = KIdManager::setId ( mExternalId, prof, id ); |
372 | } else | 361 | } |
373 | qDebug("Error in IncidenceBase::setID "); | 362 | QString IncidenceBase::getID( const QString & prof) |
374 | } else { | 363 | { |
375 | mExternalId += prof+";"+QString::number( id) +";0:"; | 364 | return KIdManager::getId ( mExternalId, prof ); |
376 | } | ||
377 | qDebug("setID*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
378 | } | ||
379 | int IncidenceBase::getID( const QString & prof) | ||
380 | { | ||
381 | int ret = -1; | ||
382 | int num = mExternalId.find(":"+ prof+";" ); | ||
383 | if ( num >= 0 ) { | ||
384 | int len = prof.length()+2; | ||
385 | int end = mExternalId.find( ";", num+len ); | ||
386 | if ( end > 0 ) { | ||
387 | bool ok; | ||
388 | ret = mExternalId.mid ( num + len,end-len-num).toInt( &ok ); | ||
389 | if (!ok) | ||
390 | ret = -1; | ||
391 | } | ||
392 | } | ||
393 | qDebug("getID*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); | ||
394 | return ret; | ||
395 | } | 365 | } |
396 | 366 | ||
397 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: | 367 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: |
398 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 | 368 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 |
399 | void IncidenceBase::setCsum( const QString & prof , int id ) | 369 | void IncidenceBase::setCsum( const QString & prof , const QString & id ) |
400 | { | 370 | { |
401 | int num = mExternalId.find( ":"+prof+";"); | 371 | mExternalId = KIdManager::setCsum ( mExternalId, prof, id ); |
402 | if ( num >= 0 ) { | 372 | } |
403 | int len = prof.length()+2; | 373 | QString IncidenceBase::getCsum( const QString & prof) |
404 | num = mExternalId.find( ";", num+len ); | 374 | { |
405 | int end = mExternalId.find( ":", num+1 ); | 375 | return KIdManager::getCsum ( mExternalId, prof ); |
406 | if ( end > 0 ) { | ||
407 | mExternalId = mExternalId.left( num ) +QString::number(id)+mExternalId.mid( end ); | ||
408 | } else | ||
409 | qDebug("Error in IncidenceBase::setCsum "); | ||
410 | } else { | ||
411 | mExternalId += prof+";-1;"+QString::number( id) +":"; | ||
412 | } | ||
413 | qDebug("setCsum*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
414 | } | ||
415 | int IncidenceBase::getCsum( const QString & prof) | ||
416 | { | ||
417 | int ret = -1; | ||
418 | int num = mExternalId.find( ":"+prof+";" ); | ||
419 | if ( num >= 0 ) { | ||
420 | int len = prof.length()+2; | ||
421 | num = mExternalId.find( ";", num+len ); | ||
422 | int end = mExternalId.find( ":", num+1 ); | ||
423 | if ( end > 0 ) { | ||
424 | bool ok; | ||
425 | ret = mExternalId.mid ( num ,end-num).toInt( &ok ); | ||
426 | if (!ok) | ||
427 | ret = -1; | ||
428 | } | ||
429 | } | ||
430 | qDebug("getCsum*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); | ||
431 | return ret; | ||
432 | } | 376 | } |
433 | 377 | ||
434 | void IncidenceBase::setIDStr( const QString & s ) | 378 | void IncidenceBase::setIDStr( const QString & s ) |
435 | { | 379 | { |
436 | if (mReadOnly) return; | 380 | if (mReadOnly) return; |
437 | mExternalId = s; | 381 | mExternalId = s; |
438 | } | 382 | } |
439 | 383 | ||
440 | QString IncidenceBase::IDStr() const | 384 | QString IncidenceBase::IDStr() const |
441 | { | 385 | { |
442 | return mExternalId ; | 386 | return mExternalId ; |
443 | } | 387 | } |
444 | void IncidenceBase::registerObserver( IncidenceBase::Observer *observer ) | 388 | void IncidenceBase::registerObserver( IncidenceBase::Observer *observer ) |
445 | { | 389 | { |
446 | if( !mObservers.contains(observer) ) mObservers.append( observer ); | 390 | if( !mObservers.contains(observer) ) mObservers.append( observer ); |
447 | } | 391 | } |
diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h index e2950d3..e02d03a 100644 --- a/libkcal/incidencebase.h +++ b/libkcal/incidencebase.h | |||
@@ -113,63 +113,60 @@ class IncidenceBase : public CustomProperties | |||
113 | Attendee* attendeeByMail(const QString &); | 113 | Attendee* attendeeByMail(const QString &); |
114 | /** Return first Attendee with one of this emails */ | 114 | /** Return first Attendee with one of this emails */ |
115 | Attendee* attendeeByMails(const QStringList &, const QString& email = QString::null); | 115 | Attendee* attendeeByMails(const QStringList &, const QString& email = QString::null); |
116 | 116 | ||
117 | /** pilot syncronization states */ | 117 | /** pilot syncronization states */ |
118 | enum { SYNCNONE = 0, SYNCMOD = 1, SYNCDEL = 3 }; | 118 | enum { SYNCNONE = 0, SYNCMOD = 1, SYNCDEL = 3 }; |
119 | /** Set synchronisation satus. */ | 119 | /** Set synchronisation satus. */ |
120 | void setSyncStatus(int stat); | 120 | void setSyncStatus(int stat); |
121 | /** Return synchronisation status. */ | 121 | /** Return synchronisation status. */ |
122 | int syncStatus() const; | 122 | int syncStatus() const; |
123 | 123 | ||
124 | /** Set Pilot Id. */ | 124 | /** Set Pilot Id. */ |
125 | void setPilotId(int id); | 125 | void setPilotId(int id); |
126 | /** Return Pilot Id. */ | 126 | /** Return Pilot Id. */ |
127 | int pilotId() const; | 127 | int pilotId() const; |
128 | 128 | ||
129 | void setZaurusUid(int id); | ||
130 | int zaurusUid() const; | ||
131 | void setTempSyncStat(int id); | 129 | void setTempSyncStat(int id); |
132 | int tempSyncStat() const; | 130 | int tempSyncStat() const; |
133 | void setIDStr( const QString & ); | 131 | void setIDStr( const QString & ); |
134 | QString IDStr() const; | 132 | QString IDStr() const; |
135 | void setID( const QString &, int ); | 133 | void setID( const QString &, const QString & ); |
136 | int getID( const QString & ); | 134 | QString getID( const QString & ); |
137 | void setCsum( const QString &, int ); | 135 | void setCsum( const QString &, const QString & ); |
138 | int getCsum( const QString & ); | 136 | QString getCsum( const QString & ); |
139 | 137 | void removeID(const QString &); | |
140 | 138 | ||
141 | void registerObserver( Observer * ); | 139 | void registerObserver( Observer * ); |
142 | void unRegisterObserver( Observer * ); | 140 | void unRegisterObserver( Observer * ); |
143 | void updated(); | 141 | void updated(); |
144 | 142 | ||
145 | protected: | 143 | protected: |
146 | bool mReadOnly; | 144 | bool mReadOnly; |
147 | QDateTime getEvenTime( QDateTime ); | 145 | QDateTime getEvenTime( QDateTime ); |
148 | 146 | ||
149 | private: | 147 | private: |
150 | // base components | 148 | // base components |
151 | QDateTime mDtStart; | 149 | QDateTime mDtStart; |
152 | QString mOrganizer; | 150 | QString mOrganizer; |
153 | QString mUid; | 151 | QString mUid; |
154 | QDateTime mLastModified; | 152 | QDateTime mLastModified; |
155 | QPtrList<Attendee> mAttendees; | 153 | QPtrList<Attendee> mAttendees; |
156 | 154 | ||
157 | bool mFloats; | 155 | bool mFloats; |
158 | 156 | ||
159 | int mDuration; | 157 | int mDuration; |
160 | bool mHasDuration; | 158 | bool mHasDuration; |
161 | QString mExternalId; | 159 | QString mExternalId; |
162 | int mZaurusUid; | ||
163 | int mTempSyncStat; | 160 | int mTempSyncStat; |
164 | 161 | ||
165 | // PILOT SYNCHRONIZATION STUFF | 162 | // PILOT SYNCHRONIZATION STUFF |
166 | int mPilotId; // unique id for pilot sync | 163 | int mPilotId; // unique id for pilot sync |
167 | int mSyncStatus; // status (for sync) | 164 | int mSyncStatus; // status (for sync) |
168 | 165 | ||
169 | QPtrList<Observer> mObservers; | 166 | QPtrList<Observer> mObservers; |
170 | }; | 167 | }; |
171 | 168 | ||
172 | bool operator==( const IncidenceBase&, const IncidenceBase& ); | 169 | bool operator==( const IncidenceBase&, const IncidenceBase& ); |
173 | } | 170 | } |
174 | 171 | ||
175 | #endif | 172 | #endif |
diff --git a/libkcal/sharpformat.cpp b/libkcal/sharpformat.cpp index 605a54d..e8934bf 100644 --- a/libkcal/sharpformat.cpp +++ b/libkcal/sharpformat.cpp | |||
@@ -77,34 +77,34 @@ class SharpParser : public QObject | |||
77 | skip = false; | 77 | skip = false; |
78 | break; | 78 | break; |
79 | } | 79 | } |
80 | ++i ; | 80 | ++i ; |
81 | } | 81 | } |
82 | if ( skip ) | 82 | if ( skip ) |
83 | return false; | 83 | return false; |
84 | ulong cSum = SharpFormat::getCsum(attList ); | 84 | ulong cSum = SharpFormat::getCsum(attList ); |
85 | 85 | ||
86 | if ( qName == "Event" ) { | 86 | if ( qName == "Event" ) { |
87 | Event *event; | 87 | Event *event; |
88 | event = existingCalendar->event( "Sharp_DTM",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->setID("Sharp_DTM", attList[0].toInt() ); | 93 | event->setID("Sharp_DTM", attList[0] ); |
94 | event->setZaurusUid( cSum ); | 94 | event->setCsum( "Sharp_DTM", QString::number( cSum )); |
95 | event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); | 95 | event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); |
96 | 96 | ||
97 | event->setSummary( attList[2] ); | 97 | event->setSummary( attList[2] ); |
98 | event->setLocation( attList[3] ); | 98 | event->setLocation( attList[3] ); |
99 | event->setDescription( attList[4] ); | 99 | event->setDescription( attList[4] ); |
100 | if ( attList[7] == "1" ) { | 100 | if ( attList[7] == "1" ) { |
101 | event->setDtStart( QDateTime(fromString( attList[17]+"000000", false ).date(),QTime(0,0,0 ) )); | 101 | event->setDtStart( QDateTime(fromString( attList[17]+"000000", false ).date(),QTime(0,0,0 ) )); |
102 | event->setDtEnd( QDateTime(fromString( attList[18]+"000000", false ).date(),QTime(0,0,0 ))); | 102 | event->setDtEnd( QDateTime(fromString( attList[18]+"000000", false ).date(),QTime(0,0,0 ))); |
103 | event->setFloats( true ); | 103 | event->setFloats( true ); |
104 | } else { | 104 | } else { |
105 | event->setFloats( false ); | 105 | event->setFloats( false ); |
106 | event->setDtStart( fromString( attList[5] ) ); | 106 | event->setDtStart( fromString( attList[5] ) ); |
107 | event->setDtEnd( fromString( attList[6] )); | 107 | event->setDtEnd( fromString( attList[6] )); |
108 | } | 108 | } |
109 | 109 | ||
110 | QString rtype = attList[11]; | 110 | QString rtype = attList[11]; |
@@ -188,34 +188,34 @@ class SharpParser : public QObject | |||
188 | mCalendar->addEvent( event); | 188 | mCalendar->addEvent( event); |
189 | } else if ( qName == "Todo" ) { | 189 | } else if ( qName == "Todo" ) { |
190 | Todo *todo; | 190 | Todo *todo; |
191 | 191 | ||
192 | todo = existingCalendar->todo( "Sharp_DTM", 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 |
196 | todo = new Todo; | 196 | todo = new Todo; |
197 | 197 | ||
198 | //CARDID,CATEGORY,ETDY,LTDY,FNDY,MARK,PRTY,TITL,MEM1 | 198 | //CARDID,CATEGORY,ETDY,LTDY,FNDY,MARK,PRTY,TITL,MEM1 |
199 | // 0 1 2 3 4 5 6 7 8 | 199 | // 0 1 2 3 4 5 6 7 8 |
200 | //1,,,,,1,4,Loch zumachen,"" | 200 | //1,,,,,1,4,Loch zumachen,"" |
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->setID( "Sharp_DTM", attList[0].toInt() ); | 204 | todo->setID( "Sharp_DTM", attList[0]); |
205 | todo->setZaurusUid( cSum ); | 205 | todo->setCsum( "Sharp_DTM", QString::number( cSum )); |
206 | todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); | 206 | todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); |
207 | 207 | ||
208 | todo->setSummary( attList[7] ); | 208 | todo->setSummary( attList[7] ); |
209 | todo->setDescription( attList[8]); | 209 | todo->setDescription( attList[8]); |
210 | 210 | ||
211 | int priority = attList[6].toInt(); | 211 | int priority = attList[6].toInt(); |
212 | if ( priority == 0 ) priority = 3; | 212 | if ( priority == 0 ) priority = 3; |
213 | todo->setPriority( priority ); | 213 | todo->setPriority( priority ); |
214 | 214 | ||
215 | QString categoryList = attList[1]; | 215 | QString categoryList = attList[1]; |
216 | todo->setCategories( lookupCategories( categoryList ) ); | 216 | todo->setCategories( lookupCategories( categoryList ) ); |
217 | 217 | ||
218 | 218 | ||
219 | 219 | ||
220 | QString hasDateStr = attList[3]; // due | 220 | QString hasDateStr = attList[3]; // due |
221 | if ( !hasDateStr.isEmpty() ) { | 221 | if ( !hasDateStr.isEmpty() ) { |
@@ -453,34 +453,34 @@ int SharpFormat::getNumFromRecord( QString answer, Incidence* inc ) | |||
453 | if ( start >= len || start == 0 ) { | 453 | if ( start >= len || start == 0 ) { |
454 | start = 0; | 454 | start = 0; |
455 | ok = false; | 455 | ok = false; |
456 | } | 456 | } |
457 | if ( tempString.right(1) =="\n" ) | 457 | if ( tempString.right(1) =="\n" ) |
458 | tempString = tempString.left( tempString.length()-1); | 458 | tempString = tempString.left( tempString.length()-1); |
459 | 459 | ||
460 | templist.append( tempString ); | 460 | templist.append( tempString ); |
461 | } | 461 | } |
462 | ++ccc; | 462 | ++ccc; |
463 | if ( ccc == 2 && loopCount < 25 ) { | 463 | if ( ccc == 2 && loopCount < 25 ) { |
464 | start = 0; | 464 | start = 0; |
465 | bool ok; | 465 | bool ok; |
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->setID( "Sharp_DTM",newnum ); | 469 | inc->setID( "Sharp_DTM",templist[0] ); |
470 | inc->setZaurusUid( getCsum( templist ) ); | 470 | inc->setCsum( "Sharp_DTM", QString::number( getCsum( templist ) )); |
471 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | 471 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); |
472 | } | 472 | } |
473 | } | 473 | } |
474 | } | 474 | } |
475 | //qDebug("getNumFromRecord returning : %d ", retval); | 475 | //qDebug("getNumFromRecord returning : %d ", retval); |
476 | return retval; | 476 | return retval; |
477 | } | 477 | } |
478 | bool SharpFormat::save( Calendar *calendar) | 478 | bool SharpFormat::save( Calendar *calendar) |
479 | { | 479 | { |
480 | 480 | ||
481 | QLabel status ( i18n("Processing/adding events ..."), 0 ); | 481 | QLabel status ( i18n("Processing/adding events ..."), 0 ); |
482 | int w = status.sizeHint().width()+20 ; | 482 | int w = status.sizeHint().width()+20 ; |
483 | if ( w < 200 ) w = 200; | 483 | if ( w < 200 ) w = 200; |
484 | int h = status.sizeHint().height()+20 ; | 484 | int h = status.sizeHint().height()+20 ; |
485 | int dw = QApplication::desktop()->width(); | 485 | int dw = QApplication::desktop()->width(); |
486 | int dh = QApplication::desktop()->height(); | 486 | int dh = QApplication::desktop()->height(); |
@@ -507,33 +507,33 @@ bool SharpFormat::save( Calendar *calendar) | |||
507 | int procCount = 0; | 507 | int procCount = 0; |
508 | while ( ev ) { | 508 | while ( ev ) { |
509 | //qDebug("i %d ", ++i); | 509 | //qDebug("i %d ", ++i); |
510 | if ( ev->tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { | 510 | if ( ev->tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { |
511 | status.setText ( message + QString::number ( ++procCount ) ); | 511 | status.setText ( message + QString::number ( ++procCount ) ); |
512 | qApp->processEvents(); | 512 | qApp->processEvents(); |
513 | QString eString = getEventString( ev ); | 513 | QString eString = getEventString( ev ); |
514 | if ( ev->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { // delete | 514 | if ( ev->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { // delete |
515 | // deleting empty strings does not work. | 515 | // deleting empty strings does not work. |
516 | // we write first and x and then delete the record with the x | 516 | // we write first and x and then delete the record with the x |
517 | eString = eString.replace( QRegExp(",\"\""),",\"x\"" ); | 517 | eString = eString.replace( QRegExp(",\"\""),",\"x\"" ); |
518 | changeString += eString + "\n"; | 518 | changeString += eString + "\n"; |
519 | deleteString += eString + "\n"; | 519 | deleteString += eString + "\n"; |
520 | deleteEnt = true; | 520 | deleteEnt = true; |
521 | changeEnt = true; | 521 | changeEnt = true; |
522 | } | 522 | } |
523 | else if ( ev->getID("Sharp_DTM") == -1 ) { // add new | 523 | else if ( ev->getID("Sharp_DTM").isEmpty() ) { // 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 ); |
527 | if (!file.open( IO_ReadOnly ) ) { | 527 | if (!file.open( IO_ReadOnly ) ) { |
528 | return false; | 528 | return false; |
529 | 529 | ||
530 | } | 530 | } |
531 | QTextStream ts( &file ); | 531 | QTextStream ts( &file ); |
532 | ts.setCodec( QTextCodec::codecForName("utf8") ); | 532 | ts.setCodec( QTextCodec::codecForName("utf8") ); |
533 | answer = ts.read(); | 533 | answer = ts.read(); |
534 | file.close(); | 534 | file.close(); |
535 | //qDebug("answer \n%s ", answer.latin1()); | 535 | //qDebug("answer \n%s ", answer.latin1()); |
536 | getNumFromRecord( answer, ev ) ; | 536 | getNumFromRecord( answer, ev ) ; |
537 | 537 | ||
538 | } | 538 | } |
539 | else { // change existing | 539 | else { // change existing |
@@ -593,33 +593,33 @@ bool SharpFormat::save( Calendar *calendar) | |||
593 | message = i18n("Processing todo # "); | 593 | message = i18n("Processing todo # "); |
594 | procCount = 0; | 594 | procCount = 0; |
595 | while ( to ) { | 595 | while ( to ) { |
596 | if ( to->tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { | 596 | if ( to->tempSyncStat() != SYNC_TEMPSTATE_NEW_EXTERNAL ) { |
597 | status.setText ( message + QString::number ( ++procCount ) ); | 597 | status.setText ( message + QString::number ( ++procCount ) ); |
598 | qApp->processEvents(); | 598 | qApp->processEvents(); |
599 | QString eString = getTodoString( to ); | 599 | QString eString = getTodoString( to ); |
600 | if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { // delete | 600 | if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { // delete |
601 | // deleting empty strings does not work. | 601 | // deleting empty strings does not work. |
602 | // we write first and x and then delete the record with the x | 602 | // we write first and x and then delete the record with the x |
603 | eString = eString.replace( QRegExp(",\"\""),",\"x\"" ); | 603 | eString = eString.replace( QRegExp(",\"\""),",\"x\"" ); |
604 | changeString += eString + "\n"; | 604 | changeString += eString + "\n"; |
605 | deleteString += eString + "\n"; | 605 | deleteString += eString + "\n"; |
606 | deleteEnt = true; | 606 | deleteEnt = true; |
607 | changeEnt = true; | 607 | changeEnt = true; |
608 | } | 608 | } |
609 | else if ( to->getID("Sharp_DTM") == -1 ) { // add new | 609 | else if ( to->getID("Sharp_DTM").isEmpty() ) { // 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 ); |
613 | if (!file.open( IO_ReadOnly ) ) { | 613 | if (!file.open( IO_ReadOnly ) ) { |
614 | return false; | 614 | return false; |
615 | 615 | ||
616 | } | 616 | } |
617 | QTextStream ts( &file ); | 617 | QTextStream ts( &file ); |
618 | ts.setCodec( QTextCodec::codecForName("utf8") ); | 618 | ts.setCodec( QTextCodec::codecForName("utf8") ); |
619 | answer = ts.read(); | 619 | answer = ts.read(); |
620 | file.close(); | 620 | file.close(); |
621 | //qDebug("answer \n%s ", answer.latin1()); | 621 | //qDebug("answer \n%s ", answer.latin1()); |
622 | getNumFromRecord( answer, to ) ; | 622 | getNumFromRecord( answer, to ) ; |
623 | 623 | ||
624 | } | 624 | } |
625 | else { // change existing | 625 | else { // change existing |
@@ -683,33 +683,33 @@ QString SharpFormat::dtToString( const QDateTime& dti, bool useTZ ) | |||
683 | dt = dti; | 683 | dt = dti; |
684 | if(dt.date().isValid()){ | 684 | if(dt.date().isValid()){ |
685 | const QDate& date = dt.date(); | 685 | const QDate& date = dt.date(); |
686 | datestr.sprintf("%04d%02d%02d", | 686 | datestr.sprintf("%04d%02d%02d", |
687 | date.year(), date.month(), date.day()); | 687 | date.year(), date.month(), date.day()); |
688 | } | 688 | } |
689 | if(dt.time().isValid()){ | 689 | if(dt.time().isValid()){ |
690 | const QTime& time = dt.time(); | 690 | const QTime& time = dt.time(); |
691 | timestr.sprintf("T%02d%02d%02d", | 691 | timestr.sprintf("T%02d%02d%02d", |
692 | time.hour(), time.minute(), time.second()); | 692 | time.hour(), time.minute(), time.second()); |
693 | } | 693 | } |
694 | return datestr + timestr; | 694 | return datestr + timestr; |
695 | } | 695 | } |
696 | QString SharpFormat::getEventString( Event* event ) | 696 | QString SharpFormat::getEventString( Event* event ) |
697 | { | 697 | { |
698 | QStringList list; | 698 | QStringList list; |
699 | list.append( QString::number(event->getID("Sharp_DTM") ) ); | 699 | list.append( 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() ); |
703 | else | 703 | else |
704 | list.append("" ); | 704 | list.append("" ); |
705 | if ( !event->location().isEmpty() ) | 705 | if ( !event->location().isEmpty() ) |
706 | list.append( event->location() ); | 706 | list.append( event->location() ); |
707 | else | 707 | else |
708 | list.append("" ); | 708 | list.append("" ); |
709 | if ( !event->description().isEmpty() ) | 709 | if ( !event->description().isEmpty() ) |
710 | list.append( event->description() ); | 710 | list.append( event->description() ); |
711 | else | 711 | else |
712 | list.append( "" ); | 712 | list.append( "" ); |
713 | if ( event->doesFloat () ) { | 713 | if ( event->doesFloat () ) { |
714 | list.append( dtToString( QDateTime(event->dtStart().date(), QTime(0,0,0)), false )); | 714 | list.append( dtToString( QDateTime(event->dtStart().date(), QTime(0,0,0)), false )); |
715 | list.append( dtToString( QDateTime(event->dtEnd().date(),QTime(23,59,59)), false )); //6 | 715 | list.append( dtToString( QDateTime(event->dtEnd().date(),QTime(23,59,59)), false )); //6 |
@@ -847,33 +847,33 @@ QString SharpFormat::getEventString( Event* event ) | |||
847 | QString& s = (*it); | 847 | QString& s = (*it); |
848 | s.replace(QRegExp("\""), "\"\""); | 848 | s.replace(QRegExp("\""), "\"\""); |
849 | if(s.contains(QRegExp("[,\"\r\n]")) || s.stripWhiteSpace() != s){ | 849 | if(s.contains(QRegExp("[,\"\r\n]")) || s.stripWhiteSpace() != s){ |
850 | s.prepend('\"'); | 850 | s.prepend('\"'); |
851 | s.append('\"'); | 851 | s.append('\"'); |
852 | } else if(s.isEmpty() && !s.isNull()){ | 852 | } else if(s.isEmpty() && !s.isNull()){ |
853 | s = "\"\""; | 853 | s = "\"\""; |
854 | } | 854 | } |
855 | } | 855 | } |
856 | return list.join(","); | 856 | return list.join(","); |
857 | 857 | ||
858 | 858 | ||
859 | } | 859 | } |
860 | QString SharpFormat::getTodoString( Todo* todo ) | 860 | QString SharpFormat::getTodoString( Todo* todo ) |
861 | { | 861 | { |
862 | QStringList list; | 862 | QStringList list; |
863 | list.append( QString::number( todo->getID("Sharp_DTM") ) ); | 863 | list.append( 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() ) { |
867 | list.append( dtToString( todo->dtStart()) ); | 867 | list.append( dtToString( todo->dtStart()) ); |
868 | } else | 868 | } else |
869 | list.append( QString() ); | 869 | list.append( QString() ); |
870 | 870 | ||
871 | if ( todo->hasDueDate() ) { | 871 | if ( todo->hasDueDate() ) { |
872 | QTime tim; | 872 | QTime tim; |
873 | if ( todo->doesFloat()) { | 873 | if ( todo->doesFloat()) { |
874 | list.append( dtToString( QDateTime(todo->dtDue().date(),QTime( 0,0,0 )), false)) ; | 874 | list.append( dtToString( QDateTime(todo->dtDue().date(),QTime( 0,0,0 )), false)) ; |
875 | } else { | 875 | } else { |
876 | list.append( dtToString(todo->dtDue() ) ); | 876 | list.append( dtToString(todo->dtDue() ) ); |
877 | } | 877 | } |
878 | } else | 878 | } else |
879 | list.append( QString() ); | 879 | list.append( QString() ); |