diff --git a/gramps/gui/views/treemodels/flatbasemodel.py b/gramps/gui/views/treemodels/flatbasemodel.py
index af2db5051..ef371bc88 100644
--- a/gramps/gui/views/treemodels/flatbasemodel.py
+++ b/gramps/gui/views/treemodels/flatbasemodel.py
@@ -522,12 +522,12 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
self.search = search[1]
self.rebuild_data = self._rebuild_filter
else:
- if search[1]:
+ if search[1]: # Search from topbar in columns
# we have search[1] = (index, text_unicode, inversion)
col = search[1][0]
text = search[1][1]
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]:
self.search = ExactSearchFilter(func, text, inv)
else:
@@ -764,13 +764,11 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
except IndexError:
return False, Gtk.TreeIter()
- def do_get_value(self, iter, col):
+ def get_value_from_handle(self, handle, col):
"""
- See Gtk.TreeModel.
- col is the model column that is needed, not the visible column!
+ Given handle and column, return unicode value in the 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:
data = self.map(handle)
if data is None:
@@ -778,7 +776,16 @@ class FlatBaseModel(GObject.Object, Gtk.TreeModel):
return ''
self.prev_data = data
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)
if col == self._tooltip_column:
return val
diff --git a/gramps/plugins/view/placetreeview.py b/gramps/plugins/view/placetreeview.py
index 50cc2f2e5..fb84f3769 100644
--- a/gramps/plugins/view/placetreeview.py
+++ b/gramps/plugins/view/placetreeview.py
@@ -172,7 +172,6 @@ class PlaceTreeView(PlaceBaseView):
-
@@ -204,28 +203,34 @@ class PlaceTreeView(PlaceBaseView):
level1 = level2 = level3 = ""
if len(pathlist) == 1:
path = pathlist[0]
- node = model.on_get_iter(path)
- value = model.on_get_value(node, 0)
-
- if len(path) == 1:
- level[0] = node.name
- elif len(path) == 2:
- level[1] = node.name
- parent = model.on_iter_parent(node)
- level[0] = parent.name
- elif len(path) == 3:
- level[2] = node.name
- parent = model.on_iter_parent(node)
- level[1] = parent.name
- parent = model.on_iter_parent(parent)
- level[0] = parent.name
- else:
- parent = model.on_iter_parent(node)
- level[2] = parent.name
- parent = model.on_iter_parent(parent)
- level[1] = parent.name
- parent = model.on_iter_parent(parent)
- level[0] = parent.name
+ suc, node = model.do_get_iter(path)
+ if suc:
+ noden = model.get_node_from_iter(node)
+ if len(path) == 1:
+ level[0] = noden.name
+ elif len(path) == 2:
+ level[1] = noden.name
+ suc, parent = model.do_iter_parent(node)
+ parentn = model.get_node_from_iter(parent)
+ level[0] = parentn.name
+ elif len(path) == 3:
+ level[2] = noden.name
+ suc, parent = model.do_iter_parent(node)
+ 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
+ else:
+ suc, parent = model.do_iter_parent(node)
+ parentn = model.get_node_from_iter(parent)
+ 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]:
if level[ind] and level[ind] == COUNTRYLEVELS['default'][ind+1]: