This repository was archived by the owner on Apr 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbrowser.py
More file actions
45 lines (36 loc) · 1.47 KB
/
browser.py
File metadata and controls
45 lines (36 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import gtk
import gst
import gobject
target = [
('GST_ELEMENT', 0, 0)
]
class Browser(gtk.ScrolledWindow):
def __init__(self):
gtk.ScrolledWindow.__init__(self)
self.__createUi()
def get_data(w, context, s_d, info, time):
s_d.set(s_d.target, 8, treemodel[row][1])
def __createUi(self):
def get_data(w, context, s_d, info, time):
model, rows = treeview.get_selection().get_selected_rows()
uris = '\n'.join((model[path][1] for path in rows))
s_d.set(s_d.target, 8, uris)
# get list of all elements
registry = gst.registry_get_default()
registrylist = registry.get_feature_list(gst.ElementFactory)
registrylist.sort(lambda x, y: cmp(x.get_name(), y.get_name()))
# create a tree view to display them
treemodel = gtk.TreeStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING)
for item in registrylist:
treemodel.append(None, [item, item.get_name()])
treeview = gtk.TreeView()
treeview.set_model(treemodel)
treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn("Element", renderer, text=1)
treeview.append_column(column)
treeview.set_size_request(100, 100)
treeview.drag_source_set(gtk.gdk.BUTTON1_MASK,
target, gtk.gdk.ACTION_COPY)
treeview.connect('drag_data_get', get_data)
self.add(treeview)