summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/ChangeLog2
-rw-r--r--libopie2/opiepim/backend/ocontactaccessbackend.cpp7
2 files changed, 5 insertions, 4 deletions
diff --git a/libopie2/opiepim/ChangeLog b/libopie2/opiepim/ChangeLog
index 52b3f6b..a1b4db0 100644
--- a/libopie2/opiepim/ChangeLog
+++ b/libopie2/opiepim/ChangeLog
@@ -1,24 +1,26 @@
+2005-03.19 Stefan Eilers <stefan@eilers-online.net>
+ * Minor update for sorted(). Now ignoring any category search if "DoNotShowWithCategory" filter is activated.
2005-03-18 Stefan Eilers <stefan@eilers-online.net>
* Rewrote generic sorted filter and added filter for "DoNotShowWithCategory", needed by addressbook (other filters need to be added!)
2005-01-16 Stefan Eilers <stefan@eilers-online.net>
* Added new OPimEventSortVector class, improved OPimSortVector
* OPimAccessBackend now supports generic sorting.
2005-01-03 Stefan Eilers <stefan@eilers-online.net>
* Fixing bug in API documentation
* Moving hasQuerySettings() and querySettings() to OPimAccessTemplate to be available for all frontends
2004-12-28 Stefan Eilers <stefan@eilers-online.net>
* Make improved query by example accessable via frontend
* Some API documentation improvement
* Cleanup of backend api..
* Fixing bug #1501
2004-11-23 Stefan Eilers <stefan@eilers-online.net>
* Implement fast and full featured version of sorted() for addressbook
* Implement generic queryByExample for all Addressboook backends. It allows incremental search.
* Update of API Documentation
2004-11-18 Holger Freyther <freyther@handhelds.org>
* Every Access can give a set of Occurrences for a period or a datetime
* QueryByExample, Find, Sort can be generically accessed by OPimBase
pointer interface
* OPimBackendOccurrence gets split up to OPimOccurrences by
OPimTemplateBase
* Add safeCast to various OPimRecords
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend.cpp b/libopie2/opiepim/backend/ocontactaccessbackend.cpp
index 6ac9934..e942905 100644
--- a/libopie2/opiepim/backend/ocontactaccessbackend.cpp
+++ b/libopie2/opiepim/backend/ocontactaccessbackend.cpp
@@ -235,73 +235,72 @@ bool OPimContactAccessBackend::hasQuerySettings (uint querySettings) const
return ( false );
}
}
UIDArray OPimContactAccessBackend::sorted( const UIDArray& ar, bool asc, int sortOrder,
int filter, const QArray<int>& categories )const {
odebug << "Using Unaccelerated OPimContactAccessBackend sorted Implementation" << oendl;
Internal::OPimContactSortVector vector(ar.count(), asc, sortOrder );
int item = 0;
uint cat_count = categories.count();
uint eve_count = ar.count();
bool contactPassed = false;
int cat;
for ( uint i = 0; i < eve_count; ++i ) {
OPimContact contact = find( ar[i], ar, i, Frontend::Forward );
if ( contact.isEmpty() )
continue;
contactPassed = true;
- // Filter all Contacts which have any category
if ( (filter & OPimContactAccess::DoNotShowWithCategory) ? true : false ){
if ( !contact.categories().isEmpty() )
continue;
- }
+ } else {
+ if ( (filter & OPimContactAccess::FilterCategory) ? true : false ){
/* show category */
/* -1 == unfiled */
for ( uint cat_nu = 0; cat_nu < cat_count; ++cat_nu ) {
cat = categories[cat_nu];
- if ( (filter & OPimContactAccess::FilterCategory) ? true : false ){
if ( cat == -1 ) {
// We should search unfiled contacts.
// Unfiled categories have no category set, thus continue if
// this contact has no empty category.
if( !contact.categories().isEmpty() )
contactPassed = false;
} else if ( cat != 0 )
if ( !contact.categories().contains( cat ) )
contactPassed = false;
}
}
-
+ }
/*
* If none of the Categories matched
* continue
*/
if ( !contactPassed )
continue;
vector.insert(item++, contact );
}
vector.resize( item );
/* sort it now */
vector.sort();
/* now get the uids */
UIDArray array( vector.count() );
for (uint i= 0; i < vector.count(); i++ )
array[i] = vector.uidAt( i );
return array;
}
OPimBackendOccurrence::List OPimContactAccessBackend::occurrences( const QDate& start,
const QDate& end)const {
OPimBackendOccurrence::List lst;