Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/desktop/activitieslist.py
diff options
context:
space:
mode:
authorMartin Abente <mabente@paraguayeduca.org>2010-09-08 15:11:07 (GMT)
committer Martin Abente <mabente@paraguayeduca.org>2010-09-09 15:42:08 (GMT)
commit5a63e31ef7a2ef0fc1dbc266dccb2fce4954d770 (patch)
tree919d063e8835bcf5b1ab027bde556a9ec11e16b0 /src/jarabe/desktop/activitieslist.py
parent525c2ce125ad484bbfe05697f9fdf73163c86517 (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.py18
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)