Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/objects
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/objects')
-rw-r--r--sugar/objects/Makefile.am7
-rw-r--r--sugar/objects/__init__.py2
-rw-r--r--sugar/objects/mime.py4
-rw-r--r--sugar/objects/typeinfo.py58
-rw-r--r--sugar/objects/typeregistry.py99
5 files changed, 9 insertions, 161 deletions
diff --git a/sugar/objects/Makefile.am b/sugar/objects/Makefile.am
index c93713b..35d4ddc 100644
--- a/sugar/objects/Makefile.am
+++ b/sugar/objects/Makefile.am
@@ -1,5 +1,4 @@
sugardir = $(pythondir)/sugar/objects
-sugar_PYTHON = \
- __init__.py \
- typeregistry.py \
- typeinfo.py
+sugar_PYTHON = \
+ __init__.py \
+ mime.py
diff --git a/sugar/objects/__init__.py b/sugar/objects/__init__.py
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/sugar/objects/__init__.py
@@ -0,0 +1,2 @@
+
+
diff --git a/sugar/objects/mime.py b/sugar/objects/mime.py
new file mode 100644
index 0000000..9e40561
--- /dev/null
+++ b/sugar/objects/mime.py
@@ -0,0 +1,4 @@
+from sugar import _sugarext
+
+def get_from_filename(filename):
+ return _sugarext.get_mime_type_from_filename(filename)
diff --git a/sugar/objects/typeinfo.py b/sugar/objects/typeinfo.py
deleted file mode 100644
index 8ac8471..0000000
--- a/sugar/objects/typeinfo.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (C) 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.
-
-class TypeInfo(object):
- def __init__(self, info_dict=None):
- self.type_id = None
- self.name = None
- self.icon = 'theme:stock-missing'
- self.parent = None
- self.formats = []
-
- if info_dict:
- self._read_from_dict(info_dict)
-
- def get_default_activity(self):
- return None
-
- def get_activities(self):
- return []
-
- def _read_from_config(self, section, items, l_items):
- self.type_id = section
-
- for item in items:
- if item[0] == 'name':
- self.name = item[1]
- elif item[0] == 'icon':
- self.icon = item[1]
- elif item[0] == 'parent':
- self.parent = item[1]
- elif item[0] == 'formats':
- self.formats = item[1].split(';')
-
- for item in litems:
- if item[0] == 'name':
- self.name = item[1]
-
- return (self.name and self.parent and self.formats)
-
- def _read_from_dict(self, info_dict):
- self.type_id = info_dict['type_id']
- self.name = info_dict['name']
- self.icon = info_dict['icon']
- self.formats = info_dict['formats']
diff --git a/sugar/objects/typeregistry.py b/sugar/objects/typeregistry.py
deleted file mode 100644
index 8d24b39..0000000
--- a/sugar/objects/typeregistry.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright (C) 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.
-
-from gettext import gettext as _
-from ConfigParser import ConfigParser
-
-from sugar.objects.typeinfo import TypeInfo
-from sugar.activity import bundleregistry
-
-_text_type = {
- 'type_id' : 'Text',
- 'name' : _('Text'),
- 'icon' : 'theme:object-text',
- 'formats' : [ 'text/plain', 'application/pdf' ]
-}
-
-_image_type = {
- 'type_id' : 'Image',
- 'name' : _('Image'),
- 'icon' : 'theme:object-image',
- 'formats' : [ 'image/jpeg', 'image/gif', 'image/png' ]
-}
-
-class _RootNode(_TypeNode):
- def __init__(self):
- _TypeNode.__init__('')
-
- def append_primitive(self, info_dict):
- self.append(TypeInfo(info_dict))
-
-class _TypeNode(list):
- def __init__(self, type_info):
- self.type_info = type_info
-
- def get_node_from_type(self, type_id):
- for node in self:
- if node.type_info.type_id == type_id:
- return node
-
- for node in self:
- child = node.get_node_from_type()
- if child:
- return child
-
- return None
-
-class TypeRegistry(object):
- def __init__(self):
- self._tree = _RootNode()
- self._tree.append_primitive(_image_type)
- self._tree.append_primitive(_text_type)
-
- self._bundle_registry = bundleregistry.get_registry()
- for bundle in self._bundle_registry:
- self._read_from_bundle(bundle)
- self._bundle_registry.connect('bundle-added', self._bundle_added_cb)
-
- def _bundle_added_cb (self, registry, bundle):
- self._read_from_bundle(bundle)
-
- def _read_from_bundle(self, bundle):
- cp = ConfigParser()
- path = bundle.get_path()
- cp.read([os.path.join(path, 'activity', 'object_types.info')])
- items = cp.items()
-
- cp = ConfigParser()
- path = bundle.get_locale_path()
- cp.read([os.path.join(path, 'object_types.linfo')])
- l_items = cp.items()
-
- for section in cp.sections():
- type_info = TypeInfo()
- if type_info.read_from_config(section, items, l_items):
- parent_node = self._tree.get_node_from_type(type_info.parent)
- if parent_node:
- parent_node.append(_TypeNode(type_info))
- return True
-
- return False
-
-def get_registry():
- return _type_registry
-
-_type_registry = TypeRegistry()