persontreeview, insert/delete working

svn: r19967
This commit is contained in:
Benny Malengier
2012-07-10 12:10:03 +00:00
parent 9da71185a6
commit 318c1def5a
2 changed files with 25 additions and 15 deletions

View File

@@ -641,9 +641,9 @@ class TreeBaseModel(GObject.Object, Gtk.TreeModel):
if not self._in_build: if not self._in_build:
# emit row_inserted signal # emit row_inserted signal
path = self.on_get_path(child_node) iternode = self.get_iter(child_node)
node = self.get_iter(path) path = self.do_get_path(iternode)
self.row_inserted(path, node) self.row_inserted(path, iternode)
if handle: if handle:
self.__total += 1 self.__total += 1
self.__displayed += 1 self.__displayed += 1
@@ -678,7 +678,8 @@ class TreeBaseModel(GObject.Object, Gtk.TreeModel):
self.__displayed -= 1 self.__displayed -= 1
self.__total -= 1 self.__total -= 1
elif node.parent: # don't remove the hidden root node elif node.parent: # don't remove the hidden root node
path = self.on_get_path(node) iternode = self.get_iter(node)
path = self.do_get_path(iternode)
self.nodemap.node(node.parent).remove_child(node, self.nodemap) self.nodemap.node(node.parent).remove_child(node, self.nodemap)
del self.tree[node.ref] del self.tree[node.ref]
if node.handle is not None: if node.handle is not None:
@@ -714,8 +715,8 @@ class TreeBaseModel(GObject.Object, Gtk.TreeModel):
if node.parent is None: if node.parent is None:
path = iter = None path = iter = None
else: else:
path = self.on_get_path(node) iternode = self.get_iter(node)
iter = self.get_iter(path) path = self.do_get_path(iternode)
self.rows_reordered(path, iter, rows) self.rows_reordered(path, iter, rows)
if self.nrgroups > 1: if self.nrgroups > 1:
for child in node.children: for child in node.children:
@@ -773,9 +774,9 @@ class TreeBaseModel(GObject.Object, Gtk.TreeModel):
if not parent.children: if not parent.children:
if parent.handle: if parent.handle:
# emit row_has_child_toggled signal # emit row_has_child_toggled signal
path = self.on_get_path(parent) iternode = self.get_iter(parent)
node = self.get_iter(path) path = self.do_get_path(iternode)
self.row_has_child_toggled(path, node) self.row_has_child_toggled(path, iternode)
else: else:
self.remove_node(parent) self.remove_node(parent)
parent = next_parent parent = next_parent
@@ -841,7 +842,7 @@ class TreeBaseModel(GObject.Object, Gtk.TreeModel):
Obtain from a handle, a path. Obtain from a handle, a path.
Part of common api with flat/treebasemodel Part of common api with flat/treebasemodel
""" """
return self.on_get_path(self.get_node(handle)) return self.do_get_path(self.get_iter(self.get_node(handle)))
# The following implement the public interface of Gtk.TreeModel # The following implement the public interface of Gtk.TreeModel

View File

@@ -26,6 +26,13 @@
Person Tree View Person Tree View
""" """
#-------------------------------------------------------------------------
#
# GTK modules
#
#-------------------------------------------------------------------------
from gi.repository import Gtk
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# Gramps modules # Gramps modules
@@ -48,7 +55,7 @@ from gen.ggettext import gettext as _
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# PlaceTreeView # PersonTreeView
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class PersonTreeView(BasePersonView): class PersonTreeView(BasePersonView):
@@ -169,10 +176,12 @@ class PersonTreeView(BasePersonView):
basepers = None basepers = None
if len(pathlist) == 1: if len(pathlist) == 1:
path = pathlist[0] path = pathlist[0]
if len(path) == 1: pathids = path.get_indices()
path = (path[0], 0) if len(pathids) == 1:
node = model.get_iter(path) path = Gtk.TreePath((pathids[0], 0))
handle = model.get_value(node, self.handle_col) nodeiter = model.do_get_iter(path)[1]
node = model.get_node_from_iter(nodeiter)
handle = model.get_handle(node)
basepers = self.dbstate.db.get_person_from_handle(handle) basepers = self.dbstate.db.get_person_from_handle(handle)
if basepers: if basepers:
preset_name(basepers, name) preset_name(basepers, name)