diff --git a/examples/README b/examples/README new file mode 100644 index 00000000..84c1a165 --- /dev/null +++ b/examples/README @@ -0,0 +1,2 @@ +Just drop gmail.py and gmail.activity inside ~/.sugar/activities +Then run sugar as usual. diff --git a/examples/gmail.activity b/examples/gmail.activity new file mode 100644 index 00000000..2a589128 --- /dev/null +++ b/examples/gmail.activity @@ -0,0 +1,2 @@ +[Activity] +python_class = gmail diff --git a/examples/gmail.py b/examples/gmail.py new file mode 100755 index 00000000..b1d6b7bd --- /dev/null +++ b/examples/gmail.py @@ -0,0 +1,33 @@ +import pygtk +pygtk.require('2.0') +import gtk +import geckoembed + +from sugar.shell import activity + +class GMailActivity(activity.Activity): + def __init__(self): + activity.Activity.__init__(self) + + def activity_on_connected_to_shell(self): + self.activity_set_tab_text("Mail") + self.activity_set_tab_icon_name("stock_mail") + self.activity_show_icon(True) + + plug = self.activity_get_gtk_plug() + + embed = geckoembed.Embed() + plug.add(embed) + embed.show() + + plug.show() + + embed.load_address("http://www.gmail.com") + + def activity_on_disconnected_from_shell(self): + gtk.main_quit() + +activity = GMailActivity() +activity.activity_connect_to_shell() + +gtk.main() diff --git a/sugar/session/session.py b/sugar/session/session.py index 415d3097..57de266b 100644 --- a/sugar/session/session.py +++ b/sugar/session/session.py @@ -14,8 +14,15 @@ def start(console): activities = [] + activities_dirs = [] + for data_dir in env.get_data_dirs(): - activities_dir = os.path.join(data_dir, env.get_activities_dir()) + act_dir = os.path.join(data_dir, env.get_activities_dir()) + activities_dirs.append(act_dir) + + activities_dirs.append(os.path.expanduser('~/.sugar/activities')) + + for activities_dir in activities_dirs: for filename in os.listdir(activities_dir): if filename.endswith(".activity"): path = os.path.join(activities_dir, filename) diff --git a/sugar/sugar b/sugar/sugar index 023e3f60..d0f1c26e 100755 --- a/sugar/sugar +++ b/sugar/sugar @@ -18,10 +18,12 @@ if os.path.isfile(os.path.join(curdir, '__uninstalled__.py')): else: print 'Running sugar from ' + basedir + ' ...' sys.path.insert(0, basedir) - os.environ['PYTHONPATH'] = basedir + os.environ['PYTHONPATH'] += ':' + basedir console = True else: print 'Running the installed sugar...' + +os.environ['PYTHONPATH'] += ':' + os.path.expanduser('~/.sugar/activities') if console: print 'Redirecting output to the console, press ctrl+d to open it.' @@ -29,4 +31,3 @@ if console: from sugar.session import session session.start(console) -