86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
#
# An according entries list then would contain a dictionary for each row:
# entries = [ {"titlerow":"first", "interndat":123}, {"titlerow":"..."}, ]
# Keys not mentioned in the datamap get ignored, and defaults are applied
# for missing cols. All values must already be in the correct type however.
#
@staticmethod
def columns(widget, datamap=[], entries=[], pix_entry=False, typecast=0):
# create treeviewcolumns?
if (not widget.get_column(0)):
# loop through titles
datapos = 0
for n_col,desc in enumerate(datamap):
|
|
|
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
#
# An according entries list then would contain a dictionary for each row:
# entries = [ {"titlerow":"first", "interndat":123}, {"titlerow":"..."}, ]
# Keys not mentioned in the datamap get ignored, and defaults are applied
# for missing cols. All values must already be in the correct type however.
#
@staticmethod
def columns(widget, datamap=[], entries=None, pix_entry=False, typecast=0):
# create treeviewcolumns?
if (not widget.get_column(0)):
# loop through titles
datapos = 0
for n_col,desc in enumerate(datamap):
|
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
widget.set_search_column(4) #??
widget.set_search_column(3) #??
widget.set_search_column(2) #??
widget.set_search_column(1) #??
#widget.set_reorderable(True)
# add data?
if (entries):
#- expand datamap
vartypes = [] #(str, str, bool, str, int, int, gtk.gdk.Pixbuf, str, int)
rowmap = [] #["title", "desc", "bookmarked", "name", "count", "max", "img", ...]
if (not rowmap):
for desc in datamap:
for var in xrange(2, len(desc)):
vartypes.append(desc[var][1]) # content types
rowmap.append(desc[var][0]) # dict{} column keys in entries[] list
|
|
|
|
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
widget.set_search_column(4) #??
widget.set_search_column(3) #??
widget.set_search_column(2) #??
widget.set_search_column(1) #??
#widget.set_reorderable(True)
# add data?
if (entries is not None):
#- expand datamap
vartypes = [] #(str, str, bool, str, int, int, gtk.gdk.Pixbuf, str, int)
rowmap = [] #["title", "desc", "bookmarked", "name", "count", "max", "img", ...]
if (not rowmap):
for desc in datamap:
for var in xrange(2, len(desc)):
vartypes.append(desc[var][1]) # content types
rowmap.append(desc[var][0]) # dict{} column keys in entries[] list
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
try:
# add
ls.append(row) # had to be adapted for real TreeStore (would require additional input for grouping/level/parents)
except:
# brute-force typecast
ls.append( [va if ty==gtk.gdk.Pixbuf else ty(va) for va,ty in zip(row,vartypes)] )
__print__("[37m→[0m", row, len(row))
# apply array to widget
widget.set_model(ls)
return ls
pass
|
>
>
|
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
try:
# add
ls.append(row) # had to be adapted for real TreeStore (would require additional input for grouping/level/parents)
except:
# brute-force typecast
ls.append( [va if ty==gtk.gdk.Pixbuf else ty(va) for va,ty in zip(row,vartypes)] )
if entries:
__print__("[37m→[0m", row, len(row))
# apply array to widget
widget.set_model(ls)
return ls
pass
|