Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/desktop/favoritesview.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-01-17 20:06:44 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-01-17 20:06:44 (GMT)
commit17fce61f7197cc152a84090e9b11dcb750a786e1 (patch)
tree08011f9a6c968726c3542abc44f8e916d61522ef /src/jarabe/desktop/favoritesview.py
parentdf9c25835bdf3aba9c85e45d665917df3d433e17 (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.py45
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():