author | eilers <eilers> | 2003-01-03 12:31:28 (UTC) |
---|---|---|
committer | eilers <eilers> | 2003-01-03 12:31:28 (UTC) |
commit | 54ebecbfd86a9ce6782dc55dad7ae15c73adef21 (patch) (side-by-side diff) | |
tree | a3934153aafb2d5e05186a5965e45f6d4dc267ec /libopie | |
parent | f1a3efd2d335b59aaa63bbf542abba524774b2d3 (diff) | |
download | opie-54ebecbfd86a9ce6782dc55dad7ae15c73adef21.zip opie-54ebecbfd86a9ce6782dc55dad7ae15c73adef21.tar.gz opie-54ebecbfd86a9ce6782dc55dad7ae15c73adef21.tar.bz2 |
Bugfix for calculating data diffs..
-rw-r--r-- | libopie/pim/ocontactaccessbackend_xml.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/libopie/pim/ocontactaccessbackend_xml.h b/libopie/pim/ocontactaccessbackend_xml.h index c6e6cbc..6a1c91d 100644 --- a/libopie/pim/ocontactaccessbackend_xml.h +++ b/libopie/pim/ocontactaccessbackend_xml.h @@ -14,12 +14,15 @@ * * ===================================================================== * Version: $Id$ * ===================================================================== * History: * $Log$ + * Revision 1.11 2003/01/03 12:31:28 eilers + * Bugfix for calculating data diffs.. + * * Revision 1.10 2003/01/02 14:27:12 eilers * Improved query by example: Search by date is possible.. First step * for a today plugin for birthdays.. * * Revision 1.9 2002/12/08 12:48:57 eilers * Moved journal-enum from ocontact into i the xml-backend.. @@ -232,24 +235,25 @@ class OContactAccessBackend_XML : public OContactAccessBackend { */ QDate* queryDate = 0l; QDate* checkDate = 0l; bool allcorrect = true; for ( int i = 0; i < Qtopia::Groups; i++ ) { // Birthday and anniversary are special nonstring fields and should - // be handled especially + // be handled specially switch ( i ){ case Qtopia::Birthday: queryDate = new QDate( query.birthday() ); checkDate = new QDate( (*it).birthday() ); case Qtopia::Anniversary: if ( queryDate == 0l ){ queryDate = new QDate( query.anniversary() ); checkDate = new QDate( (*it).anniversary() ); } if ( queryDate->isValid() ){ + if( checkDate->isValid() ){ if ( settings & OContactAccess::DateYear ){ if ( queryDate->year() != checkDate->year() ) allcorrect = false; } if ( settings & OContactAccess::DateMonth ){ if ( queryDate->month() != checkDate->month() ) @@ -258,17 +262,34 @@ class OContactAccessBackend_XML : public OContactAccessBackend { if ( settings & OContactAccess::DateDay ){ if ( queryDate->day() != checkDate->day() ) allcorrect = false; } if ( settings & OContactAccess::DateDiff ) { QDate current = QDate::currentDate(); + // We have to equalize the year, otherwise + // the search will fail.. + checkDate->setYMD( current.year(), checkDate->month(), checkDate->day() ); + if ( *checkDate < current ) + checkDate->setYMD( current.year()+1, + checkDate->month(), + checkDate->day() ); + // qWarning("Checking if %s is between %s and %s ! ", + // checkDate->toString().latin1(), + // current.toString().latin1(), + // queryDate->toString().latin1() ); if ( current.daysTo( *queryDate ) > 0 ){ if ( !( ( *checkDate >= current ) && - ( *checkDate <= *queryDate ) ) ) + ( *checkDate <= *queryDate ) ) ){ allcorrect = false; + //qWarning (" Nope!.."); + } + } } + } else{ + // checkDate is invalid. Therfore this entry is always rejected + allcorrect = false; } } delete queryDate; queryDate = 0l; delete checkDate; |