Move the zoom levels inside the model

master
Marco Pesenti Gritti 17 years ago
parent 59bf818e99
commit 7024f93a43

@ -10,6 +10,6 @@ sugar_PYTHON = \
Invites.py \
Owner.py \
MeshModel.py \
ShellModel.py \
shellmodel.py \
homeactivity.py \
homemodel.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,

@ -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

@ -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()

@ -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):

@ -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

@ -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'

@ -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()

@ -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)

@ -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()

Loading…
Cancel
Save