Bug 55923

Summary: PIM API: sorting and searching
Product: SyncEvolution Reporter: Patrick Ohly <patrick.ohly>
Component: SyncEvolutionAssignee: SyncEvolution Community <syncevolution-issues>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: medium CC: syncevolution-issues
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 55916    

Description Patrick Ohly 2012-10-12 14:18:24 UTC
One design decision in the PIM API design is that there is only a single UI. Sorting is global and the same for all views.

Sorting is highly specific to local rules. This goes beyond taking the local character set and collation into account. In addition, some countries also have rules about ignoring certain name parts (Tussenvoegels in the Netherland, for example).

Deployment as part of specific UIs might also lead to different sort and search criteria. Therefore SyncEvolution provides a "plugin mechanism": at compile time, the actual implementation file can be chosen via the --enable-dbus-service-pim parameter.

SyncEvolution will provide a default sort and search implementation, based on boost::locale (and thus ICU) to handle UTF-8 correctly. It will *not* support stripping Tussenvoegels.

Searching has two different use cases:
- A user looks up a contact by entering a search text.
- The telephone system provides a caller ID which needs
  to be matched with a contact.

APIs
----
Manager.SetSortOrder/GetSortOrder - control sorting
Manager.Search - start searching
ViewControl/ViewAgent - handle search results
Comment 1 Patrick Ohly 2012-10-18 09:51:21 UTC
Implemented.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.