/
Table-icons.py
98 lines (75 loc) · 2.71 KB
/
Table-icons.py
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# encoding: utf-8
# Advanced table example: Icon browser
from yast import import_module
import_module('UI')
from yast import *
import copy
class TableIconsClient:
def main(self):
iconBasePath = "/usr/share/YaST2/theme/current/icons"
UI.OpenDialog(
VBox(
Heading("Icons"),
MinSize(
60,
40,
Table(Id("iconTable"), Header("Name", "22x22", "32x32", "48x48"))
),
HBox(
Label(Opt("outputField", "hstretch"), iconBasePath),
PushButton(Id("cancel"), "&Close")
)
)
)
UI.OpenDialog(Label("Reading icon directories..."))
iconList = readIconDir(iconBasePath + "/22x22/apps")
iconList = ycpbuiltins.union(
iconList,
readIconDir(iconBasePath + "/32x32/apps"))
iconList = ycpbuiltins.union(
iconList,
readIconDir(iconBasePath + "/48x48/apps"))
itemList = []
test = Term("icon", "22x22/apps/" + "iconName")
test = Term("cell",test)
print ("working %s"%test.toString())
test = Term("cell", Term("icon", "22x22/apps/" + "iconName"))
print ("not working %s"%test.toString())
for iconName in ycpbuiltins.foreach(iconList):
item = Item(
Id(iconName),
iconName,
Term("cell", Term("icon", "22x22/apps/" + iconName)),
Term("cell", Term("icon", "32x32/apps/" + iconName)),
Term("cell", Term("icon", "48x48/apps/" + iconName))
)
# y2debug( "Item: %1", item );
itemList = ycpbuiltins.add(itemList, item)
UI.CloseDialog() # Close busy dialog
UI.ChangeWidget(("iconTable"), "IconPath", iconBasePath)
UI.ChangeWidget(("iconTable"), "Items", itemList)
widgetID = None
while True:
widgetID = UI.UserInput()
if widgetID == "cancel":
break
UI.CloseDialog()
# Read a directory with icons.
#
def readIconDir(dir):
iconList = SCR.Read(Path(".target.dir"), dir)
iconList = list(iconList) if iconList else []
ycpbuiltins.y2debug("Dir %1: %2 entries", dir, ycpbuiltins.size(iconList))
# #TODO #FIXME add ycbbuiltins.filter()
# #TODO #FIXME add ycbbuiltins.sort()
# iconList = ycpbuiltins.sort(ycpbuiltins.filter(iconList) do |entry|
# ycpbuiltins.regexpmatch(entry, "^.*.(png|jpg|PNG|JPG)$")
# end)
filtered = []
for entry in iconList:
if ycpbuiltins.regexpmatch(entry, "^.*.(png|jpg|PNG|JPG)$"):
filtered.append(entry)
filtered.sort()
print ("returning %d items"%len(filtered))
return copy.deepcopy(filtered)
TableIconsClient().main()