From 9ea68051741d6e7b0bde4e6c7326cde4a14f6238 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 21 Jun 2006 20:05:52 +0000 Subject: More work on packages refactoring, mostly working --- diff --git a/Makefile.am b/Makefile.am index a35c559..1a80c99 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1 +1 @@ -SUBDIRS = sugar cut-n-paste +SUBDIRS = activities shell sugar diff --git a/activities/browser/BrowserActivity.py b/activities/browser/BrowserActivity.py index 662313f..2f851dd 100644 --- a/activities/browser/BrowserActivity.py +++ b/activities/browser/BrowserActivity.py @@ -6,7 +6,7 @@ pygtk.require('2.0') import gtk import geckoembed -from sugar.activity import activity +from sugar.activity.Activity import Activity from sugar.presence.PresenceService import PresenceService from sugar.p2p.model.LocalModel import LocalModel from sugar.p2p.model.RemoteModel import RemoteModel @@ -18,13 +18,13 @@ _BROWSER_ACTIVITY_TYPE = "_web_olpc._udp" _SERVICE_URI_TAG = "URI" _SERVICE_TITLE_TAG = "Title" -class BrowserActivity(activity.Activity): +class BrowserActivity(Activity): SOLO = 1 FOLLOWING = 2 LEADING = 3 def __init__(self, uri, mode = SOLO): - activity.Activity.__init__(self, _BROWSER_ACTIVITY_TYPE) + Activity.__init__(self, _BROWSER_ACTIVITY_TYPE) self.uri = uri self._mode = mode diff --git a/activities/browser/Makefile.am b/activities/browser/Makefile.am index 2c66e22..b25e52d 100644 --- a/activities/browser/Makefile.am +++ b/activities/browser/Makefile.am @@ -1,4 +1,4 @@ -sugardir = $(pythondir)/sugar/browser +sugardir = $(pkgdatadir)/activities/browser sugar_PYTHON = \ __init__.py \ browser.py \ @@ -8,18 +8,7 @@ sugar_PYTHON = \ BrowserActivity.py \ NavigationToolbar.py -icondir = $(pkgdatadir) -icon_DATA = \ - fold.png \ - unfold.png - -rcdir = $(pkgdatadir) -rc_DATA = browser.rc - -activitydir = $(pkgdatadir)/activities +activitydir = $(pkgdatadir)/activities/browser activity_DATA = browser.activity -EXTRA_DIST = \ - $(rc_DATA) \ - $(activity_DATA) \ - $(icon_DATA) +EXTRA_DIST = $(activity_DATA) diff --git a/activities/browser/browser.py b/activities/browser/browser.py index bdfa2bd..02267fc 100755 --- a/activities/browser/browser.py +++ b/activities/browser/browser.py @@ -6,15 +6,13 @@ import gtk import dbus import sugar.env -from sugar.session.LogWriter import LogWriter +from sugar.LogWriter import LogWriter from BrowserShell import BrowserShell log_writer = LogWriter("Web") log_writer.start() -gtk.rc_parse(sugar.env.get_data_file('browser.rc')) - session_bus = dbus.SessionBus() bus_name = dbus.service.BusName('com.redhat.Sugar.Browser', bus=session_bus) shell = BrowserShell(bus_name) diff --git a/activities/browser/browser.rc b/activities/browser/browser.rc deleted file mode 100644 index 69f1320..0000000 --- a/activities/browser/browser.rc +++ /dev/null @@ -1,7 +0,0 @@ -style "NotificationBarButton" = "button" -{ - xthickness = 0 - ythickness = 0 -} - -widget "*.notif bar.*GtkButton*" style "NotificationBarButton" diff --git a/activities/browser/fold.png b/activities/browser/fold.png deleted file mode 100644 index cd4169b..0000000 --- a/activities/browser/fold.png +++ /dev/null Binary files differ diff --git a/activities/browser/unfold.png b/activities/browser/unfold.png deleted file mode 100644 index f3f82fa..0000000 --- a/activities/browser/unfold.png +++ /dev/null Binary files differ diff --git a/configure.ac b/configure.ac index df8922f..c87101a 100644 --- a/configure.ac +++ b/configure.ac @@ -17,12 +17,14 @@ AC_SUBST(PYGTK_LIBS) AC_OUTPUT([ Makefile +activities/Makefile activities/browser/Makefile -cut-n-paste/Makefile shell/Makefile +shell/google/Makefile shell/session/Makefile sugar/Makefile sugar/__installed__.py +sugar/activity/Makefile sugar/chat/Makefile sugar/chat/sketchpad/Makefile sugar/p2p/Makefile diff --git a/shell/Makefile.am b/shell/Makefile.am index 1080b7d..e044fa2 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -1,8 +1,12 @@ -sugardir = $(pythondir)/sugar/shell +SUBDIRS = google session + +bin_SCRIPTS = sugar + +sugardir = $(pkgdatadir)/shell sugar_PYTHON = \ __init__.py \ - activity.py \ shell.py \ Owner.py \ PresenceWindow.py \ - StartPage.py + StartPage.py \ + WindowManager.py diff --git a/shell/google/Makefile.am b/shell/google/Makefile.am index 89ba29e..0f6057c 100644 --- a/shell/google/Makefile.am +++ b/shell/google/Makefile.am @@ -1,5 +1,6 @@ -cut_n_pastedir = $(datadir)/sugar -cut_n_paste_PYTHON = \ +googledir = $(pkgdatadir)/shell/google +google_PYTHON = \ + __init__.py \ google.py \ GoogleSOAPFacade.py \ SOAP.py diff --git a/shell/session/Makefile.am b/shell/session/Makefile.am index a8ba913..23e4194 100644 --- a/shell/session/Makefile.am +++ b/shell/session/Makefile.am @@ -1,5 +1,4 @@ -sugardir = $(pythondir)/sugar/session +sugardir = $(pkgdatadir)/shell/session sugar_PYTHON = \ __init__.py \ - session.py \ - LogWriter.py + session.py diff --git a/shell/session/session.py b/shell/session/session.py index 2ddc554..2f6eab2 100644 --- a/shell/session/session.py +++ b/shell/session/session.py @@ -17,25 +17,33 @@ class Session: shell = Shell() shell.connect('close', self._shell_close_cb) shell.start() - - activities = [] - activities_dirs = [] - for data_dir in env.get_data_dirs(): - act_dir = os.path.join(data_dir, env.get_activities_dir()) - activities_dirs.append(act_dir) + self._run_activities() - activities_dirs.append(os.path.join(env.get_user_dir(), 'activities')) + def _run_activities(self): + base_dirs = [] - for activities_dir in activities_dirs: - if os.path.isdir(activities_dir): - for filename in os.listdir(activities_dir): - if filename.endswith(".activity"): - path = os.path.join(activities_dir, filename) - cp = ConfigParser() - cp.read([path]) - python_class = cp.get('Activity', "python_class") - activities.append(python_class) + base_dirs.append(env.get_activities_dir()) + base_dirs.append(os.path.join(env.get_user_dir(), 'activities')) + + for base_dir in base_dirs: + if os.path.isdir(base_dir): + for filename in os.listdir(base_dir): + activity_dir = os.path.join(base_dir, filename) + if os.path.isdir(activity_dir): + self._run_activity(os.path.abspath(activity_dir)) + + 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 ] diff --git a/shell/shell.py b/shell/shell.py index 18eceeb..e4cc36a 100755 --- a/shell/shell.py +++ b/shell/shell.py @@ -11,7 +11,7 @@ import gobject import sugar.util from sugar.chat.ChatWindow import ChatWindow from sugar.chat.GroupChat import GroupChat -from sugar.session.LogWriter import LogWriter +from sugar.LogWriter import LogWriter from Owner import ShellOwner from StartPage import StartPage diff --git a/shell/sugar b/shell/sugar index ccfdd00..ad1905b 100755 --- a/shell/sugar +++ b/shell/sugar @@ -9,13 +9,6 @@ import pygtk pygtk.require('2.0') import gobject -def add_to_python_path(path): - sys.path.insert(0, path) - if os.environ.has_key('PYTHONPATH'): - os.environ['PYTHONPATH'] += ':' + path - else: - os.environ['PYTHONPATH'] = path - def start_dbus(): curdir = os.path.dirname(__file__) args = "/bin/dbus-daemon --session --print-address".split() @@ -60,16 +53,16 @@ if not os.environ.has_key("SUGAR_NICK_NAME"): curdir = os.path.abspath(os.path.dirname(__file__)) basedir = os.path.dirname(curdir) +import sugar.env + if os.path.isfile(os.path.join(basedir, 'sugar/__uninstalled__.py')): print 'Running sugar from ' + basedir + ' ...' - add_to_python_path(basedir) - add_to_python_path(os.path.join(basedir, 'shell')) - add_to_python_path(os.path.join(basedir, 'activities/browser')) + sugar.env.add_to_python_path(basedir) + sugar.env.add_to_python_path(os.path.join(basedir, 'shell')) else: + sugar.env.add_to_python_path(os.path.join(sugar.env.get_data_dir(), 'shell')) print 'Running the installed sugar...' -add_to_python_path(os.path.expanduser('~/.sugar/activities')) - print 'Redirecting output to the console, press ctrl+d to open it.' from session.session import Session diff --git a/sugar/session/LogWriter.py b/sugar/LogWriter.py index a04d14b..a04d14b 100644 --- a/sugar/session/LogWriter.py +++ b/sugar/LogWriter.py diff --git a/sugar/Makefile.am b/sugar/Makefile.am index eb28f89..5fe8ee7 100644 --- a/sugar/Makefile.am +++ b/sugar/Makefile.am @@ -1,12 +1,12 @@ -SUBDIRS = chat browser p2p shell session presence - -bin_SCRIPTS = sugar +SUBDIRS = activity chat p2p presence sugardir = $(pythondir)/sugar sugar_PYTHON = \ __init__.py \ __installed__.py \ + bots.py \ env.py \ - util.py + util.py \ + LogWriter.py EXTRA_DIST = sugar __uninstalled__.py diff --git a/sugar/__installed__.py.in b/sugar/__installed__.py.in index fd39247..1b3a64b 100644 --- a/sugar/__installed__.py.in +++ b/sugar/__installed__.py.in @@ -1,3 +1,2 @@ -data_basedir = '@prefix@/share/' -data_dirs = [ 'sugar' ] -activities_dir = 'activities' +sugar_data_dir = '@prefix@/share/sugar' +sugar_activities_dir = '@prefix@/share/sugar/activities' diff --git a/sugar/__uninstalled__.py b/sugar/__uninstalled__.py index 286a735..6b2e1dd 100644 --- a/sugar/__uninstalled__.py +++ b/sugar/__uninstalled__.py @@ -1,5 +1,4 @@ import os -data_basedir = os.path.dirname(os.path.dirname(__file__)) -data_dirs = [ 'activities/browser' ] -activities_dir = '' +sugar_data_dir = os.path.dirname(os.path.dirname(__file__)) +sugar_activities_dir = os.path.join(sugar_data_dir, 'activities') diff --git a/sugar/activity/activity.py b/sugar/activity/Activity.py index 509565c..509565c 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/Activity.py diff --git a/sugar/chat/Makefile.am b/sugar/chat/Makefile.am index 0d9eaae..b3ab5eb 100644 --- a/sugar/chat/Makefile.am +++ b/sugar/chat/Makefile.am @@ -4,6 +4,9 @@ sugardir = $(pythondir)/sugar/chat sugar_PYTHON = \ __init__.py \ Chat.py \ + ChatEditor.py \ + ChatToolbar.py \ + ChatWindow.py \ Emoticons.py \ GroupChat.py \ richtext.py diff --git a/sugar/env.py b/sugar/env.py index 1135791..df1fb30 100644 --- a/sugar/env.py +++ b/sugar/env.py @@ -1,10 +1,18 @@ import os +import sys try: from sugar.__uninstalled__ import * except ImportError: from sugar.__installed__ import * +def add_to_python_path(path): + sys.path.insert(0, path) + if os.environ.has_key('PYTHONPATH'): + os.environ['PYTHONPATH'] += ':' + path + else: + os.environ['PYTHONPATH'] = path + def get_user_dir(): if os.environ.has_key('SUGAR_USER_DIR'): return os.environ['SUGAR_USER_DIR'] @@ -22,20 +30,9 @@ def get_nick_name(): return os.environ['SUGAR_NICK_NAME'] else: return None - -def get_data_file(filename): - for data_dir in get_data_dirs(): - path = os.path.join(data_dir, filename) - if os.path.isfile(path): - return path - return None -def get_data_dirs(): - dirs = [] - for data_dir in data_dirs: - path = os.path.join(data_basedir, data_dir) - dirs.append(path) - return dirs - +def get_data_dir(): + return sugar_data_dir + def get_activities_dir(): - return activities_dir + return sugar_activities_dir diff --git a/sugar/session/__init__.py b/sugar/session/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/sugar/session/__init__.py +++ /dev/null -- cgit v0.9.1