* src/gramps_main.py (post_load): Emit "database-changed" signal instead of calling change_db().
* src/PedView.py: Connect to "database-changed" signal and handle person-update signals to redraw the view. * src/FamilyView.py (__init__) connect to database-changed signal, dont call change_cb because on initialisation there is no real database. (change_db): use database parameter supplied by signal emission. * src/PeopleView.py (__init__) dont connect the signals, this will be done by change_db, (change_db): Use supplied database. * src/SourceView.py (__init__): dont call change_cb because on initialisation there is no real database and this will be done by the signal. svn: r4304
This commit is contained in:
@ -164,6 +164,9 @@ class DispBox:
|
||||
class PedigreeView:
|
||||
def __init__(self,parent,canvas,update,status_bar,lp):
|
||||
self.parent = parent
|
||||
|
||||
self.parent.connect('database-changed',self.change_db)
|
||||
|
||||
self.canvas = canvas
|
||||
self.canvas_items = []
|
||||
self.boxes = []
|
||||
@ -181,6 +184,17 @@ class PedigreeView:
|
||||
self.anchor = None
|
||||
self.canvas.parent.connect('button-press-event',self.on_canvas_press)
|
||||
|
||||
def change_db(self,db):
|
||||
# Reconnect signals
|
||||
db.connect('person-add', self.person_updated_cb)
|
||||
db.connect('person-update', self.person_updated_cb)
|
||||
db.connect('person-delete', self.person_updated_cb)
|
||||
db.connect('person-rebuild', self.person_updated_cb)
|
||||
|
||||
def person_updated_cb(self,handle_list):
|
||||
# Redraw view on changes of persons
|
||||
self.load_canvas(self.active_person)
|
||||
|
||||
def clear(self):
|
||||
for i in self.canvas_items:
|
||||
i.destroy()
|
||||
|
Reference in New Issue
Block a user