1
2
3
4
5
6 from libxyz.core.plugins import BasePlugin
7 from libxyz.core.utils import ustring
8
9 from libxyz.ui import lowui
10 from libxyz.ui import XYZListBox
11
13 "Plugin fileinfo"
14
15 NAME = u"fileinfo"
16 AUTHOR = u"Max E. Kuznecov"
17 VERSION = u"0.1"
18 BRIEF_DESCRIPTION = u"Show VFS object information"
19 FULL_DESCRIPTION = u"Show detailed information provided by VFS layer"
20 NAMESPACE = u"vfs"
21 MIN_XYZ_VERSION = None
22 DOC = None
23 HOMEPAGE = u"xyzcmd.syhpoon.name"
24 EVENTS = [("fileinfo",
25 "Event is fired upon showing file-info dialog.\n"\
26 "Arguments: Currently selected VFSObject instance"),
27 ]
28
33
34
35
37 """
38 Show VFS object info
39 """
40
41 _selected = self.xyz.pm.from_load(":sys:panel", "get_selected")()
42 self.fire_event("fileinfo", _selected)
43
44 _data = []
45 _na = lambda x: lowui.Text(u"%-30s: N/A" % x)
46
47 for _name, _value in _selected.attributes:
48 if _value in (None, ""):
49 _data.append(_na(_name))
50 else:
51 if not isinstance(_value, basestring):
52 _value = ustring(str(_value))
53
54 _data.append(lowui.Text(u"%-30s: %s" % (_name, _value)))
55
56 _walker = lowui.SimpleListWalker(_data)
57 _dim = tuple([x - 2 for x in self.xyz.screen.get_cols_rows()])
58
59 XYZListBox(self.xyz, self.xyz.top, _walker, _(u"VFS Object Info"),
60 _dim).show()
61