summaryrefslogtreecommitdiff
path: root/src/dbus/server/pim/pim-manager-api.txt
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2013-02-25 21:35:46 +0100
committerPatrick Ohly <patrick.ohly@intel.com>2013-02-26 12:03:46 +0100
commitfde7bc7974b1020afef98b5cbd49fc1689bcefd8 (patch)
tree7b5136742e1b25dc2a0d7709b7ef74892a9e1d9a /src/dbus/server/pim/pim-manager-api.txt
parent3c21df32e013440c5d69f58cb4e871fadb305c9f (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.txt7
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