03651: Deleting more than one person causes crash
Actually these are fixes trying to fix this bug svn: r14574
This commit is contained in:
parent
3dcc74a173
commit
0a2d52a5a0
@ -627,6 +627,13 @@ class FlatBaseModel(gtk.GenericTreeModel):
|
||||
node = self.get_iter(path)
|
||||
self.row_changed(path, node)
|
||||
|
||||
def handle2path(self, handle):
|
||||
"""
|
||||
Obtain from a handle, a path.
|
||||
Part of common api with flat/treebasemodel
|
||||
"""
|
||||
return self.on_get_path(handle)
|
||||
|
||||
def on_get_flags(self):
|
||||
"""
|
||||
Returns the GtkTreeModelFlags for this particular type of model
|
||||
|
@ -228,7 +228,7 @@ class TreeBaseModel(gtk.GenericTreeModel):
|
||||
the hierarchy. Each entry is a node object.
|
||||
handle2node A dictionary of gramps handles. Each entry is a node object.
|
||||
nodemap A NodeMap, mapping id's of the nodes to the node objects. Node
|
||||
refer to other notes via id's in a linked list form.
|
||||
refer to other nodes via id's in a linked list form.
|
||||
|
||||
The model obtains data from database as needed and holds a cache of most
|
||||
recently used data.
|
||||
@ -725,6 +725,13 @@ class TreeBaseModel(gtk.GenericTreeModel):
|
||||
"""
|
||||
return self.handle2node.get(handle)
|
||||
|
||||
def handle2path(self, handle):
|
||||
"""
|
||||
Obtain from a handle, a path.
|
||||
Part of common api with flat/treebasemodel
|
||||
"""
|
||||
return self.on_get_path(self.get_node(handle))
|
||||
|
||||
# The following implement the public interface of gtk.GenericTreeModel
|
||||
|
||||
def on_get_flags(self):
|
||||
|
@ -290,6 +290,8 @@ class BasePersonView(ListView):
|
||||
active_name = _("Delete Person (%s)") % name_displayer.display(person)
|
||||
|
||||
# delete the person from the database
|
||||
# Above will emit person-delete, which removes the person via
|
||||
# callback to the model, so row delete is signaled
|
||||
self.dbstate.db.delete_person_from_database(person, trans)
|
||||
|
||||
# commit the transaction
|
||||
@ -298,7 +300,7 @@ class BasePersonView(ListView):
|
||||
# select the previously active person, turn off the busy cursor
|
||||
history = self.uistate.get_history(self.navigation_type(),
|
||||
self.navigation_group())
|
||||
history.back()
|
||||
history.remove(person.handle)
|
||||
self.uistate.set_busy_cursor(False)
|
||||
|
||||
def dummy_report(self, obj):
|
||||
|
Loading…
Reference in New Issue
Block a user