Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco 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)
commit18053f3423b7fc9d816cf2d51947d2eff882b47f (patch)
tree4c14c71a862570372c5aa2d63279be3b31ce035b /src
parent78b19f9818601e0f54155eadaad330ae5ba632e8 (diff)
Get rid of the pointless ActivityHost.
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/frame/friendstray.py3
-rw-r--r--src/jarabe/model/shell.py8
-rw-r--r--src/jarabe/view/Makefile.am1
-rw-r--r--src/jarabe/view/activityhost.py51
-rw-r--r--src/jarabe/view/buddymenu.py12
-rw-r--r--src/jarabe/view/shell.py49
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())