diff options
author | Martin Abente <mabente@paraguayeduca.org> | 2010-09-08 15:11:07 (GMT) |
---|---|---|
committer | Martin Abente <mabente@paraguayeduca.org> | 2010-09-09 15:42:08 (GMT) |
commit | 5a63e31ef7a2ef0fc1dbc266dccb2fce4954d770 (patch) | |
tree | 919d063e8835bcf5b1ab027bde556a9ec11e16b0 /src/jarabe/desktop/activitieslist.py | |
parent | 525c2ce125ad484bbfe05697f9fdf73163c86517 (diff) |
Protected Activities Support #2087
Activities deletion causes troubles during classes. Teachers from
Paraguay and Uruguay asked for a mechanism to protect activities
from being easily deleted.
This patch provides a mechanism that uses a gconf value to determine
which activities will not contain the erase option at the list view
palette.
The gconf value contains a list of activities bundle indentifiers.
Diffstat (limited to 'src/jarabe/desktop/activitieslist.py')
-rw-r--r-- | src/jarabe/desktop/activitieslist.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py index c14d31e..56b3b5f 100644 --- a/src/jarabe/desktop/activitieslist.py +++ b/src/jarabe/desktop/activitieslist.py @@ -401,13 +401,7 @@ class ActivityListPalette(ActivityPalette): self._favorite_item.show() if activity_info.is_user_activity(): - menu_item = MenuItem(_('Erase'), 'list-remove') - menu_item.connect('activate', self.__erase_activate_cb) - self.menu.append(menu_item) - menu_item.show() - - if not os.access(activity_info.get_path(), os.W_OK): - menu_item.props.sensitive = False + self._add_erase_option(registry, activity_info) registry = bundleregistry.get_registry() self._activity_changed_sid = registry.connect('bundle_changed', @@ -416,6 +410,16 @@ class ActivityListPalette(ActivityPalette): self.connect('destroy', self.__destroy_cb) + def _add_erase_option(self, registry, activity_info): + menu_item = MenuItem(_('Erase'), 'list-remove') + menu_item.connect('activate', self.__erase_activate_cb) + self.menu.append(menu_item) + menu_item.show() + + if not os.access(activity_info.get_path(), os.W_OK) or \ + registry.is_activity_protected(self._bundle_id): + menu_item.props.sensitive = False + def __destroy_cb(self, palette): self.disconnect(self._activity_changed_sid) |