Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-07-06 13:59:48 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-07-06 13:59:48 (GMT)
commit85ff44db1c49e688fa17e7759f7d785eed8a8755 (patch)
treefba3826ea30c72a6e402b8d7d07980d4411c5d58 /shell
parente8acfd6be35476a19a52c3d3bf6acf66f2c1cb54 (diff)
Forgot to commit changes... This breaks one-to-one chat,
I'm going to fix it.
Diffstat (limited to 'shell')
-rw-r--r--shell/StartPage.py18
-rw-r--r--shell/session/session.py18
2 files changed, 13 insertions, 23 deletions
diff --git a/shell/StartPage.py b/shell/StartPage.py
index b7d5ce3..f55f5d7 100644
--- a/shell/StartPage.py
+++ b/shell/StartPage.py
@@ -2,7 +2,6 @@ import pygtk
pygtk.require('2.0')
import gtk
import pango
-import dbus
import cgi
import xml.sax.saxutils
import gobject
@@ -10,6 +9,7 @@ import socket
from google import google
from sugar.presence.PresenceService import PresenceService
+from sugar.activity import Activity
from gettext import gettext as _
@@ -150,24 +150,12 @@ class ActivitiesView(gtk.TreeView):
self._owner = owner
def _row_activated_cb(self, treeview, path, column):
- bus = dbus.SessionBus()
- proxy_obj = bus.get_object('com.redhat.Sugar.Browser', '/com/redhat/Sugar/Browser')
- browser_shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.BrowserShell')
-
model = self.get_model()
address = model.get_value(model.get_iter(path), _COLUMN_ADDRESS)
service = model.get_value(model.get_iter(path), _COLUMN_SERVICE)
- print 'Activated row %s' % address
-
- if service is None:
- browser_shell.open_browser(address)
- else:
- if not self._owner:
- raise RuntimeError("We don't have an owner yet!")
- serialized_service = service.serialize(self._owner)
- browser_shell.open_browser(address, serialized_service)
-
+ Activity.create('com.redhat.Sugar.BrowserActivity', service, [ address ])
+
class StartPage(gtk.HBox):
def __init__(self, ac_signal_object):
gtk.HBox.__init__(self)
diff --git a/shell/session/session.py b/shell/session/session.py
index 1b5bec6..7de16c6 100644
--- a/shell/session/session.py
+++ b/shell/session/session.py
@@ -8,6 +8,7 @@ import gtk
from shell import Shell
from sugar import env
+from sugar.activity import Activity
class Session:
def __init__(self):
@@ -42,20 +43,21 @@ class Session:
def _run_activity(self, activity_dir):
env.add_to_python_path(activity_dir)
- activities = []
for filename in os.listdir(activity_dir):
if filename.endswith(".activity"):
path = os.path.join(activity_dir, filename)
cp = ConfigParser()
cp.read([path])
- python_class = cp.get('Activity', "python_class")
- activities.append(python_class)
- for activity in activities:
- args = [ 'python', '-m', activity ]
- pid = os.spawnvp(os.P_NOWAIT, 'python', args)
- self._activity_processes[activity] = pid
-
+ activity_name = cp.get('Activity', "name")
+ activity_class = cp.get('Activity', "class")
+
+ args = [ 'python', '-m', 'sugar/activity/Activity' ]
+ args.append(activity_name)
+ args.append(activity_class)
+ pid = os.spawnvp(os.P_NOWAIT, 'python', args)
+ self._activity_processes[activity_name] = pid
+
def _shell_close_cb(self, shell):
self.shutdown()