summaryrefslogtreecommitdiff
path: root/src/msd/msd_upnp.py
diff options
context:
space:
mode:
authorJussi Kukkonen <jussi.kukkonen@intel.com>2013-02-28 11:39:57 +0200
committerMark Ryan <mark.d.ryan@intel.com>2013-03-06 15:40:12 +0100
commitb01a5f8c2aac5815c14cfe8315888e7ba78c1fb6 (patch)
treeb11cbb3cd81c79de496985a39e4066b9f9e7fa8e /src/msd/msd_upnp.py
parentc9a59b40ca899b3d6df9b729d37a33b54aed268a (diff)
downloaddleyna-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.py6
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)