Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal
diff options
context:
space:
mode:
authorMarco 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)
commit4ce3decec07caa1016bcdfa03252150e4335ad77 (patch)
tree74037a0ccf1fcec4a1ad17cc160e8dc823a2e9c6 /src/jarabe/journal
parentae5b5a424e6e6523139dc2813cc4f915dfde6ea0 (diff)
Move the bundle registry inside the shell process.
Diffstat (limited to 'src/jarabe/journal')
-rw-r--r--src/jarabe/journal/journalactivity.py7
-rw-r--r--src/jarabe/journal/journaltoolbox.py25
-rw-r--r--src/jarabe/journal/misc.py22
-rw-r--r--src/jarabe/journal/palettes.py7
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)