Fix Find Duplicate People; exception when deleting someone shown (#705)
outside of the tool Fixes #10875
This commit is contained in:
parent
263a082afe
commit
a9748571f3
@ -540,7 +540,7 @@ class DuplicatePeopleToolMatches(ManagedWindow):
|
|||||||
def __init__(self, dbstate, uistate, track, the_list, the_map, callback):
|
def __init__(self, dbstate, uistate, track, the_list, the_map, callback):
|
||||||
ManagedWindow.__init__(self,uistate,track,self.__class__)
|
ManagedWindow.__init__(self,uistate,track,self.__class__)
|
||||||
|
|
||||||
self.dellist = {}
|
self.dellist = set()
|
||||||
self.list = the_list
|
self.list = the_list
|
||||||
self.map = the_map
|
self.map = the_map
|
||||||
self.length = len(self.list)
|
self.length = len(self.list)
|
||||||
@ -566,6 +566,7 @@ class DuplicatePeopleToolMatches(ManagedWindow):
|
|||||||
"on_delete_merge_event" : self.__dummy,
|
"on_delete_merge_event" : self.__dummy,
|
||||||
"on_delete_event" : self.__dummy,
|
"on_delete_event" : self.__dummy,
|
||||||
})
|
})
|
||||||
|
self.db.connect("person-delete", self.person_delete)
|
||||||
|
|
||||||
mtitles = [
|
mtitles = [
|
||||||
(_('Rating'),3,75),
|
(_('Rating'),3,75),
|
||||||
@ -621,16 +622,10 @@ class DuplicatePeopleToolMatches(ManagedWindow):
|
|||||||
|
|
||||||
def on_update(self):
|
def on_update(self):
|
||||||
if self.db.has_person_handle(self.p1):
|
if self.db.has_person_handle(self.p1):
|
||||||
phoenix = self.p1
|
|
||||||
titanic = self.p2
|
titanic = self.p2
|
||||||
else:
|
else:
|
||||||
phoenix = self.p2
|
|
||||||
titanic = self.p1
|
titanic = self.p1
|
||||||
|
self.dellist.add(titanic)
|
||||||
self.dellist[titanic] = phoenix
|
|
||||||
for key, data in self.dellist.items():
|
|
||||||
if data == titanic:
|
|
||||||
self.dellist[key] = phoenix
|
|
||||||
self.update()
|
self.update()
|
||||||
self.redraw()
|
self.redraw()
|
||||||
|
|
||||||
@ -638,6 +633,11 @@ class DuplicatePeopleToolMatches(ManagedWindow):
|
|||||||
self.update(1)
|
self.update(1)
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
def person_delete(self, handle_list):
|
||||||
|
""" deal with person deletes outside of the tool """
|
||||||
|
self.dellist.update(handle_list)
|
||||||
|
self.redraw()
|
||||||
|
|
||||||
def __dummy(self, obj):
|
def __dummy(self, obj):
|
||||||
"""dummy callback, needed because a shared glade file is used for
|
"""dummy callback, needed because a shared glade file is used for
|
||||||
both toplevel windows and all signals must be handled.
|
both toplevel windows and all signals must be handled.
|
||||||
|
Loading…
Reference in New Issue
Block a user