From 24fbd1ce1c9e401c611b7f830d9cb96b9531ff08 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 16 Oct 2007 23:51:28 +0200 Subject: [PATCH] Fix the object chooser --- NEWS | 2 + lib/sugar/graphics/objectchooser.py | 1 - lib/sugar/objects/Makefile.am | 5 -- lib/sugar/objects/__init__.py | 16 ------ lib/sugar/objects/objecttype.py | 79 ----------------------------- 5 files changed, 2 insertions(+), 101 deletions(-) delete mode 100644 lib/sugar/objects/Makefile.am delete mode 100644 lib/sugar/objects/__init__.py delete mode 100644 lib/sugar/objects/objecttype.py diff --git a/NEWS b/NEWS index 544652b1..44faa863 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +* Fix the object chooser (marco) + Snapshot 3c7578577d * Fix the shell service (marco) diff --git a/lib/sugar/graphics/objectchooser.py b/lib/sugar/graphics/objectchooser.py index 7522a9d5..e099c3dc 100644 --- a/lib/sugar/graphics/objectchooser.py +++ b/lib/sugar/graphics/objectchooser.py @@ -29,7 +29,6 @@ from sugar.graphics.xocolor import XoColor from sugar.graphics.roundbox import CanvasRoundBox from sugar.datastore import datastore from sugar import activity -from sugar.objects import objecttype # TODO: Activities should request the Journal to open objectchooser dialogs. In # that way, we'll be able to reuse most of this code inside the Journal. diff --git a/lib/sugar/objects/Makefile.am b/lib/sugar/objects/Makefile.am deleted file mode 100644 index 0f898303..00000000 --- a/lib/sugar/objects/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -sugardir = $(pythondir)/sugar/objects -sugar_PYTHON = \ - __init__.py \ - objecttype.py - diff --git a/lib/sugar/objects/__init__.py b/lib/sugar/objects/__init__.py deleted file mode 100644 index 85ebcede..00000000 --- a/lib/sugar/objects/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2006-2007, Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. diff --git a/lib/sugar/objects/objecttype.py b/lib/sugar/objects/objecttype.py deleted file mode 100644 index a8192168..00000000 --- a/lib/sugar/objects/objecttype.py +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright (C) 2006-2007, Red Hat, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -import dbus - -_SERVICE = "org.laptop.ObjectTypeRegistry" -_PATH = "/org/laptop/ObjectTypeRegistry" -_IFACE = "org.laptop.ObjectTypeRegistry" - -def _object_type_from_dict(info_dict): - if info_dict: - return ObjectType(info_dict['type_id'], - info_dict['name'], - info_dict['icon'], - info_dict['mime_types']) - else: - return None - -class ObjectType(object): - def __init__(self, type_id, name, icon, mime_types): - self.type_id = type_id - self.name = name - self.icon = icon - self.mime_types = mime_types - - self._type_id_to_type = {} - self._mime_type_to_type = {} - -class ObjectTypeRegistry(object): - def __init__(self): - bus = dbus.SessionBus() - bus_object = bus.get_object(_SERVICE, _PATH) - self._registry = dbus.Interface(bus_object, _IFACE) - - # Two caches fo saving some travel across dbus. - self._type_id_to_type = {} - self._mime_type_to_type = {} - - def get_type(self, type_id): - if self._type_id_to_type.has_key(type_id): - return self._type_id_to_type[type_id] - - type_dict = self._registry.GetType(type_id) - object_type = _object_type_from_dict(type_dict) - - self._type_id_to_type[type_id] = object_type - return object_type - - def get_type_for_mime(self, mime_type): - if self._mime_type_to_type.has_key(mime_type): - return self._mime_type_to_type[mime_type] - - type_dict = self._registry.GetTypeForMIME(mime_type) - object_type = _object_type_from_dict(type_dict) - - self._mime_type_to_type[mime_type] = object_type - return object_type - -_registry = None - -def get_registry(): - global _registry - if not _registry: - _registry = ObjectTypeRegistry() - return _registry