Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-01-11 22:57:06 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-01-11 22:57:06 (GMT)
commit334be3331bf967d9b6c60f9d55e27d2374ecc94e (patch)
tree30e9686f6210f2bfdf3eb7029921bab484f7551c /services
parentd0ce5a07d548643074081c3b451ac42f39f96027 (diff)
Some more usability fixes for the clipboard.
Diffstat (limited to 'services')
-rw-r--r--services/clipboard/clipboardobject.py3
-rw-r--r--services/clipboard/clipboardservice.py8
-rw-r--r--services/clipboard/typeregistry.py47
3 files changed, 55 insertions, 3 deletions
diff --git a/services/clipboard/clipboardobject.py b/services/clipboard/clipboardobject.py
index 09aa771..5fe18b7 100644
--- a/services/clipboard/clipboardobject.py
+++ b/services/clipboard/clipboardobject.py
@@ -26,6 +26,9 @@ class ClipboardObject:
def get_preview(self):
return self._get_type_info().get_preview()
+
+ def get_activity(self):
+ return self._get_type_info().get_activity()
def get_percent(self):
return self._percent
diff --git a/services/clipboard/clipboardservice.py b/services/clipboard/clipboardservice.py
index d9da8cc..5a7e42a 100644
--- a/services/clipboard/clipboardservice.py
+++ b/services/clipboard/clipboardservice.py
@@ -26,6 +26,7 @@ NAME_KEY = 'NAME'
PERCENT_KEY = 'PERCENT'
ICON_KEY = 'ICON'
PREVIEW_KEY = 'PREVIEW'
+ACTIVITY_KEY = 'ACTIVITY'
FORMATS_KEY = 'FORMATS'
class ClipboardDBusServiceHelper(dbus.service.Object):
@@ -63,7 +64,8 @@ class ClipboardDBusServiceHelper(dbus.service.Object):
self.object_state_changed(object_id, {NAME_KEY: cb_object.get_name(),
PERCENT_KEY: cb_object.get_percent(),
ICON_KEY: cb_object.get_icon(),
- PREVIEW_KEY: cb_object.get_preview()})
+ PREVIEW_KEY: cb_object.get_preview(),
+ ACTIVITY_KEY: cb_object.get_activity()})
@dbus.service.method(_CLIPBOARD_DBUS_INTERFACE,
in_signature="s", out_signature="")
@@ -80,7 +82,8 @@ class ClipboardDBusServiceHelper(dbus.service.Object):
self.object_state_changed(object_id, {NAME_KEY: cb_object.get_name(),
PERCENT_KEY: percent,
ICON_KEY: cb_object.get_icon(),
- PREVIEW_KEY: cb_object.get_preview()})
+ PREVIEW_KEY: cb_object.get_preview(),
+ ACTIVITY_KEY: cb_object.get_activity()})
logging.debug('Changed object with object_id ' + object_id +
' with percent ' + str(percent))
@@ -99,6 +102,7 @@ class ClipboardDBusServiceHelper(dbus.service.Object):
PERCENT_KEY: cb_object.get_percent(),
ICON_KEY: cb_object.get_icon(),
PREVIEW_KEY: cb_object.get_preview(),
+ ACTIVITY_KEY: cb_object.get_activity(),
FORMATS_KEY: format_types}
return result_dict
diff --git a/services/clipboard/typeregistry.py b/services/clipboard/typeregistry.py
index 0a1aaa2..ea37dba 100644
--- a/services/clipboard/typeregistry.py
+++ b/services/clipboard/typeregistry.py
@@ -13,6 +13,9 @@ class FileType:
def get_preview(self):
raise NotImplementedError
+
+ def get_activity(self):
+ raise NotImplementedError
def matches_mime_type(cls, mime_type):
raise NotImplementedError
@@ -38,6 +41,9 @@ class TextFileType(FileType):
return text[0:49] + "..."
return ''
+
+ def get_activity(self):
+ return ''
def matches_mime_type(cls, mime_type):
return mime_type in cls._types
@@ -55,6 +61,9 @@ class ImageFileType(FileType):
def get_preview(self):
return ''
+
+ def get_activity(self):
+ return ''
def matches_mime_type(cls, mime_type):
return mime_type in cls._types
@@ -78,7 +87,10 @@ class UriFileType(FileType):
return title
return ''
-
+
+ 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)
@@ -95,6 +107,9 @@ class PdfFileType(FileType):
def get_preview(self):
return ''
+
+ def get_activity(self):
+ return 'org.laptop.sugar.Xbook'
def matches_mime_type(cls, mime_type):
return mime_type in cls._types
@@ -112,6 +127,9 @@ class MsWordFileType(FileType):
def get_preview(self):
return ''
+
+ def get_activity(self):
+ return 'org.laptop.AbiWordActivity'
def matches_mime_type(cls, mime_type):
return mime_type in cls._types
@@ -129,6 +147,29 @@ class RtfFileType(FileType):
def get_preview(self):
return ''
+
+ def get_activity(self):
+ return 'org.laptop.AbiWordActivity'
+
+ def matches_mime_type(cls, mime_type):
+ return mime_type in cls._types
+ matches_mime_type = classmethod(matches_mime_type)
+
+class OOTextFileType(FileType):
+
+ _types = set(['application/vnd.oasis.opendocument.text'])
+
+ def get_name(self):
+ return _('OpenOffice text file')
+
+ def get_icon(self):
+ return 'activity-abiword'
+
+ def get_preview(self):
+ return ''
+
+ def get_activity(self):
+ return 'org.laptop.AbiWordActivity'
def matches_mime_type(cls, mime_type):
return mime_type in cls._types
@@ -143,6 +184,9 @@ class UnknownFileType(FileType):
def get_preview(self):
return ''
+
+ def get_activity(self):
+ return ''
def matches_mime_type(cls, mime_type):
return true
@@ -154,6 +198,7 @@ class TypeRegistry:
self._types.append(PdfFileType)
self._types.append(MsWordFileType)
self._types.append(RtfFileType)
+ self._types.append(OOTextFileType)
self._types.append(UriFileType)
self._types.append(ImageFileType)
self._types.append(TextFileType)