[sugar] running the journal inside the shell process
Tomeu Vizoso
tomeu at tomeuvizoso.net
Tue May 27 05:28:56 EDT 2008
Hi,
talking with Morgan about journal object transfer (see link below), he
commented that if the journal was part of the shell, the invitations
stuff would be easier to implement.
http://wiki.laptop.org/go/Specifications/Object_Transfers
The hack below almost works fine, there just seem to be a problem with
the shell calling TakeScreenshot to itself...
Any idea how this could be done in a more appropriate way?
Thanks,
Tomeu
diff --git a/src/view/Shell.py b/src/view/Shell.py
index f45923d..6befd91 100644
--- a/src/view/Shell.py
+++ b/src/view/Shell.py
@@ -92,8 +92,19 @@ class Shell(gobject.GObject):
# Checking for the bundle existence will also ensure
# that the shell service is started up.
registry = activity.get_registry()
- if registry.get_activity('org.laptop.JournalActivity'):
- self.start_activity('org.laptop.JournalActivity')
+ activity_info = registry.get_activity('org.laptop.JournalActivity')
+ if activity_info is not None:
+ import sys, os
+ from sugar.activity.activityhandle import ActivityHandle
+ from sugar.activity import activityfactory
+ sys.path.insert(0, activity_info.path)
+
+ from journalactivity import JournalActivity
+
+ os.environ['SUGAR_BUNDLE_ID'] = 'org.laptop.JournalActivity'
+ handle = ActivityHandle(activityfactory.create_activity_id())
+ journal_activity = JournalActivity(handle)
+ journal_activity.show_all()
def _activity_started_cb(self, home_model, home_activity):
activity_host = ActivityHost(home_activity)
More information about the Sugar
mailing list