diff options
author | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-05 12:18:19 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-05 12:18:19 (GMT) |
commit | 18053f3423b7fc9d816cf2d51947d2eff882b47f (patch) | |
tree | 4c14c71a862570372c5aa2d63279be3b31ce035b /src | |
parent | 78b19f9818601e0f54155eadaad330ae5ba632e8 (diff) |
Get rid of the pointless ActivityHost.
Diffstat (limited to 'src')
-rw-r--r-- | src/jarabe/frame/friendstray.py | 3 | ||||
-rw-r--r-- | src/jarabe/model/shell.py | 8 | ||||
-rw-r--r-- | src/jarabe/view/Makefile.am | 1 | ||||
-rw-r--r-- | src/jarabe/view/activityhost.py | 51 | ||||
-rw-r--r-- | src/jarabe/view/buddymenu.py | 12 | ||||
-rw-r--r-- | src/jarabe/view/shell.py | 49 |
6 files changed, 21 insertions, 103 deletions
diff --git a/src/jarabe/frame/friendstray.py b/src/jarabe/frame/friendstray.py index cc00a6c..4f58299 100644 --- a/src/jarabe/frame/friendstray.py +++ b/src/jarabe/frame/friendstray.py @@ -17,7 +17,6 @@ from sugar.presence import presenceservice from sugar.graphics.tray import VTray, TrayIcon -from jarabe.view import shell as shellview from jarabe.view.buddymenu import BuddyMenu from jarabe.frame.frameinvoker import FrameWidgetInvoker from jarabe.model import shell @@ -85,7 +84,7 @@ class FriendsTray(VTray): self._buddies = {} def __activity_appeared_cb(self, pservice, activity_ps): - activity = shellview.get_instance().get_current_activity() + activity = shell.get_model().get_active_activity() if activity and activity_ps.props.id == activity.get_id(): self._set_activity_ps(activity_ps, True) diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index 5515189..82cd06d 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -430,7 +430,7 @@ class ShellModel(gobject.GObject): activity_info = None if activity_id: - home_activity = self._get_activity_by_id(activity_id) + home_activity = self.get_activity_by_id(activity_id) if not home_activity: home_activity = Activity(activity_info, activity_id, window) @@ -455,7 +455,7 @@ class ShellModel(gobject.GObject): return home_activity return None - def _get_activity_by_id(self, activity_id): + def get_activity_by_id(self, activity_id): for home_activity in self._activities: if home_activity.get_activity_id() == activity_id: return home_activity @@ -521,7 +521,7 @@ class ShellModel(gobject.GObject): gobject.timeout_add(90000, self._check_activity_launched, activity_id) def notify_launch_failed(self, activity_id): - home_activity = self._get_activity_by_id(activity_id) + home_activity = self.get_activity_by_id(activity_id) if home_activity: logging.debug("Activity %s (%s) launch failed" % \ (activity_id, home_activity.get_type())) @@ -534,7 +534,7 @@ class ShellModel(gobject.GObject): self.emit('launch-failed', home_activity) def _check_activity_launched(self, activity_id): - home_activity = self._get_activity_by_id(activity_id) + home_activity = self.get_activity_by_id(activity_id) if not home_activity: logging.debug('Activity %s has been closed already.' % activity_id) diff --git a/src/jarabe/view/Makefile.am b/src/jarabe/view/Makefile.am index 733864b..f09e20f 100644 --- a/src/jarabe/view/Makefile.am +++ b/src/jarabe/view/Makefile.am @@ -1,7 +1,6 @@ sugardir = $(pythondir)/jarabe/view sugar_PYTHON = \ __init__.py \ - activityhost.py \ buddyicon.py \ buddymenu.py \ keyhandler.py \ diff --git a/src/jarabe/view/activityhost.py b/src/jarabe/view/activityhost.py deleted file mode 100644 index c91a2be..0000000 --- a/src/jarabe/view/activityhost.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2006-2007 Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -import gtk -import logging - -class ActivityHost: - def __init__(self, model): - self._model = model - self._window = model.get_window() - - def get_id(self): - return self._model.get_activity_id() - - def get_xid(self): - return self._window.get_xid() - - def get_model(self): - return self._model - - def invite(self, buddy_model): - service = self._model.get_service() - if service: - buddy = buddy_model.get_buddy() - service.Invite(buddy.props.key) - else: - logging.error('Invite failed, activity service not ') - - def toggle_fullscreen(self): - fullscreen = not self._window.is_fullscreen() - self._window.set_fullscreen(fullscreen) - - def present(self): - self._window.activate(gtk.get_current_event_time()) - - def close(self): - # The "1" is a fake timestamp as with present() - self._window.close(1) diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py index 3ce0c50..fc1fdbe 100644 --- a/src/jarabe/view/buddymenu.py +++ b/src/jarabe/view/buddymenu.py @@ -14,6 +14,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import logging from gettext import gettext as _ import gtk @@ -24,7 +25,6 @@ from sugar.graphics.icon import Icon from jarabe.model import shell from jarabe.model import friends -from jarabe.view import shell as shellview class BuddyMenu(Palette): def __init__(self, buddy): @@ -111,6 +111,10 @@ class BuddyMenu(Palette): friends.get_model().remove(self._buddy) def _invite_friend_cb(self, menuitem): - activity = shellview.get_instance().get_current_activity() - activity.invite(self._buddy) - + activity = shell.get_model().get_active_activity() + service = activity.get_service() + if service: + buddy = self._buddy.get_buddy() + service.Invite(buddy.props.key) + else: + logging.error('Invite failed, activity service not ') diff --git a/src/jarabe/view/shell.py b/src/jarabe/view/shell.py index d37783a..c26df92 100644 --- a/src/jarabe/view/shell.py +++ b/src/jarabe/view/shell.py @@ -33,7 +33,6 @@ from sugar.datastore import datastore from sugar import profile from sugar import env -from jarabe.view.activityhost import ActivityHost from jarabe.view.launchwindow import LaunchWindow from jarabe.model import shell from jarabe.journal import journalactivity @@ -43,7 +42,6 @@ class Shell(gobject.GObject): gobject.GObject.__init__(self) self._model = shell.get_model() - self._hosts = {} self._launchers = {} self._screen = wnck.screen_get_default() self._screen_rotation = 0 @@ -61,7 +59,6 @@ class Shell(gobject.GObject): self._model.connect('launch-started', self.__launch_started_cb) self._model.connect('launch-failed', self.__launch_failed_cb) self._model.connect('launch-completed', self.__launch_completed_cb) - self._model.connect('activity-removed', self._activity_removed_cb) gobject.idle_add(self._start_journal_idle) @@ -94,9 +91,6 @@ class Shell(gobject.GObject): self._destroy_launcher(home_activity) def __launch_completed_cb(self, home_model, home_activity): - activity_host = ActivityHost(home_activity) - self._hosts[activity_host.get_xid()] = activity_host - if not home_activity.is_journal(): self._destroy_launcher(home_activity) @@ -109,21 +103,6 @@ class Shell(gobject.GObject): else: logging.error('Launcher for %s is missing' % activity_id) - def _activity_removed_cb(self, home_model, home_activity): - xid = home_activity.get_xid() - if self._hosts.has_key(xid): - del self._hosts[xid] - - def _get_host_from_activity_model(self, activity_model): - if activity_model is None: - raise ValueError('activity_model cannot be None') - xid = activity_model.get_xid() - if xid: - return self._hosts[activity_model.get_xid()] - else: - logging.debug('Activity %r dont have a window yet' % activity_model) - return None - def get_model(self): return self._model @@ -131,10 +110,8 @@ class Shell(gobject.GObject): return self._frame def join_activity(self, bundle_id, activity_id): - activity_host = self.get_activity(activity_id) - if activity_host: - activity_host.present() - return + activity_model = self._model.get_activity_by_id(activity_id) + activity_model.get_window().activate(gtk.get_current_event_time()) # Get the service name for this activity, if # we have a bundle on the system capable of handling @@ -175,17 +152,17 @@ class Shell(gobject.GObject): return if level == shell.ShellModel.ZOOM_ACTIVITY: - host = self.get_current_activity() - if host is None: - raise ValueError('No current activity') - host.present() + active_activity = self._model.get_active_activity() + active_activity.get_window().activate(gtk.get_current_event_time()) else: self._model.set_zoom_level(level) self._screen.toggle_showing_desktop(True) def toggle_activity_fullscreen(self): if self._model.get_zoom_level() == shell.ShellModel.ZOOM_ACTIVITY: - self.get_current_activity().toggle_fullscreen() + active_activity = self._model.get_active_activity() + fullscreen = not self._window.is_fullscreen() + active_activity.get_window().set_fullscreen(fullscreen) def activate_previous_activity(self): previous_activity = self._model.get_previous_activity() @@ -206,17 +183,7 @@ class Shell(gobject.GObject): if active_activity.is_journal(): return - self.get_current_activity().close() - - def get_current_activity(self): - active_activity = self._model.get_active_activity() - return self._get_host_from_activity_model(active_activity) - - def get_activity(self, activity_id): - for host in self._hosts.values(): - if host.get_id() == activity_id: - return host - return None + self._model.get_active_activity().get_window().close() def take_screenshot(self): file_path = os.path.join(tempfile.gettempdir(), '%i' % time.time()) |