From 7024f93a43501ffe40ed6e696e1f1214c2216543 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 2 Jul 2007 14:34:41 +0200 Subject: [PATCH] Move the zoom levels inside the model --- shell/model/Makefile.am | 2 +- shell/model/{ShellModel.py => shellmodel.py} | 5 +++++ shell/sugar-shell | 2 +- shell/view/Shell.py | 17 ++++++++--------- shell/view/frame/ZoomBox.py | 19 ++++++++++++++----- shell/view/frame/frame.py | 2 +- shell/view/home/HomeBox.py | 2 +- shell/view/home/HomeWindow.py | 18 +++++++++--------- shell/view/keyhandler.py | 11 +++++------ sugar/__init__.py | 5 ----- 10 files changed, 45 insertions(+), 38 deletions(-) rename shell/model/{ShellModel.py => shellmodel.py} (96%) diff --git a/shell/model/Makefile.am b/shell/model/Makefile.am index 6296ed28..486ad091 100644 --- a/shell/model/Makefile.am +++ b/shell/model/Makefile.am @@ -10,6 +10,6 @@ sugar_PYTHON = \ Invites.py \ Owner.py \ MeshModel.py \ - ShellModel.py \ + shellmodel.py \ homeactivity.py \ homemodel.py diff --git a/shell/model/ShellModel.py b/shell/model/shellmodel.py similarity index 96% rename from shell/model/ShellModel.py rename to shell/model/shellmodel.py index d714839b..1117ea59 100644 --- a/shell/model/ShellModel.py +++ b/shell/model/shellmodel.py @@ -31,6 +31,11 @@ class ShellModel(gobject.GObject): STATE_RUNNING = 1 STATE_SHUTDOWN = 2 + ZOOM_MESH = 0 + ZOOM_FRIENDS = 1 + ZOOM_HOME = 2 + ZOOM_ACTIVITY = 3 + __gproperties__ = { 'state' : (int, None, None, 0, 2, STATE_RUNNING, diff --git a/shell/sugar-shell b/shell/sugar-shell index 08b7b85b..8bd3dd05 100755 --- a/shell/sugar-shell +++ b/shell/sugar-shell @@ -35,7 +35,7 @@ logger.start('shell') sys.path.insert(0, env.get_shell_path()) from view.Shell import Shell -from model.ShellModel import ShellModel +from model.shellmodel import ShellModel from shellservice import ShellService from intro import intro diff --git a/shell/view/Shell.py b/shell/view/Shell.py index b4e2fea6..4f752418 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -29,14 +29,13 @@ from sugar.activity.activityhandle import ActivityHandle from sugar.activity import activityfactory from sugar.datastore import datastore from sugar import profile -import sugar from view.ActivityHost import ActivityHost from view.frame.frame import Frame from view.keyhandler import KeyHandler from view.home.HomeWindow import HomeWindow from model import bundleregistry - +from model.shellmodel import ShellModel from hardware import hardwaremanager class Shell(gobject.GObject): @@ -58,7 +57,7 @@ class Shell(gobject.GObject): self._home_window = HomeWindow(self) self._home_window.show() - self._zoom_level = sugar.ZOOM_HOME + self._zoom_level = ShellModel.ZOOM_HOME home_model = self._model.get_home() home_model.connect('activity-started', self._activity_started_cb) @@ -102,9 +101,9 @@ class Shell(gobject.GObject): if self._current_host: self._current_host.set_active(True) - self.set_zoom_level(sugar.ZOOM_ACTIVITY) + self.set_zoom_level(ShellModel.ZOOM_ACTIVITY) else: - self.set_zoom_level(sugar.ZOOM_HOME) + self.set_zoom_level(ShellModel.ZOOM_HOME) def get_model(self): return self._model @@ -134,7 +133,7 @@ class Shell(gobject.GObject): def notify_launch(self, bundle_id, activity_id): # Zoom to Home for launch feedback - self.set_zoom_level(sugar.ZOOM_HOME) + self.set_zoom_level(ShellModel.ZOOM_HOME) home_model = self._model.get_home() home_model.notify_activity_launch(activity_id, bundle_id) @@ -154,18 +153,18 @@ class Shell(gobject.GObject): def set_zoom_level(self, level): if self._zoom_level == level: return - if len(self._hosts) == 0 and level == sugar.ZOOM_ACTIVITY: + if len(self._hosts) == 0 and level == ShellModel.ZOOM_ACTIVITY: return self._zoom_level = level - if self._zoom_level == sugar.ZOOM_ACTIVITY: + if self._zoom_level == ShellModel.ZOOM_ACTIVITY: self._screen.toggle_showing_desktop(False) else: self._screen.toggle_showing_desktop(True) self._home_window.set_zoom_level(self._zoom_level) - if self._zoom_level == sugar.ZOOM_HOME: + if self._zoom_level == ShellModel.ZOOM_HOME: self._frame.show() else: self._frame.hide() diff --git a/shell/view/frame/ZoomBox.py b/shell/view/frame/ZoomBox.py index 2f2b9783..5bfb0e76 100644 --- a/shell/view/frame/ZoomBox.py +++ b/shell/view/frame/ZoomBox.py @@ -18,7 +18,8 @@ import hippo from sugar.graphics import color from sugar.graphics.iconbutton import IconButton -import sugar + +from model.shellmodel import ShellModel class ZoomBox(hippo.CanvasBox): def __init__(self, shell): @@ -29,25 +30,33 @@ class ZoomBox(hippo.CanvasBox): icon = IconButton(icon_name='theme:stock-zoom-mesh', stroke_color=color.BLACK, fill_color=color.WHITE) - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_MESH) + icon.connect('activated', + self._level_clicked_cb, + ShellModel.ZOOM_MESH) self.append(icon) icon = IconButton(icon_name='theme:stock-zoom-friends', stroke_color=color.BLACK, fill_color=color.WHITE) - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_FRIENDS) + icon.connect('activated', + self._level_clicked_cb, + ShellModel.ZOOM_FRIENDS) self.append(icon) icon = IconButton(icon_name='theme:stock-zoom-home', stroke_color=color.BLACK, fill_color=color.WHITE) - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_HOME) + icon.connect('activated', + self._level_clicked_cb, + ShellModel.ZOOM_HOME) self.append(icon) icon = IconButton(icon_name='theme:stock-zoom-activity', stroke_color=color.BLACK, fill_color=color.WHITE) - icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_ACTIVITY) + icon.connect('activated', + self._level_clicked_cb, + ShellModel.ZOOM_ACTIVITY) self.append(icon) def _level_clicked_cb(self, item, level): diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index 522c6af9..18047848 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -27,7 +27,7 @@ from view.frame.overlaybox import OverlayBox from view.frame.FriendsBox import FriendsBox from view.frame.framewindow import FrameWindow from view.frame.clipboardpanelwindow import ClipboardPanelWindow -from model.ShellModel import ShellModel +from model.shellmodel import ShellModel from sugar.graphics import animator from sugar.graphics import units from sugar.clipboard import clipboardservice diff --git a/shell/view/home/HomeBox.py b/shell/view/home/HomeBox.py index 5586ba28..ff7174af 100644 --- a/shell/view/home/HomeBox.py +++ b/shell/view/home/HomeBox.py @@ -34,7 +34,7 @@ from sugar import env from view.home.activitiesdonut import ActivitiesDonut from view.devices import deviceview from view.home.MyIcon import MyIcon -from model.ShellModel import ShellModel +from model.shellmodel import ShellModel class HomeBox(hippo.CanvasBox, hippo.CanvasItem): __gtype_name__ = 'SugarHomeBox' diff --git a/shell/view/home/HomeWindow.py b/shell/view/home/HomeWindow.py index b4f94ef8..61c62035 100644 --- a/shell/view/home/HomeWindow.py +++ b/shell/view/home/HomeWindow.py @@ -19,12 +19,12 @@ import hippo import cairo from sugar.graphics import units -import sugar from view.home.MeshBox import MeshBox from view.home.HomeBox import HomeBox from view.home.FriendsBox import FriendsBox from view.home.transitionbox import TransitionBox +from model.shellmodel import ShellModel _HOME_PAGE = 0 _FRIENDS_PAGE = 1 @@ -37,7 +37,7 @@ class HomeWindow(gtk.Window): self._shell = shell self._active = False - self._level = sugar.ZOOM_HOME + self._level = ShellModel.ZOOM_HOME self._canvas = hippo.Canvas() self.add(self._canvas) @@ -94,7 +94,7 @@ class HomeWindow(gtk.Window): self._home_box.release() def _update_mesh_state(self): - if self._active and self._level == sugar.ZOOM_MESH: + if self._active and self._level == ShellModel.ZOOM_MESH: self._mesh_box.resume() else: self._mesh_box.suspend() @@ -112,21 +112,21 @@ class HomeWindow(gtk.Window): self._canvas.set_root(self._transition_box) - if level == sugar.ZOOM_HOME: + if level == ShellModel.ZOOM_HOME: scale = units.XLARGE_ICON_SCALE - elif level == sugar.ZOOM_FRIENDS: + elif level == ShellModel.ZOOM_FRIENDS: scale = units.LARGE_ICON_SCALE - elif level == sugar.ZOOM_MESH: + elif level == ShellModel.ZOOM_MESH: scale = units.STANDARD_ICON_SCALE self._transition_box.set_scale(scale) def _transition_completed_cb(self, transition_box): - if self._level == sugar.ZOOM_HOME: + if self._level == ShellModel.ZOOM_HOME: self._canvas.set_root(self._home_box) - elif self._level == sugar.ZOOM_FRIENDS: + elif self._level == ShellModel.ZOOM_FRIENDS: self._canvas.set_root(self._friends_box) - elif self._level == sugar.ZOOM_MESH: + elif self._level == ShellModel.ZOOM_MESH: self._canvas.set_root(self._mesh_box) self._update_mesh_state() diff --git a/shell/view/keyhandler.py b/shell/view/keyhandler.py index 16338551..8a6314e5 100644 --- a/shell/view/keyhandler.py +++ b/shell/view/keyhandler.py @@ -24,9 +24,8 @@ import gtk from sugar import env from hardware import hardwaremanager -from model.ShellModel import ShellModel +from model.shellmodel import ShellModel from sugar._sugarext import KeyGrabber -import sugar _actions_table = { 'F1' : 'zoom_mesh', @@ -90,16 +89,16 @@ class KeyHandler(object): hw_manager.set_display_mode(mode) def handle_zoom_mesh(self): - self._shell.set_zoom_level(sugar.ZOOM_MESH) + self._shell.set_zoom_level(ShellModel.ZOOM_MESH) def handle_zoom_friends(self): - self._shell.set_zoom_level(sugar.ZOOM_FRIENDS) + self._shell.set_zoom_level(ShellModel.ZOOM_FRIENDS) def handle_zoom_home(self): - self._shell.set_zoom_level(sugar.ZOOM_HOME) + self._shell.set_zoom_level(ShellModel.ZOOM_HOME) def handle_zoom_activity(self): - self._shell.set_zoom_level(sugar.ZOOM_ACTIVITY) + self._shell.set_zoom_level(ShellModel.ZOOM_ACTIVITY) def handle_brightness_1(self): self._set_display_brightness(0) diff --git a/sugar/__init__.py b/sugar/__init__.py index 771d71a8..995341d6 100644 --- a/sugar/__init__.py +++ b/sugar/__init__.py @@ -21,10 +21,5 @@ import os from sugar import ltihooks -ZOOM_MESH = 0 -ZOOM_FRIENDS = 1 -ZOOM_HOME = 2 -ZOOM_ACTIVITY = 3 - if os.path.isfile(os.path.join(os.path.dirname(__file__), 'Makefile.am')): ltihooks.install()