Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
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
parentdf9c25835bdf3aba9c85e45d665917df3d433e17 (diff)
Add a favorites mode setting for deciding if the favorites view resumes by default or not
-rw-r--r--src/jarabe/desktop/favoritesview.py45
-rw-r--r--src/jarabe/desktop/homebox.py24
2 files changed, 51 insertions, 18 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():
diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py
index 6fdc8f1..204ee55 100644
--- a/src/jarabe/desktop/homebox.py
+++ b/src/jarabe/desktop/homebox.py
@@ -301,17 +301,23 @@ class FavoritesButton(RadioToolButton):
self._layout = favorites_settings.layout
self._update_icon()
+ menu_item = gtk.CheckMenuItem(_('Resume by default'))
+ menu_item.props.active = favorites_settings.resume_mode
+ self.props.palette.menu.append(menu_item)
+ menu_item.connect('activate', self.__mode_activate_cb)
+ menu_item.show()
+
# someday, this will be a gtk.Table()
layouts_grid = gtk.HBox()
layout_item = None
- for layoutid, layoutclass in sorted(favoritesview.LAYOUT_MAP.items()):
- layout_item = RadioToolButton(icon_name=layoutclass.icon_name,
+ for layout_id, layout_class in sorted(favoritesview.LAYOUT_MAP.items()):
+ layout_item = RadioToolButton(icon_name=layout_class.icon_name,
group=layout_item, active=False)
- if layoutid == self._layout:
+ if layout_id == self._layout:
layout_item.set_active(True)
layouts_grid.pack_start(layout_item, fill=False)
- layout_item.connect('toggled', self.__layout_activate_cb,
- layoutid)
+ layout_item.connect('toggled', self.__layout_activate_cb, layout_id)
+
layouts_grid.show_all()
self.props.palette.set_content(layouts_grid)
@@ -333,7 +339,11 @@ class FavoritesButton(RadioToolButton):
else:
self.emit('toggled')
+ def __mode_activate_cb(self, menu_item):
+ favorites_settings = favoritesview.get_settings()
+ favorites_settings.resume_mode = menu_item.props.active
+
def _update_icon(self):
- self.props.named_icon = favoritesview.LAYOUT_MAP[self._layout]\
- .icon_name
+ layout_class = favoritesview.LAYOUT_MAP[self._layout]
+ self.props.named_icon = layout_class.icon_name