From dea930d30220b4da113527c910d4dcd430b7c2f0 Mon Sep 17 00:00:00 2001 From: mike Date: Sat, 12 Dec 2009 02:44:42 +0000 Subject: Shell Integration : Unruly version --- diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py index 85279ff..397fbd6 100644 --- a/src/jarabe/desktop/homebox.py +++ b/src/jarabe/desktop/homebox.py @@ -109,19 +109,23 @@ class HomeBox(gtk.VBox): def _set_view(self, view): if view == _FAVORITES_VIEW: - if self._list_view in self.get_children(): - self.remove(self._list_view) + if self._list_view: + self._list_view.hide() + #if self._list_view in self.get_children(): + # self.remove(self._list_view) if self._favorites_view not in self.get_children(): self.add(self._favorites_view) - self._favorites_view.show() + self._favorites_view.show() elif view == _LIST_VIEW: - if self._favorites_view in self.get_children(): - self.remove(self._favorites_view) + #if self._favorites_view in self.get_children(): + # self.remove(self._favorites_view) + if self._favorites_view: + self._favorites_view.hide() if self._list_view not in self.get_children(): self.add(self._list_view) - self._list_view.show() + self._list_view.show() else: raise ValueError('Invalid view: %r' % view) diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py index 3aa88dc..23a648e 100644 --- a/src/jarabe/desktop/homewindow.py +++ b/src/jarabe/desktop/homewindow.py @@ -68,20 +68,17 @@ class HomeWindow(gtk.Window): self._home_overlay = FrameOverlayer(self._home_box) self._group_overlay = FrameOverlayer(self._group_box) self._mesh_overlay = FrameOverlayer(self._mesh_box) - #Hide them f... + #Hide them self._home_overlay.hide() self._group_overlay.hide() self._mesh_overlay.hide() #Make em overlap this window - self._home_overlay.set_transient_for(self) - self._group_overlay.set_transient_for(self) - self._mesh_overlay.set_transient_for(self) + #self._home_overlay.set_transient_for(self) + #self._group_overlay.set_transient_for(self) + #self._mesh_overlay.set_transient_for(self) self.add(self._home_box) self._home_box.show() - self._home_overlay.put(TextBubble("testhome"), 100, 200) - self._group_overlay.put(TextBubble("testgroup"), 200, 200) - self._mesh_overlay.put(TextBubble("testmesh"), 300, 200) self._transition_box.connect('completed', self._transition_completed_cb) @@ -91,6 +88,9 @@ class HomeWindow(gtk.Window): self._home_probe = TProbe.TProbe(self._home_box, "org.sugar.desktop.home", "org/sugar/desktop/home", overlayer=self._home_overlay) self._group_probe = TProbe.TProbe(self._group_box, "org.sugar.desktop.group", "org/sugar/desktop/group", overlayer=self._group_overlay) + import pickle + import sugar.tutorius.addon as addon + self._group_probe.install(pickle.dumps(addon.create("BubbleMessage", position=(100,100), message="This is a probe addon \nfor the group view.")), is_editing=True) self._mesh_probe = TProbe.TProbe(self._mesh_box, "org.sugar.desktop.mesh", "org/sugar/desktop/mesh", overlayer=self._mesh_overlay) def _deactivate_view(self, level): diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py index d6831b2..ec4309a 100644 --- a/src/jarabe/frame/activitiestray.py +++ b/src/jarabe/frame/activitiestray.py @@ -371,6 +371,12 @@ class ActivitiesTray(HTray): # Only select the new activity, if there is no tabbing activity. if home_model.get_tabbing_activity() is None: self._activate_activity(home_activity) + from sugar.tutorius.service import ServiceProxy + service = ServiceProxy() + if home_activity.is_journal(): + service.set_current_act("org.laptop.JournalActivity") + else: + service.set_current_act(home_activity.get_type()) def __tabbing_activity_changed_cb(self, home_model, home_activity): logging.debug('__tabbing_activity_changed_cb: %r', home_activity) diff --git a/src/jarabe/frame/zoomtoolbar.py b/src/jarabe/frame/zoomtoolbar.py index c168e97..cc06998 100644 --- a/src/jarabe/frame/zoomtoolbar.py +++ b/src/jarabe/frame/zoomtoolbar.py @@ -76,14 +76,25 @@ class ZoomToolbar(gtk.Toolbar): def _set_zoom_level(self, new_level): logging.debug('new zoom level: %r', new_level) + from sugar.tutorius.service import ServiceProxy + service = ServiceProxy() if new_level == shell.ShellModel.ZOOM_MESH: self._mesh_button.props.active = True + service.set_current_act("org.sugar.desktop.mesh") elif new_level == shell.ShellModel.ZOOM_GROUP: self._groups_button.props.active = True + service.set_current_act("org.sugar.desktop.group") elif new_level == shell.ShellModel.ZOOM_HOME: self._home_button.props.active = True + service.set_current_act("org.sugar.desktop.home") elif new_level == shell.ShellModel.ZOOM_ACTIVITY: self._activity_button.props.active = True + current_act = shell.get_model().get_active_activity() + if current_act is not None: + if current_act.is_journal(): + service.set_current_act("org.laptop.JournalActivity") + else: + service.set_current_act(current_act.get_type()) else: raise ValueError('Invalid zoom level: %r' % (new_level)) diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index ef2268d..e119931 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -356,9 +356,12 @@ class ShellModel(gobject.GObject): if old_level != self.ZOOM_ACTIVITY: screen = gtk.gdk.screen_get_default() - active_window_type = screen.get_active_window().get_type_hint() - if active_window_type != gtk.gdk.WINDOW_TYPE_HINT_DESKTOP: - return + active_window = screen.get_active_window() + # HACK alert! This does random behavior on the screens + if active_window: + active_window_type = active_window.get_type_hint() + if active_window_type != gtk.gdk.WINDOW_TYPE_HINT_DESKTOP: + return self._zoom_level = new_level if new_level is not self.ZOOM_ACTIVITY: -- cgit v0.9.1