diff --git a/activities/browser/BrowserActivity.py b/activities/browser/BrowserActivity.py index d618d33e..f7025703 100644 --- a/activities/browser/BrowserActivity.py +++ b/activities/browser/BrowserActivity.py @@ -1,3 +1,5 @@ +import os + import gtk import geckoembed @@ -8,11 +10,15 @@ from sugar.p2p.model.RemoteModel import RemoteModel from NotificationBar import NotificationBar from NavigationToolbar import NavigationToolbar +from sugar import env class BrowserActivity(Activity): def __init__(self): Activity.__init__(self) + path = os.path.join(env.get_profile_path(), 'gecko') + geckoembed.set_profile_path(path) + self._share_service = None self._model_service = None self._notif_service = None diff --git a/configure.ac b/configure.ac index eec1823e..198231b3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([Sugar],[0.22],[],[sugar]) +AC_INIT([Sugar],[0.24],[],[sugar]) AC_PREREQ([2.59]) diff --git a/shell/Owner.py b/shell/Owner.py index 81b390ea..e2e64e8c 100644 --- a/shell/Owner.py +++ b/shell/Owner.py @@ -15,7 +15,7 @@ class ShellOwner(object): server portion of the Owner, paired with the client portion in Buddy.py.""" def __init__(self): self._nick = env.get_nick_name() - user_dir = env.get_user_dir() + user_dir = env.get_profile_path() self._icon = None for fname in os.listdir(user_dir): diff --git a/shell/Shell.py b/shell/Shell.py index 3c548307..b79e2457 100755 --- a/shell/Shell.py +++ b/shell/Shell.py @@ -94,6 +94,7 @@ class Shell(gobject.GObject): self.set_zoom_level(Shell.ZOOM_MESH) def __first_time_dialog_destroy_cb(self, dialog): + conf.get_profile().save() self.start() def start(self): diff --git a/sugar/conf/Profile.py b/sugar/conf/Profile.py index f8e6950e..c569cb30 100644 --- a/sugar/conf/Profile.py +++ b/sugar/conf/Profile.py @@ -3,7 +3,8 @@ from ConfigParser import ConfigParser from sugar.canvas.IconColor import IconColor class Profile: - def __init__(self): + def __init__(self,): + self._path = None self._nick_name = None def _ensure_dirs(self): @@ -18,23 +19,20 @@ class Profile: def set_color(self, color): self._color = color - self.save() def get_nick_name(self): return self._nick_name def set_nick_name(self, nick_name): self._nick_name = nick_name - self.save() def get_path(self): return self._path - def read(self, profile_id): - self._profile_id = profile_id + def set_path(self, path): + self._path = path - base_path = os.path.expanduser('~/.sugar') - self._path = os.path.join(base_path, profile_id) + def read(self): self._color = None self._ensure_dirs() diff --git a/sugar/env.py b/sugar/env.py index 4db74e82..4b977d37 100644 --- a/sugar/env.py +++ b/sugar/env.py @@ -44,15 +44,21 @@ def setup(): registry = sugar.conf.get_activity_registry() registry.scan_directory(get_activities_dir()) - profile = sugar.conf.get_profile() - if os.environ.has_key('SUGAR_PROFILE'): - profile.read(os.environ['SUGAR_PROFILE']) - else: - profile.read('default') + read_profile() -def get_user_dir(): +def read_profile(): profile = sugar.conf.get_profile() - return profile.get_path() + profile.set_path(get_profile_path()) + profile.read() + +def get_profile_path(): + if os.environ.has_key('SUGAR_PROFILE'): + profile_id = os.environ['SUGAR_PROFILE'] + else: + profile_id = 'default' + path = os.path.expanduser('~/.sugar') + + return os.path.join(path, profile_id) def get_nick_name(): profile = sugar.conf.get_profile()