6126: Filter search bar : FamilyModel has no attribute on_get_value

Fixed at same time other uses of on_ methods which are no longer present
  Also removed superfluous Maplists action


svn: r20672
This commit is contained in:
Benny Malengier
2012-11-17 15:28:18 +00:00
parent 0eb5c29989
commit b2d7d5c0b4
2 changed files with 43 additions and 31 deletions

View File

@@ -522,12 +522,12 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
self.search = search[1] self.search = search[1]
self.rebuild_data = self._rebuild_filter self.rebuild_data = self._rebuild_filter
else: else:
if search[1]: if search[1]: # Search from topbar in columns
# we have search[1] = (index, text_unicode, inversion) # we have search[1] = (index, text_unicode, inversion)
col = search[1][0] col = search[1][0]
text = search[1][1] text = search[1][1]
inv = search[1][2] inv = search[1][2]
func = lambda x: self.on_get_value(x, col) or UEMPTY func = lambda x: self.get_value_from_handle(x, col) or UEMPTY
if search[2]: if search[2]:
self.search = ExactSearchFilter(func, text, inv) self.search = ExactSearchFilter(func, text, inv)
else: else:
@@ -764,13 +764,11 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
except IndexError: except IndexError:
return False, Gtk.TreeIter() return False, Gtk.TreeIter()
def do_get_value(self, iter, col): def get_value_from_handle(self, handle, col):
""" """
See Gtk.TreeModel. Given handle and column, return unicode value in the column
col is the model column that is needed, not the visible column! We need this to search in the column in the GUI
""" """
#print 'do_get_val', iter, iter.user_data, col
handle = self.node_map._index2hndl[iter.user_data][1]
if handle != self.prev_handle: if handle != self.prev_handle:
data = self.map(handle) data = self.map(handle)
if data is None: if data is None:
@@ -778,7 +776,16 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
return '' return ''
self.prev_data = data self.prev_data = data
self.prev_handle = handle self.prev_handle = handle
val = self.fmap[col](self.prev_data) return self.fmap[col](self.prev_data)
def do_get_value(self, iter, col):
"""
See Gtk.TreeModel.
col is the model column that is needed, not the visible column!
"""
#print 'do_get_val', iter, iter.user_data, col
handle = self.node_map._index2hndl[iter.user_data][1]
val = self.get_value_from_handle(handle, col)
#print 'val is', val, type(val) #print 'val is', val, type(val)
if col == self._tooltip_column: if col == self._tooltip_column:
return val return val

View File

@@ -172,7 +172,6 @@ class PlaceTreeView(PlaceBaseView):
<toolitem action="Remove"/> <toolitem action="Remove"/>
<toolitem action="Merge"/> <toolitem action="Merge"/>
<separator/> <separator/>
<toolitem action="MapsList"/>
</placeholder> </placeholder>
</toolbar> </toolbar>
<popup name="Popup"> <popup name="Popup">
@@ -204,28 +203,34 @@ class PlaceTreeView(PlaceBaseView):
level1 = level2 = level3 = "" level1 = level2 = level3 = ""
if len(pathlist) == 1: if len(pathlist) == 1:
path = pathlist[0] path = pathlist[0]
node = model.on_get_iter(path) suc, node = model.do_get_iter(path)
value = model.on_get_value(node, 0) if suc:
noden = model.get_node_from_iter(node)
if len(path) == 1: if len(path) == 1:
level[0] = node.name level[0] = noden.name
elif len(path) == 2: elif len(path) == 2:
level[1] = node.name level[1] = noden.name
parent = model.on_iter_parent(node) suc, parent = model.do_iter_parent(node)
level[0] = parent.name parentn = model.get_node_from_iter(parent)
elif len(path) == 3: level[0] = parentn.name
level[2] = node.name elif len(path) == 3:
parent = model.on_iter_parent(node) level[2] = noden.name
level[1] = parent.name suc, parent = model.do_iter_parent(node)
parent = model.on_iter_parent(parent) parentn = model.get_node_from_iter(parent)
level[0] = parent.name level[1] = parentn.name
else: suc, parent = model.do_iter_parent(parent)
parent = model.on_iter_parent(node) parentn = model.get_node_from_iter(parent)
level[2] = parent.name level[0] = parentn.name
parent = model.on_iter_parent(parent) else:
level[1] = parent.name suc, parent = model.do_iter_parent(node)
parent = model.on_iter_parent(parent) parentn = model.get_node_from_iter(parent)
level[0] = parent.name level[2] = parentn.name
suc, parent = model.do_iter_parent(parent)
parentn = model.get_node_from_iter(parent)
level[1] = parentn.name
suc, parent = model.do_iter_parent(parent)
parentn = model.get_node_from_iter(parent)
level[0] = parentn.name
for ind in [0, 1, 2]: for ind in [0, 1, 2]:
if level[ind] and level[ind] == COUNTRYLEVELS['default'][ind+1]: if level[ind] and level[ind] == COUNTRYLEVELS['default'][ind+1]: