1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 """Ondemand Browser widget
23
24 The widget is in concept similar to the FileSelector but displaying full urls
25 for the files and adding a context menu for copying or opening the link.
26 """
27
28 import gettext
29 import gtk
30 import urlparse
31 import os
32
33 try:
34 from kiwi.ui.widgets import contextmenu
35 except:
36
37 contextmenu = None
38
39 from flumotion.ui.fileselector import FileSelector
40 from flumotion.common.interfaces import IDirectory
41
42 __version__ = "$Rev$"
43 _ = gettext.gettext
44
45
55
56
58
60 FileSelector.__init__(self, parent, adminModel)
61 self._base_uri = None
62 self._root = None
63 if contextmenu:
64 self._popupmenu = self._create_popup_menu()
65 self.set_context_menu(self._popupmenu)
66
68 self._base_uri = base_uri
69
71 self._root = os.path.normpath(path)
72 self.setDirectory(self._root)
73
85
87 self.clear()
88 for vfsFile in vfsFiles:
89 if not IDirectory.providedBy(vfsFile) and self._onlyDirectories:
90 continue
91 path = vfsFile.getPath()
92 if path in self._root and path != self._root:
93 continue
94 icon = self._renderIcon(vfsFile.iconNames)
95 rel_path = path.replace(self._root, '')
96 if self._base_uri and vfsFile.filename != '..':
97 vfsFile.filename = urlparse.urljoin(self._base_uri, rel_path)
98 self.append(_FileUri(vfsFile, icon))
99
103
108