diff options
author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-02-28 11:39:57 +0200 |
---|---|---|
committer | Mark Ryan <mark.d.ryan@intel.com> | 2013-03-06 15:40:12 +0100 |
commit | b01a5f8c2aac5815c14cfe8315888e7ba78c1fb6 (patch) | |
tree | b11cbb3cd81c79de496985a39e4066b9f9e7fa8e /src/msd/msd_upnp.py | |
parent | c9a59b40ca899b3d6df9b729d37a33b54aed268a (diff) | |
download | dleyna-control-b01a5f8c2aac5815c14cfe8315888e7ba78c1fb6.tar.gz |
[Search] Refactor: implement asynchronous search
To prevent UI from blocking and to prevent excessive searches, the
custom model needs to be refactored to not do synchronous searches in
on_get_value().
This is achieved by
* adding SearchModel.set_request_range() so the view can inform the
model of the required rows
* Adding a dict-based cache for the search results
* Adding row-inserted/changed/deleted signals to the model
Fixes #2
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Diffstat (limited to 'src/msd/msd_upnp.py')
-rw-r--r-- | src/msd/msd_upnp.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/msd/msd_upnp.py b/src/msd/msd_upnp.py index f2bba50..bb81c67 100644 --- a/src/msd/msd_upnp.py +++ b/src/msd/msd_upnp.py @@ -41,9 +41,11 @@ class Container(MediaObject): self.__containerIF = dbus.Interface(obj, 'org.gnome.UPnP.MediaContainer2') - def search(self, query, offset, count, fltr, sort=""): + def search(self, query, offset, count, fltr, sort="", on_reply=None, on_error=None): return self.__containerIF.SearchObjectsEx(query, offset, count, fltr, - sort) + sort, + reply_handler=on_reply, + error_handler=on_error) def list_children(self, offset, count, fltr, sort=""): return self.__containerIF.ListChildrenEx(offset, count, fltr, sort) |