Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services/shell/bundleregistry.py
diff options
context:
space:
mode:
authorDan Winship <dwinship@redhat.com>2007-10-04 19:59:23 (GMT)
committer Dan Winship <dwinship@redhat.com>2007-10-04 19:59:23 (GMT)
commit2bcbde6e441ee5ab5743f6b45b5f85e85bbb644f (patch)
tree84a47bc8cb25119134c91db7787a7127acb08ce8 /services/shell/bundleregistry.py
parent5b0566803273cbc45f50a834b08aec73ede26ac5 (diff)
Add bundle removing methods/signals to the activity registry, and use them
Diffstat (limited to 'services/shell/bundleregistry.py')
-rw-r--r--services/shell/bundleregistry.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/services/shell/bundleregistry.py b/services/shell/bundleregistry.py
index 9a1cda6..54d5297 100644
--- a/services/shell/bundleregistry.py
+++ b/services/shell/bundleregistry.py
@@ -73,12 +73,17 @@ class _ServiceManager(object):
util.write_service(bundle.get_service_name(),
bundle.get_command(), self._path)
+ def remove(self, bundle):
+ util.delete_service(bundle.get_service_name(), self._path)
+
class BundleRegistry(gobject.GObject):
"""Service that tracks the available activity bundles"""
__gsignals__ = {
'bundle-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT]))
+ ([gobject.TYPE_PYOBJECT])),
+ 'bundle-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT]))
}
def __init__(self):
@@ -133,6 +138,15 @@ class BundleRegistry(gobject.GObject):
self.emit('bundle-added', bundle)
return True
+ def remove_bundle(self, bundle_path):
+ for bundle in self._bundles:
+ if bundle.get_path() == bundle_path:
+ self._bundles.remove(bundle)
+ self._service_manager.remove(bundle)
+ self.emit('bundle-removed', bundle)
+ return True
+ return False
+
def get_activities_for_type(self, mime_type):
result = []
for bundle in self._bundles: