How to set gtk.Clipboard data right?


My application wants to provide 2 types of clipboard data;
* Filename uri list,
* Filename list as text.

The clipboard targets are:

clipboard_targets = [

I use the clipboard.set_with_data(..) function to set the targets and a
callback function that hands over the data.

clipboard.set_with_data(clipboard_targets, clipboard_get_data_cb,
clipboard_clear_data_cb, lst)

The problem is in the clipboard_get_data_cb(...) function. the TARGET
list is always null/none. So it does not know what type of data the
receiver can handle.

selectiondata.targets_include_uri() --> Always none
selectiondata.targets_include_image(True) --> Always none
selectiondata.targets_include_text() --> Always none

Why these are None? I just set the clipboard_targets in the above call.

I have tested this by running the enclosed and doing "Paste"
from Gedit, Nautilus, CLI command and The Gimp. These should handle all
the aforementioned target types.

Here is a complete test code:

Some beginning lines of the code:
def clipboard_copy_data(file_lst):
    clipboard = gtk.clipboard_get()

    clipboard_targets = [('x-special/gnome-copied-files',0,0),

    # Probably not necessary, but
    import copy
    lst = copy.deepcopy(file_lst)

    ret = clipboard.set_with_data(clipboard_targets,
clipboard_get_data_cb, clipboard_clear_data_cb, lst)
    return ret

def clipboard_get_data_cb(clipboard, selectiondata, info, userdata):
    print "info=", info

    file_lst = userdata
    print "clipboard_get_data_cb, file_lst=", file_lst

    # Why are these targets always null?
    print "targets=", selectiondata.get_targets()
    print "targets_include_uri=", selectiondata.targets_include_uri()
    print "targets_include_image=",
    print " targets_include_text=",  selectiondata.targets_include_text()

It will also provide Pixbuf as clipboard data, but I can use these calls
 pb = gtk.gdk.pixbuf_new_from_file(filename)

My development environ is Ubuntu 10.04 and GNOME-desktop.

PS. the final application will be this ;-)

 Osmo Antero (Moma)
 Oslo, Grønland

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]