Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-04-18 14:17:35 (GMT)
committer Dan Williams <dcbw@redhat.com>2007-04-18 14:17:35 (GMT)
commitcf5ef53070a8138aff7dbc8d48d20e1baf6b78d1 (patch)
tree831d18e1774d051d0fa1f91b27f318a84c75c4e6 /services
parent26ed1d150475f82a68cfac45f3698cde0b6a082c (diff)
parent71d718e97b991d15eba07638b0d06eb24811f1c8 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'services')
-rw-r--r--services/clipboard/clipboardobject.py11
-rw-r--r--services/clipboard/clipboardservice.py3
-rw-r--r--services/clipboard/typeregistry.py21
3 files changed, 34 insertions, 1 deletions
diff --git a/services/clipboard/clipboardobject.py b/services/clipboard/clipboardobject.py
index 919acd0..ab00b14 100644
--- a/services/clipboard/clipboardobject.py
+++ b/services/clipboard/clipboardobject.py
@@ -1,3 +1,6 @@
+import os
+import logging
+
import typeregistry
class ClipboardObject:
@@ -8,6 +11,10 @@ class ClipboardObject:
self._percent = 0
self._formats = {}
+ def destroy(self):
+ for type, format in self._formats.iteritems():
+ format.destroy()
+
def get_id(self):
return self._id
@@ -49,6 +56,10 @@ class Format:
self._data = data
self._on_disk = on_disk
+ def destroy(self):
+ if self._on_disk:
+ os.remove(self._data.replace('file://', ''))
+
def get_type(self):
return self._type
diff --git a/services/clipboard/clipboardservice.py b/services/clipboard/clipboardservice.py
index 0ed423b..16e37b1 100644
--- a/services/clipboard/clipboardservice.py
+++ b/services/clipboard/clipboardservice.py
@@ -109,7 +109,8 @@ class ClipboardDBusServiceHelper(dbus.service.Object):
@dbus.service.method(_CLIPBOARD_DBUS_INTERFACE,
in_signature="o", out_signature="")
def delete_object(self, object_path):
- del self._objects[str(object_path)]
+ cb_object = self._objects.pop(str(object_path))
+ cb_object.destroy()
self.object_deleted(object_path)
logging.debug('Deleted object with object_id ' + object_path)
diff --git a/services/clipboard/typeregistry.py b/services/clipboard/typeregistry.py
index b794cee..b6f4ae1 100644
--- a/services/clipboard/typeregistry.py
+++ b/services/clipboard/typeregistry.py
@@ -197,6 +197,26 @@ class OOTextFileType(FileType):
return mime_type in cls._types
matches_mime_type = classmethod(matches_mime_type)
+class UriListFileType(FileType):
+
+ _types = set(['text/uri-list'])
+
+ def get_name(self):
+ return _('text/uri-list')
+
+ def get_icon(self):
+ return 'theme:stock-missing'
+
+ def get_preview(self):
+ return 'preview'
+
+ def get_activity(self):
+ return ''
+
+ def matches_mime_type(cls, mime_type):
+ return mime_type in cls._types
+ matches_mime_type = classmethod(matches_mime_type)
+
class UnknownFileType(FileType):
def get_name(self):
return _('Object')
@@ -221,6 +241,7 @@ class TypeRegistry:
self._types.append(MsWordFileType)
self._types.append(RtfFileType)
self._types.append(OOTextFileType)
+ self._types.append(UriListFileType)
self._types.append(UriFileType)
self._types.append(ImageFileType)
self._types.append(AbiwordFileType)