#777 HIGH Trial-2: Buddies does not group around their current activity icon
Zarro Boogs per Child
bugtracker at laptop.org
Sun Jul 15 08:24:51 EDT 2007
#777: Buddies does not group around their current activity icon
---------------------+------------------------------------------------------
Reporter: marco | Owner: tomeu
Type: defect | Status: new
Priority: high | Milestone: Trial-2
Component: sugar | Version:
Resolution: | Keywords:
Verified: 0 |
---------------------+------------------------------------------------------
Comment (by dcbw):
The idea here was to have a ShellOwner D-Bus service that would emit
signals when owner attributes like the current activity, owner color,
owner nickname, owner avatar, etc all changed. The PresenceService would
listen for those signals and then update it's own buddy model accordingly.
We don't really want to expose writable method calls on the Owner object
in the PresenceService, because we cannot restrict them to be writable
only by the shell. The code at the bottom of the PS's buddy.py file
should have a ShellOwner object which listens for signals on:
{{{
_SHELL_SERVICE = "org.laptop.Shell"
_SHELL_OWNER_INTERFACE = "org.laptop.Shell.Owner"
_SHELL_PATH = "/org/laptop/Shell"
...
# Ask to get notifications on Owner object property changes in the
# shell. If it's not currently running, no problem - we'll get the
# signals when it does run
for (signal, cb) in (('IconChanged', self._icon_changed_cb),
('ColorChanged', self._color_changed_cb),
('NickChanged', self._nick_changed_cb)):
self._bus.add_signal_receiver(cb, signal_name=signal,
dbus_interface=self._SHELL_OWNER_INTERFACE,
bus_name=self._SHELL_SERVICE,
path=self._SHELL_PATH)
}}}
So we need to make sure the shell is still providing this service and
pushing updates out as D-Bus signals when they happen.
--
Ticket URL: <http://dev.laptop.org/ticket/777#comment:5>
One Laptop Per Child <http://laptop.org/>
More information about the Bugs
mailing list