Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar

Conflicts:

	NEWS
This commit is contained in:
Simon McVittie 2007-10-17 11:54:33 +01:00
commit 4f41f300d8
7 changed files with 11 additions and 104 deletions

11
NEWS
View File

@ -1,4 +1,15 @@
* #4027 Try to make sugar.presence log messages less misleading (smcv) * #4027 Try to make sugar.presence log messages less misleading (smcv)
Snapshot 24fbd1ce1c
* Fix the object chooser (marco)
Snapshot 3c7578577d
* Fix the shell service (marco)
Snapshot fa55b5af09
* Changed default spacing to 15px (from 8px) (benzea) * Changed default spacing to 15px (from 8px) (benzea)
* Correct the height of the primary palette (benzea) * Correct the height of the primary palette (benzea)
* Use double leading underscores for callback names to avoid name collisions (erikos) * Use double leading underscores for callback names to avoid name collisions (erikos)

View File

@ -29,7 +29,6 @@ from sugar.graphics.xocolor import XoColor
from sugar.graphics.roundbox import CanvasRoundBox from sugar.graphics.roundbox import CanvasRoundBox
from sugar.datastore import datastore from sugar.datastore import datastore
from sugar import activity from sugar import activity
from sugar.objects import objecttype
# TODO: Activities should request the Journal to open objectchooser dialogs. In # 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. # that way, we'll be able to reuse most of this code inside the Journal.

View File

@ -1,5 +0,0 @@
sugardir = $(pythondir)/sugar/objects
sugar_PYTHON = \
__init__.py \
objecttype.py

View File

@ -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.

View File

@ -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

View File

@ -11,5 +11,4 @@ shell/view/devices/battery.py
shell/view/devices/network/wireless.py shell/view/devices/network/wireless.py
shell/view/frame/activitybutton.py shell/view/frame/activitybutton.py
shell/view/frame/zoomtoolbar.py shell/view/frame/zoomtoolbar.py
services/shell/objecttypeservice.py
lib/sugar/activity/activity.py lib/sugar/activity/activity.py

View File

@ -30,7 +30,6 @@ from sugar import env
sys.path.append(env.get_service_path('shell')) sys.path.append(env.get_service_path('shell'))
import clipboardservice import clipboardservice
import objecttypeservice
import activityregistryservice import activityregistryservice
logging.info('Starting shell service.') logging.info('Starting shell service.')
@ -39,7 +38,6 @@ gobject.threads_init()
dbus.glib.threads_init() dbus.glib.threads_init()
clipboard_service = clipboardservice.get_instance() clipboard_service = clipboardservice.get_instance()
object_type_registry = objecttypeservice.get_instance()
activity_registry = activityregistryservice.get_instance() activity_registry = activityregistryservice.get_instance()
loop = gobject.MainLoop() loop = gobject.MainLoop()