From b320ea36cf27a08db4711dc577736309d6f57cd6 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 13 Jun 2007 11:50:05 +0200 Subject: [PATCH] Some activity registry fixes. Thanks cjb. --- bin/sugar-activity | 5 ++--- sugar/activity/__init__.py | 4 +++- sugar/activity/registry.py | 5 ++++- sugar/objects/objecttype.py | 5 ++++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bin/sugar-activity b/bin/sugar-activity index 9a970904..3e9c1c5a 100755 --- a/bin/sugar-activity +++ b/bin/sugar-activity @@ -20,7 +20,7 @@ import sys import os from ConfigParser import ConfigParser -from sugar.activity import ActivityRegistry +from sugar import activity from sugar import env # Setup the environment so that we run inside the Sugar shell @@ -51,8 +51,7 @@ def print_help(self): activity_info = None if len(sys.argv) > 1: - registry = ActivityRegistry() - activities = registry.find_activity(sys.argv[1]) + activities = activity.get_registry().find_activity(sys.argv[1]) if len(activities) > 0: activity_info = activities[0] diff --git a/sugar/activity/__init__.py b/sugar/activity/__init__.py index 89bd1c3f..261b3881 100644 --- a/sugar/activity/__init__.py +++ b/sugar/activity/__init__.py @@ -36,4 +36,6 @@ class. This class allows for querying the ID of the root window, requesting sharing across the network, and basic "what type of application are you" queries. """ - +from sugar.activity.registry import ActivityRegistry +from sugar.activity.registry import get_registry +from sugar.activity.registry import ActivityInfo diff --git a/sugar/activity/registry.py b/sugar/activity/registry.py index 7e307b80..79d64031 100644 --- a/sugar/activity/registry.py +++ b/sugar/activity/registry.py @@ -58,7 +58,10 @@ class ActivityRegistry(object): info_list = self._registry.GetActivitiesForType(mime_type) return self._convert_info_list(info_list) -_registry = ActivityRegistry() +_registry = None def get_registry(): + global _registry + if not _registry: + _registry = ActivityRegistry() return _registry diff --git a/sugar/objects/objecttype.py b/sugar/objects/objecttype.py index b515bd13..20e6e114 100644 --- a/sugar/objects/objecttype.py +++ b/sugar/objects/objecttype.py @@ -49,7 +49,10 @@ class ObjectTypeRegistry(object): type_dict = self._registry.GetTypeForMIME(mime_type) return _object_type_from_dict(type_dict) -_registry = ObjectTypeRegistry() +_registry = None def get_registry(): + global _registry + if not _registry: + _registry = ObjectTypeRegistry() return _registry