Change the Activity execute method to add a result boolean (handle/not handled).

When the camera key is pressed the Shell send and command to the active activity,
if that's not handled than it startup org.laptop.CameraActivity.
master
Marco Pesenti Gritti 18 years ago
parent 1d98e5f6bf
commit 5623c8a3b1

@ -90,6 +90,9 @@ class ActivityHost:
else:
return profile.get_color()
def execute(self, command, args):
self._activity.execute(command, args)
def share(self):
self._activity.share()
self._chat_widget.share()

@ -88,9 +88,12 @@ class Shell(gobject.GObject):
self._frame = Frame(self)
self._frame.show_and_hide(3)
def _open_terminal_cb(self):
self.start_activity('org.sugar.Terminal')
return False
def _handle_camera_key(self):
if self._current_host:
if self._current_host.execute('camera', []):
return
self.start_activity('org.laptop.CameraActivity')
def __global_key_pressed_cb(self, grabber, key):
if key == 'F1':
@ -114,7 +117,7 @@ class Shell(gobject.GObject):
elif key == '<shft><alt>F10':
self.toggle_chat_visibility()
elif key == '0xDC': # Camera key
pass
self._handle_camera_key()
elif key == '0xE0': # Overlay key
self.toggle_chat_visibility()
elif key == '0x93': # Frame key

@ -85,9 +85,9 @@ class ActivityDbusService(dbus.service.Object):
return self._activity.get_shared()
@dbus.service.method(ACTIVITY_INTERFACE,
in_signature="sas", out_signature="")
in_signature="sas", out_signature="b")
def execute(self, command, args):
self._activity.execute(command, args)
return self._activity.execute(command, args)
class Activity(gtk.Window):
"""Base Activity class that all other Activities derive from."""
@ -170,7 +170,7 @@ class Activity(gtk.Window):
def execute(self, command, args):
"""Execute the given command with args"""
pass
return False
def __destroy_cb(self, window):
if self._bus:

Loading…
Cancel
Save