diff options
author | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-01-17 20:06:44 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-01-17 20:06:44 (GMT) |
commit | 17fce61f7197cc152a84090e9b11dcb750a786e1 (patch) | |
tree | 08011f9a6c968726c3542abc44f8e916d61522ef /src/jarabe/desktop/favoritesview.py | |
parent | df9c25835bdf3aba9c85e45d665917df3d433e17 (diff) |
Add a favorites mode setting for deciding if the favorites view resumes by default or not
Diffstat (limited to 'src/jarabe/desktop/favoritesview.py')
-rw-r--r-- | src/jarabe/desktop/favoritesview.py | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py index e4badfb..d072f35 100644 --- a/src/jarabe/desktop/favoritesview.py +++ b/src/jarabe/desktop/favoritesview.py @@ -417,9 +417,14 @@ class ActivityIcon(CanvasIcon): datastore_listener.updated.connect(self.__datastore_listener_updated_cb) datastore_listener.deleted.connect(self.__datastore_listener_deleted_cb) + get_settings().changed.connect(self.__settings_changed_cb) + self._refresh() self._update() + def __settings_changed_cb(self, **kwargs): + self._refresh() + def _refresh(self): bundle_id = self._activity_info.get_bundle_id() properties = ['uid', 'title', 'icon-color', 'activity', 'activity_id', @@ -454,7 +459,7 @@ class ActivityIcon(CanvasIcon): def _update(self): self.palette = None - if not self._journal_entries: + if not get_settings().resume_mode or not self._journal_entries: self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg() self.props.fill_color = style.COLOR_TRANSPARENT.get_svg() else: @@ -513,7 +518,7 @@ class ActivityIcon(CanvasIcon): def __button_release_event_cb(self, icon, event): self.palette.popdown(immediate=True) - if self._journal_entries: + if get_settings().resume_mode and self._journal_entries: activityfactory.create_with_object_id(self._activity_info, self._journal_entries[0]['uid']) else: @@ -541,7 +546,8 @@ class FavoritePalette(ActivityPalette): def __init__(self, activity_info, journal_entries): ActivityPalette.__init__(self, activity_info) - if journal_entries and journal_entries[0].get('icon-color', ''): + if get_settings().resume_mode and journal_entries and \ + journal_entries[0].get('icon-color', ''): color = XoColor(journal_entries[0]['icon-color']) else: color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), @@ -552,11 +558,15 @@ class FavoritePalette(ActivityPalette): icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR) if journal_entries: - self.props.secondary_text = journal_entries[0]['title'] + if get_settings().resume_mode: + self.props.secondary_text = journal_entries[0]['title'] menu_items = [] - entries = journal_entries[1:] + if get_settings().resume_mode: + entries = journal_entries[1:] + else: + entries = journal_entries for entry in entries: icon_file_name = journal.misc.get_icon_name(entry) @@ -657,14 +667,13 @@ class _MyIcon(MyIcon): class FavoritesSetting(object): - _FAVORITES_KEY = "/desktop/sugar/desktop/favorites_layout" + _FAVORITES_LAYOUT_KEY = '/desktop/sugar/desktop/favorites_layout' + _FAVORITES_MODE_KEY = '/desktop/sugar/desktop/favorites_mode' def __init__(self): client = gconf.client_get_default() - self._layout = client.get_string(self._FAVORITES_KEY) - logging.debug('FavoritesSetting layout %r' % (self._layout)) - - self._mode = None + self._layout = client.get_string(self._FAVORITES_LAYOUT_KEY) + self._resume_mode = client.get_bool(self._FAVORITES_MODE_KEY) self.changed = dispatch.Signal() @@ -677,12 +686,26 @@ class FavoritesSetting(object): self._layout = layout client = gconf.client_get_default() - client.set_string(self._FAVORITES_KEY, layout) + client.set_string(self._FAVORITES_LAYOUT_KEY, layout) self.changed.send(self) layout = property(get_layout, set_layout) + def is_resume_mode(self): + return self._resume_mode + + def set_resume_mode(self, resume_mode): + if resume_mode != self._resume_mode: + self._resume_mode = resume_mode + + client = gconf.client_get_default() + client.set_bool(self._FAVORITES_MODE_KEY, resume_mode) + + self.changed.send(self) + + resume_mode = property(is_resume_mode, set_resume_mode) + _favorites_settings = None def get_settings(): |