1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import os
23 import gettext
24 import gtk
25 import gst
26 from flumotion.component.base.admin_gtk import BaseAdminGtk
27 from flumotion.component.base.baseadminnode import BaseAdminGtkNode
28
29 _ = gettext.gettext
30 (
31 COLUMN_TITLE,
32 COLUMN_DURATION,
33 COLUMN_OFFSET,
34 COLUMN_AUDIO,
35 COLUMN_VIDEO,
36 COLUMN_LOCATION,
37 ) = range(6)
38
39
41 sec = value / gst.SECOND
42 mins = sec / 60
43 sec = sec % 60
44 hours = mins / 60
45 mins = mins % 60
46 return "%02d:%02d:%02d" % (hours, mins, sec)
47
48
50 gladeFile = os.path.join("flumotion", "component", "producers",
51 "playlist", "playlist.glade")
52 _iters = {}
53
58
59 self._buildPlaylist()
60 self.widget = self.getWidget("main_vbox")
61 d = self.callRemote("getUIState")
62 d.addCallback(getUIState_cb)
63
65 self.store = gtk.ListStore(str, str, str, str, str, str)
66 self.tree = self.wtree.get_widget("treeview-playlist")
67 self.tree.append_column(gtk.TreeViewColumn("Title",
68 gtk.CellRendererText(),
69 text=COLUMN_TITLE))
70 self.tree.append_column(gtk.TreeViewColumn("Duration",
71 gtk.CellRendererText(),
72 text=COLUMN_DURATION))
73 self.tree.append_column(gtk.TreeViewColumn("Offset",
74 gtk.CellRendererText(),
75 text=COLUMN_OFFSET))
76 self.tree.append_column(gtk.TreeViewColumn("Audio",
77 gtk.CellRendererText(),
78 text=COLUMN_AUDIO))
79 self.tree.append_column(gtk.TreeViewColumn("Video",
80 gtk.CellRendererText(),
81 text=COLUMN_VIDEO))
82 self.tree.append_column(gtk.TreeViewColumn("Location",
83 gtk.CellRendererText(),
84 text=COLUMN_LOCATION))
85 self.tree.set_model(self.store)
86
96
102
104 if key == "playlist":
105 self.store.clear()
106 for item in value:
107 self._append(item)
108
110 if key == "playlist":
111 self._append(value)
112
114 if key == "playlist":
115 self._remove(value)
116
117
126
127 GUIClass = PlaylistAdminGtk
128