Need to change the activity service's name to the owners name before passing it along to the new activity that we're going to join.
This commit is contained in:
parent
e7f9a0a728
commit
028f033344
@ -92,6 +92,8 @@ class ActivitiesModel(gtk.ListStore):
|
|||||||
class ActivitiesView(gtk.TreeView):
|
class ActivitiesView(gtk.TreeView):
|
||||||
def __init__(self, model):
|
def __init__(self, model):
|
||||||
gtk.TreeView.__init__(self, model)
|
gtk.TreeView.__init__(self, model)
|
||||||
|
|
||||||
|
self._owner = None
|
||||||
|
|
||||||
self.set_headers_visible(False)
|
self.set_headers_visible(False)
|
||||||
|
|
||||||
@ -130,7 +132,10 @@ class ActivitiesView(gtk.TreeView):
|
|||||||
|
|
||||||
cell.set_property('markup', markup)
|
cell.set_property('markup', markup)
|
||||||
cell.set_property('ellipsize', pango.ELLIPSIZE_END)
|
cell.set_property('ellipsize', pango.ELLIPSIZE_END)
|
||||||
|
|
||||||
|
def set_owner(self, owner):
|
||||||
|
self._owner = owner
|
||||||
|
|
||||||
def _row_activated_cb(self, treeview, path, column):
|
def _row_activated_cb(self, treeview, path, column):
|
||||||
bus = dbus.SessionBus()
|
bus = dbus.SessionBus()
|
||||||
proxy_obj = bus.get_object('com.redhat.Sugar.Browser', '/com/redhat/Sugar/Browser')
|
proxy_obj = bus.get_object('com.redhat.Sugar.Browser', '/com/redhat/Sugar/Browser')
|
||||||
@ -145,7 +150,9 @@ class ActivitiesView(gtk.TreeView):
|
|||||||
if service is None:
|
if service is None:
|
||||||
browser_shell.open_browser(address)
|
browser_shell.open_browser(address)
|
||||||
else:
|
else:
|
||||||
serialized_service = service.serialize()
|
if not self._owner:
|
||||||
|
raise RuntimeError("We don't have an owner yet!")
|
||||||
|
serialized_service = service.serialize(self._owner)
|
||||||
browser_shell.open_browser(address, serialized_service)
|
browser_shell.open_browser(address, serialized_service)
|
||||||
|
|
||||||
class StartPage(gtk.HBox):
|
class StartPage(gtk.HBox):
|
||||||
@ -161,6 +168,8 @@ class StartPage(gtk.HBox):
|
|||||||
self._pservice = PresenceService.get_instance()
|
self._pservice = PresenceService.get_instance()
|
||||||
self._pservice.connect("activity-announced", self._on_activity_announced_cb)
|
self._pservice.connect("activity-announced", self._on_activity_announced_cb)
|
||||||
self._pservice.connect("new-service-adv", self._on_new_service_adv_cb)
|
self._pservice.connect("new-service-adv", self._on_new_service_adv_cb)
|
||||||
|
self._pservice.connect("buddy-appeared", self._on_buddy_appeared_cb)
|
||||||
|
self._pservice.connect("buddy-disappeared", self._on_buddy_disappeared_cb)
|
||||||
self._pservice.start()
|
self._pservice.start()
|
||||||
self._pservice.track_service_type(BrowserActivity._BROWSER_ACTIVITY_TYPE)
|
self._pservice.track_service_type(BrowserActivity._BROWSER_ACTIVITY_TYPE)
|
||||||
|
|
||||||
@ -222,6 +231,7 @@ class StartPage(gtk.HBox):
|
|||||||
|
|
||||||
self._activities_model = ActivitiesModel()
|
self._activities_model = ActivitiesModel()
|
||||||
|
|
||||||
|
owner = self._pservice.get_owner()
|
||||||
self._activities = ActivitiesView(self._activities_model)
|
self._activities = ActivitiesView(self._activities_model)
|
||||||
sw.add(self._activities)
|
sw.add(self._activities)
|
||||||
self._activities.show()
|
self._activities.show()
|
||||||
@ -245,6 +255,14 @@ class StartPage(gtk.HBox):
|
|||||||
if activity_id:
|
if activity_id:
|
||||||
self._pservice.track_service_type(short_stype)
|
self._pservice.track_service_type(short_stype)
|
||||||
|
|
||||||
|
def _on_buddy_appeared_cb(self, pservice, buddy):
|
||||||
|
if buddy.is_owner():
|
||||||
|
self._activities.set_owner(buddy)
|
||||||
|
|
||||||
|
def _on_buddy_disappeared_cb(self, pservice, buddy):
|
||||||
|
if buddy.is_owner() and self._owner == buddy:
|
||||||
|
self._activities.set_owner(None)
|
||||||
|
|
||||||
def _on_activity_announced_cb(self, pservice, service, buddy):
|
def _on_activity_announced_cb(self, pservice, service, buddy):
|
||||||
print "Found new activity with type %s" % service.get_full_type()
|
print "Found new activity with type %s" % service.get_full_type()
|
||||||
self._activities_model.add_activity(buddy, service)
|
self._activities_model.add_activity(buddy, service)
|
||||||
|
Loading…
Reference in New Issue
Block a user