Complete the keybindings stuff and use it for the home page

This commit is contained in:
Marco Pesenti Gritti
2006-08-25 14:03:48 +02:00
parent 4425e14f13
commit 6e920265ad
7 changed files with 146 additions and 85 deletions
-1
View File
@@ -6,7 +6,6 @@ bin_SCRIPTS = \
sugar-activity-factory \
sugar-console \
sugar-people \
sugar-zoom \
sugar-presence-service
sugardir = $(pkgdatadir)/shell
+17 -21
View File
@@ -41,14 +41,6 @@ class ShellDbusService(dbus.service.Object):
def show_console(self):
gobject.idle_add(self.__show_console_idle)
@dbus.service.method('com.redhat.Sugar.Shell')
def zoom_in(self):
self._shell.zoom_in()
@dbus.service.method('com.redhat.Sugar.Shell')
def zoom_out(self):
self._shell.zoom_out()
class Shell(gobject.GObject):
ZOOM_MESH = 0
ZOOM_FRIENDS = 1
@@ -66,7 +58,11 @@ class Shell(gobject.GObject):
gobject.GObject.__init__(self)
key_grabber = KeyGrabber()
key_grabber.grab('F8')
key_grabber.connect('key-pressed', self.__global_key_pressed_cb)
key_grabber.grab('F1')
key_grabber.grab('F2')
key_grabber.grab('F3')
key_grabber.grab('F4')
self._screen = wnck.screen_get_default()
self._hosts = {}
@@ -87,6 +83,16 @@ class Shell(gobject.GObject):
else:
self.start()
def __global_key_pressed_cb(self, grabber, key):
if key == 'F1':
self.set_zoom_level(Shell.ZOOM_ACTIVITY)
elif key == 'F2':
self.set_zoom_level(Shell.ZOOM_HOME)
elif key == 'F3':
self.set_zoom_level(Shell.ZOOM_FRIENDS)
elif key == 'F4':
self.set_zoom_level(Shell.ZOOM_MESH)
def __first_time_dialog_destroy_cb(self, dialog):
self.start()
@@ -105,7 +111,7 @@ class Shell(gobject.GObject):
home_model = HomeModel()
self._home_window.set_model(home_model)
self._set_zoom_level(Shell.ZOOM_HOME)
self.set_zoom_level(Shell.ZOOM_HOME)
self._panel_manager = PanelManager(self)
@@ -204,7 +210,7 @@ class Shell(gobject.GObject):
def get_chat_controller(self):
return self._chat_controller
def _set_zoom_level(self, level):
def set_zoom_level(self, level):
self._zoom_level = level
if level == Shell.ZOOM_ACTIVITY:
@@ -218,13 +224,3 @@ class Shell(gobject.GObject):
self._home_window.set_view(HomeWindow.FRIENDS_VIEW)
elif level == Shell.ZOOM_MESH:
self._home_window.set_view(HomeWindow.MESH_VIEW)
def zoom_in(self):
level = self._zoom_level + 1
if level <= Shell.ZOOM_ACTIVITY:
self._set_zoom_level(level)
def zoom_out(self):
level = self._zoom_level - 1
if level >= Shell.ZOOM_MESH:
self._set_zoom_level(level)
+2 -4
View File
@@ -5,7 +5,5 @@
<Alt>n=next
<Alt>p=prev
<Alt>c=close
f1=!sugar-zoom out
f2=!sugar-zoom in
f3=!sugar-people
f4=!sugar-activity org.sugar.Terminal
f5=!sugar-people
f6=!sugar-activity org.sugar.Terminal
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/python
import sys
import dbus
import dbus.glib
bus = dbus.SessionBus()
proxy_obj = bus.get_object('com.redhat.Sugar.Shell', '/com/redhat/Sugar/Shell')
shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.Shell')
if sys.argv[1] == 'in':
shell.zoom_in()
elif sys.argv[1] == 'out':
shell.zoom_out()