diff options
author | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-06 13:23:40 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-06 13:23:40 (GMT) |
commit | 4ce3decec07caa1016bcdfa03252150e4335ad77 (patch) | |
tree | 74037a0ccf1fcec4a1ad17cc160e8dc823a2e9c6 /src/jarabe/journal | |
parent | ae5b5a424e6e6523139dc2813cc4f915dfde6ea0 (diff) |
Move the bundle registry inside the shell process.
Diffstat (limited to 'src/jarabe/journal')
-rw-r--r-- | src/jarabe/journal/journalactivity.py | 7 | ||||
-rw-r--r-- | src/jarabe/journal/journaltoolbox.py | 25 | ||||
-rw-r--r-- | src/jarabe/journal/misc.py | 22 | ||||
-rw-r--r-- | src/jarabe/journal/palettes.py | 7 |
4 files changed, 36 insertions, 25 deletions
diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py index 51f0c61..1f63696 100644 --- a/src/jarabe/journal/journalactivity.py +++ b/src/jarabe/journal/journalactivity.py @@ -33,6 +33,7 @@ from sugar import env from sugar.activity import activityfactory from sugar import wm +from jarabe.model import bundleregistry from jarabe.journal.journaltoolbox import MainToolbox, DetailToolbox from jarabe.journal.listview import ListView from jarabe.journal.detailview import DetailView @@ -278,14 +279,16 @@ class JournalActivity(Window): self._list_view.update_dates() def _check_for_bundle(self, jobject): + registry = bundleregistry.get_registry() + bundle = misc.get_bundle(jobject) if bundle is None: return - if bundle.is_installed(): + if registry.is_installed(bundle): return try: - bundle.install() + registry.install(bundle) except (ZipExtractException, RegistrationException), e: logging.warning('Could not install bundle %s: %r' % (jobject.file_path, e)) diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py index 8d52a06..8124afd 100644 --- a/src/jarabe/journal/journaltoolbox.py +++ b/src/jarabe/journal/journaltoolbox.py @@ -35,6 +35,7 @@ from sugar import profile from sugar import mime from sugar.datastore import datastore +from jarabe.model import bundleregistry from jarabe.journal import volumesmanager from jarabe.journal import misc @@ -254,22 +255,22 @@ class SearchToolbar(gtk.Toolbar): # TRANS: Item in a combo box that filters by entry type. self._what_search_combo.append_item(_ACTION_ANYTHING, _('Anything')) - registry = activity.get_registry() + registry = bundleregistry.get_registry() appended_separator = False for service_name in datastore.get_unique_values('activity'): - activity_info = registry.get_activity(service_name) + activity_info = registry.get_bundle(service_name) if not activity_info is None: if not appended_separator: self._what_search_combo.append_separator() appended_separator = True - if os.path.exists(activity_info.icon): + if os.path.exists(activity_info.get_icon()): self._what_search_combo.append_item(service_name, - activity_info.name, - file_name=activity_info.icon) + activity_info.get_name(), + file_name=activity_info.get_icon()) else: self._what_search_combo.append_item(service_name, - activity_info.name, + activity_info.get_name(), icon_name='application-octet-stream') if service_name == current_value: @@ -359,10 +360,12 @@ class EntryToolbar(gtk.Toolbar): pass def _erase_button_clicked_cb(self, button): + registry = bundleregistry.get_registry() + if self._jobject: bundle = misc.get_bundle(self._jobject) - if bundle is not None and bundle.is_installed(): - bundle.uninstall() + if bundle is not None and registry.is_installed(bundle): + registry.uninstall(bundle) datastore.delete(self._jobject.object_id) def _resume_menu_item_activate_cb(self, menu_item, service_name): @@ -408,11 +411,11 @@ class EntryToolbar(gtk.Toolbar): menu_item.destroy() for activity_info in misc.get_activities(self._jobject): - menu_item = MenuItem(activity_info.name) - menu_item.set_image(Icon(file=activity_info.icon, + menu_item = MenuItem(activity_info.get_name()) + menu_item.set_image(Icon(file=activity_info.get_icon(), icon_size=gtk.ICON_SIZE_MENU)) menu_item.connect('activate', self._resume_menu_item_activate_cb, - activity_info.bundle_id) + activity_info.get_bundle_id()) palette.menu.append(menu_item) menu_item.show() diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py index 42d179b..3fa8bd7 100644 --- a/src/jarabe/journal/misc.py +++ b/src/jarabe/journal/misc.py @@ -23,7 +23,6 @@ from gettext import gettext as _ import gtk -from sugar import activity from sugar.activity import activityfactory from sugar.activity.activityhandle import ActivityHandle from sugar import mime @@ -32,6 +31,7 @@ from sugar.bundle.contentbundle import ContentBundle from sugar.bundle.bundle import MalformedBundleException from sugar import util +from jarabe.model import bundleregistry from jarabe.journal.journalentrybundle import JournalEntryBundle def _get_icon_file_name(icon_name): @@ -66,9 +66,9 @@ def get_icon_name(jobject): if not file_name and jobject.metadata['activity']: service_name = jobject.metadata['activity'] - activity_info = activity.get_registry().get_activity(service_name) + activity_info = bundleregistry.get_registry().get_bundle(service_name) if activity_info: - file_name = activity_info.icon + file_name = activity_info.get_icon() mime_type = jobject.metadata['mime_type'] if not file_name and mime_type: @@ -110,7 +110,7 @@ def get_bundle(jobject): return None def _get_activities_for_mime(mime_type): - registry = activity.get_registry() + registry = bundleregistry.get_registry() result = registry.get_activities_for_type(mime_type) if not result: for parent_mime in mime.get_mime_parents(mime_type): @@ -122,7 +122,7 @@ def get_activities(jobject): bundle_id = jobject.metadata.get('activity', '') if bundle_id: - activity_info = activity.get_registry().get_activity(bundle_id) + activity_info = bundleregistry.get_registry().get_bundle(bundle_id) if activity_info: activities.append(activity_info) @@ -130,22 +130,24 @@ def get_activities(jobject): if mime_type: activities_info = _get_activities_for_mime(mime_type) for activity_info in activities_info: - if activity_info.bundle_id != bundle_id: + if activity_info.get_bundle_id() != bundle_id: activities.append(activity_info) return activities def resume(jobject, bundle_id=None): + registry = bundleregistry.get_registry() + if jobject.is_activity_bundle() and not bundle_id: logging.debug('Creating activity bundle') bundle = ActivityBundle(jobject.file_path) - if not bundle.is_installed(): + if not registry.is_installed(bundle): logging.debug('Installing activity bundle') - bundle.install() - elif bundle.need_upgrade(): + registry.install(bundle) + else: logging.debug('Upgrading activity bundle') - bundle.upgrade() + registry.upgrade(bundle) logging.debug('activityfactory.creating bundle with id %r', bundle.get_bundle_id()) diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index dfed3b9..501e4fb 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -27,6 +27,7 @@ from sugar.graphics.icon import Icon from sugar.datastore import datastore from sugar.graphics.xocolor import XoColor +from jarabe.model import bundleregistry from jarabe.journal import misc class ObjectPalette(Palette): @@ -94,9 +95,11 @@ class ObjectPalette(Palette): pass def __erase_activate_cb(self, menu_item): + registry = bundleregistry.get_registry() + bundle = misc.get_bundle(self._jobject) - if bundle is not None and bundle.is_installed(): - bundle.uninstall() + if bundle is not None and registry.is_installed(bundle): + registry.uninstall(bundle) datastore.delete(self._jobject.object_id) |