author | zecke <zecke> | 2003-05-07 18:02:46 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-05-07 18:02:46 (UTC) |
commit | 94371938792c70a40cdb75e37c69020438d450c9 (patch) (unidiff) | |
tree | 10b97f156e1b4eee2ec1706e315a87a16b0af3b9 /libopie2/opiepim | |
parent | c13ada0f5e418b25b177e132ff2e1dfe7821577f (diff) | |
download | opie-94371938792c70a40cdb75e37c69020438d450c9.zip opie-94371938792c70a40cdb75e37c69020438d450c9.tar.gz opie-94371938792c70a40cdb75e37c69020438d450c9.tar.bz2 |
save and restore CompletedDate and StartDate
-rw-r--r-- | libopie2/opiepim/backend/otodoaccessxml.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/libopie2/opiepim/backend/otodoaccessxml.cpp b/libopie2/opiepim/backend/otodoaccessxml.cpp index 71b6a7e..a8e1503 100644 --- a/libopie2/opiepim/backend/otodoaccessxml.cpp +++ b/libopie2/opiepim/backend/otodoaccessxml.cpp | |||
@@ -6,24 +6,25 @@ | |||
6 | #include <sys/types.h> | 6 | #include <sys/types.h> |
7 | 7 | ||
8 | #include <unistd.h> | 8 | #include <unistd.h> |
9 | 9 | ||
10 | 10 | ||
11 | #include <qfile.h> | 11 | #include <qfile.h> |
12 | #include <qvector.h> | 12 | #include <qvector.h> |
13 | 13 | ||
14 | #include <qpe/global.h> | 14 | #include <qpe/global.h> |
15 | #include <qpe/stringutil.h> | 15 | #include <qpe/stringutil.h> |
16 | #include <qpe/timeconversion.h> | 16 | #include <qpe/timeconversion.h> |
17 | 17 | ||
18 | #include "oconversion.h" | ||
18 | #include "otimezone.h" | 19 | #include "otimezone.h" |
19 | #include "orecur.h" | 20 | #include "orecur.h" |
20 | #include "otodoaccessxml.h" | 21 | #include "otodoaccessxml.h" |
21 | 22 | ||
22 | namespace { | 23 | namespace { |
23 | time_t rp_end; | 24 | time_t rp_end; |
24 | ORecur* rec; | 25 | ORecur* rec; |
25 | ORecur *recur() { | 26 | ORecur *recur() { |
26 | if (!rec ) rec = new ORecur; | 27 | if (!rec ) rec = new ORecur; |
27 | return rec; | 28 | return rec; |
28 | } | 29 | } |
29 | int snd; | 30 | int snd; |
@@ -89,37 +90,38 @@ bool OTodoAccessXML::load() { | |||
89 | dict.insert("Categories" , new int(OTodo::Category) ); | 90 | dict.insert("Categories" , new int(OTodo::Category) ); |
90 | dict.insert("Uid" , new int(OTodo::Uid) ); | 91 | dict.insert("Uid" , new int(OTodo::Uid) ); |
91 | dict.insert("HasDate" , new int(OTodo::HasDate) ); | 92 | dict.insert("HasDate" , new int(OTodo::HasDate) ); |
92 | dict.insert("Completed" , new int(OTodo::Completed) ); | 93 | dict.insert("Completed" , new int(OTodo::Completed) ); |
93 | dict.insert("Description" , new int(OTodo::Description) ); | 94 | dict.insert("Description" , new int(OTodo::Description) ); |
94 | dict.insert("Summary" , new int(OTodo::Summary) ); | 95 | dict.insert("Summary" , new int(OTodo::Summary) ); |
95 | dict.insert("Priority" , new int(OTodo::Priority) ); | 96 | dict.insert("Priority" , new int(OTodo::Priority) ); |
96 | dict.insert("DateDay" , new int(OTodo::DateDay) ); | 97 | dict.insert("DateDay" , new int(OTodo::DateDay) ); |
97 | dict.insert("DateMonth" , new int(OTodo::DateMonth) ); | 98 | dict.insert("DateMonth" , new int(OTodo::DateMonth) ); |
98 | dict.insert("DateYear" , new int(OTodo::DateYear) ); | 99 | dict.insert("DateYear" , new int(OTodo::DateYear) ); |
99 | dict.insert("Progress" , new int(OTodo::Progress) ); | 100 | dict.insert("Progress" , new int(OTodo::Progress) ); |
100 | dict.insert("CompletedDate", new int(OTodo::CompletedDate) ); | 101 | dict.insert("CompletedDate", new int(OTodo::CompletedDate) ); |
102 | dict.insert("StartDate", new int(OTodo::StartDate) ); | ||
101 | dict.insert("CrossReference", new int(OTodo::CrossReference) ); | 103 | dict.insert("CrossReference", new int(OTodo::CrossReference) ); |
102 | dict.insert("State", new int(OTodo::State) ); | 104 | dict.insert("State", new int(OTodo::State) ); |
103 | dict.insert("Alarms", new int(OTodo::Alarms) ); | 105 | dict.insert("Alarms", new int(OTodo::Alarms) ); |
104 | dict.insert("Reminders", new int(OTodo::Reminders) ); | 106 | dict.insert("Reminders", new int(OTodo::Reminders) ); |
105 | dict.insert("Notifiers", new int(OTodo::Notifiers) ); | 107 | dict.insert("Notifiers", new int(OTodo::Notifiers) ); |
106 | dict.insert("Maintainer", new int(OTodo::Maintainer) ); | 108 | dict.insert("Maintainer", new int(OTodo::Maintainer) ); |
107 | dict.insert("rtype", new int(FRType) ); | 109 | dict.insert("rtype", new int(FRType) ); |
108 | dict.insert("rweekdays", new int(FRWeekdays) ); | 110 | dict.insert("rweekdays", new int(FRWeekdays) ); |
109 | dict.insert("rposition", new int(FRPosition) ); | 111 | dict.insert("rposition", new int(FRPosition) ); |
110 | dict.insert("rfreq", new int(FRFreq) ); | 112 | dict.insert("rfreq", new int(FRFreq) ); |
111 | dict.insert("start", new int(FRStart) ); | 113 | dict.insert("start", new int(FRStart) ); |
112 | dict.insert("rhasenddate", new int(FRHasEndDate) ); | 114 | dict.insert("rhasenddate", new int(FRHasEndDate) ); |
113 | dict.insert("enddt", new int(FREndDate) ); | 115 | dict.insert("enddt", new int(FREndDate) ); |
114 | 116 | ||
115 | // here the custom XML parser from TT it's GPL | 117 | // here the custom XML parser from TT it's GPL |
116 | // but we want to push OpiePIM... to TT..... | 118 | // but we want to push OpiePIM... to TT..... |
117 | // mmap part from zecke :) | 119 | // mmap part from zecke :) |
118 | int fd = ::open( QFile::encodeName(m_file).data(), O_RDONLY ); | 120 | int fd = ::open( QFile::encodeName(m_file).data(), O_RDONLY ); |
119 | struct stat attribut; | 121 | struct stat attribut; |
120 | if ( fd < 0 ) return false; | 122 | if ( fd < 0 ) return false; |
121 | 123 | ||
122 | if ( fstat(fd, &attribut ) == -1 ) { | 124 | if ( fstat(fd, &attribut ) == -1 ) { |
123 | ::close( fd ); | 125 | ::close( fd ); |
124 | return false; | 126 | return false; |
125 | } | 127 | } |
@@ -405,24 +407,30 @@ void OTodoAccessXML::todo( QAsciiDict<int>* dict, OTodo& ev, | |||
405 | case OTodo::DateDay: | 407 | case OTodo::DateDay: |
406 | m_day = val.toInt(); | 408 | m_day = val.toInt(); |
407 | break; | 409 | break; |
408 | case OTodo::DateMonth: | 410 | case OTodo::DateMonth: |
409 | m_month = val.toInt(); | 411 | m_month = val.toInt(); |
410 | break; | 412 | break; |
411 | case OTodo::DateYear: | 413 | case OTodo::DateYear: |
412 | m_year = val.toInt(); | 414 | m_year = val.toInt(); |
413 | break; | 415 | break; |
414 | case OTodo::Progress: | 416 | case OTodo::Progress: |
415 | ev.setProgress( val.toInt() ); | 417 | ev.setProgress( val.toInt() ); |
416 | break; | 418 | break; |
419 | case OTodo::CompletedDate: | ||
420 | ev.setCompletedDate( OConversion::dateFromString( val ) ); | ||
421 | break; | ||
422 | case OTodo::StartDate: | ||
423 | ev.setStartDate( OConversion::dateFromString( val ) ); | ||
424 | break; | ||
417 | case OTodo::CrossReference: | 425 | case OTodo::CrossReference: |
418 | { | 426 | { |
419 | /* | 427 | /* |
420 | * A cross refernce looks like | 428 | * A cross refernce looks like |
421 | * appname,id;appname,id | 429 | * appname,id;appname,id |
422 | * we need to split it up | 430 | * we need to split it up |
423 | */ | 431 | */ |
424 | QStringList refs = QStringList::split(';', val ); | 432 | QStringList refs = QStringList::split(';', val ); |
425 | QStringList::Iterator strIt; | 433 | QStringList::Iterator strIt; |
426 | for (strIt = refs.begin(); strIt != refs.end(); ++strIt ) { | 434 | for (strIt = refs.begin(); strIt != refs.end(); ++strIt ) { |
427 | int pos = (*strIt).find(','); | 435 | int pos = (*strIt).find(','); |
428 | if ( pos > -1 ) | 436 | if ( pos > -1 ) |
@@ -494,24 +502,29 @@ QString OTodoAccessXML::toString( const OTodo& ev )const { | |||
494 | * for this case - cough --zecke | 502 | * for this case - cough --zecke |
495 | */ | 503 | */ |
496 | /* | 504 | /* |
497 | QMap<QString, QString> extras = ev.extras(); | 505 | QMap<QString, QString> extras = ev.extras(); |
498 | QMap<QString, QString>::Iterator extIt; | 506 | QMap<QString, QString>::Iterator extIt; |
499 | for (extIt = extras.begin(); extIt != extras.end(); ++extIt ) | 507 | for (extIt = extras.begin(); extIt != extras.end(); ++extIt ) |
500 | str += extIt.key() + "=\"" + extIt.data() + "\" "; | 508 | str += extIt.key() + "=\"" + extIt.data() + "\" "; |
501 | */ | 509 | */ |
502 | // cross refernce | 510 | // cross refernce |
503 | if ( ev.hasRecurrence() ) { | 511 | if ( ev.hasRecurrence() ) { |
504 | str += ev.recurrence().toString(); | 512 | str += ev.recurrence().toString(); |
505 | } | 513 | } |
514 | if ( ev.hasStartDate() ) | ||
515 | str += "StartDate=\""+ OConversion::dateToString( ev.startDate() ) +"\" "; | ||
516 | if ( ev.hasCompletedDate() ) | ||
517 | str += "CompletedDate=\""+ OConversion::dateToString( ev.completedDate() ) +"\" "; | ||
518 | |||
506 | 519 | ||
507 | return str; | 520 | return str; |
508 | } | 521 | } |
509 | QString OTodoAccessXML::toString( const QArray<int>& ints ) const { | 522 | QString OTodoAccessXML::toString( const QArray<int>& ints ) const { |
510 | return Qtopia::Record::idsToString( ints ); | 523 | return Qtopia::Record::idsToString( ints ); |
511 | } | 524 | } |
512 | 525 | ||
513 | /* internal class for sorting | 526 | /* internal class for sorting |
514 | * | 527 | * |
515 | * Inspired by todoxmlio.cpp from TT | 528 | * Inspired by todoxmlio.cpp from TT |
516 | */ | 529 | */ |
517 | 530 | ||