diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2013-02-25 21:35:46 +0100 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@intel.com> | 2013-02-26 12:03:46 +0100 |
commit | fde7bc7974b1020afef98b5cbd49fc1689bcefd8 (patch) | |
tree | 7b5136742e1b25dc2a0d7709b7ef74892a9e1d9a /src/dbus/server/pim/pim-manager-api.txt | |
parent | 3c21df32e013440c5d69f58cb4e871fadb305c9f (diff) |
PIM: add ReplaceSearch, always allow it
The new ReplaceSearch is more flexible than RefineSearch. It can
handle both tightening the search and relaxing it. The downside of it
is the more expensive implementation (must check all contacts again,
then find minimal set of change signals to update view).
Previously, a search which had no filter set at all at the begining
could not be refined. This limitation of the implementation gets
removed by always using a FilteredView, even if the initial filter is
empty.
When the parent of a FilteredView emits signals, it is not necessarily
always in a consistent state and the FilteredView must not invoke
methods in the parent. Stressing the FilteredView by using it in tests
originally written for the FullView showed that the filling up a view
violated that rule and led to contacts being present multiple
times. Fixed by delaying the reading from the parent into either an
idle callback or the parent's quiescence signal processing, whichever
comes first.
Diffstat (limited to 'src/dbus/server/pim/pim-manager-api.txt')
-rw-r--r-- | src/dbus/server/pim/pim-manager-api.txt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dbus/server/pim/pim-manager-api.txt b/src/dbus/server/pim/pim-manager-api.txt index 90086ab0..7b28643b 100644 --- a/src/dbus/server/pim/pim-manager-api.txt +++ b/src/dbus/server/pim/pim-manager-api.txt @@ -354,6 +354,13 @@ Methods: to the view when setting a less restrictive filter (simplifies the implementation and improves performance). + void ReplaceSearch(list filter, bool refine) + + Same as RefineSearch() if refine is true. If refine is false, + the new filter can be less restrictive and contacts which + did not match the old filter will be added back to the list + of matching contacts. + Service: [user of the PIM Manager] Interface: org._01.pim.contacts.ViewAgent |