From e68f0e00e95416c696ecc08895b1a29463c989f8 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 13 Dec 2006 21:36:05 +0000 Subject: Added c&v and dnd support to the clipboard. --- (limited to 'sugar/clipboard') diff --git a/sugar/clipboard/Makefile.am b/sugar/clipboard/Makefile.am index dbfabe9..0d61c29 100644 --- a/sugar/clipboard/Makefile.am +++ b/sugar/clipboard/Makefile.am @@ -1,5 +1,5 @@ sugardir = $(pythondir)/sugar/clipboard sugar_PYTHON = \ __init__.py \ - ClipboardService.py + clipboardservice.py diff --git a/sugar/clipboard/ClipboardService.py b/sugar/clipboard/clipboardservice.py index 254d6b2..425a16d 100644 --- a/sugar/clipboard/ClipboardService.py +++ b/sugar/clipboard/clipboardservice.py @@ -1,6 +1,9 @@ +import logging import dbus import gobject +from sugar import util + DBUS_SERVICE = "org.laptop.Clipboard" DBUS_INTERFACE = "org.laptop.Clipboard" DBUS_PATH = "/org/laptop/Clipboard" @@ -9,7 +12,7 @@ class ClipboardService(gobject.GObject): __gsignals__ = { 'object-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([str, str, str])), + ([str, str])), 'object-deleted': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([str])), 'object-state-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, @@ -49,24 +52,43 @@ class ClipboardService(gobject.GObject): # ClipboardService started up self._connect_clipboard_signals() - def _object_added_cb(self, name, mimeType, fileName): - self.emit('object-added', name, mimeType, fileName) + def _object_added_cb(self, object_id, name): + self.emit('object-added', object_id, name) - def _object_deleted_cb(self, fileName): - self.emit('object-deleted', fileName) + def _object_deleted_cb(self, object_id): + self.emit('object-deleted', object_id) - def _object_state_changed_cb(self, fileName, percent): - self.emit('object-state-changed', fileName, percent) - - def add_object(self, name, mimeType, fileName): - self._dbus_service.add_object(name, mimeType, fileName) + def _object_state_changed_cb(self, object_id, percent): + self.emit('object-state-changed', object_id, percent) - def delete_object(self, fileName): - self._dbus_service.delete_object(fileName) + def add_object(self, object_id, name): + self._dbus_service.add_object(object_id, name) + + def add_object_format(self, object_id, formatType, data, on_disk): + self._dbus_service.add_object_format(object_id, + formatType, + dbus.types.ByteArray(data), + on_disk) + + def delete_object(self, object_id): + self._dbus_service.delete_object(object_id) - def set_object_state(self, fileName, percent): - self._dbus_service.set_object_state(fileName, percent) + def set_object_state(self, object_id, percent): + self._dbus_service.set_object_state(object_id, percent) + def get_object_format_types(self, object_id): + return self._dbus_service.get_object_format_types(object_id) + + def get_object_data(self, object_id, formatType): + data = self._dbus_service.get_object_data(object_id, formatType) + + # FIXME: Take it out when using the 0.80 dbus bindings + s = "" + for i in data: + s += chr(i) + + return s + _clipboard_service = None def get_instance(): global _clipboard_service -- cgit v0.9.1