* src/EditPlace.py: use monitored widgets

* src/EditSource.py: use monitored widgets
* src/EventEdit.py: use monitored widgets
* src/GrampsWidgets.py: start of monitored place
* src/GrampsDb/_GrampsDbBase.py: monitor place changes


svn: r5975
This commit is contained in:
Don Allingham
2006-02-23 03:13:15 +00:00
parent beba25f377
commit 72d064f5b5
6 changed files with 231 additions and 247 deletions

View File

@@ -1991,6 +1991,28 @@ class DbState(GrampsDBCallback):
self.db = GrampsDbBase()
self.open = False
self.active = None
self.places = {}
def _place_rebuild(self):
self.places.clear()
cursor = self.db.get_place_cursor()
data = cursor.next()
while data:
if data[1][2]:
self.places[data[1][2]] = data[0]
data = cursor.next()
cursor.close()
def _place_add(self,handle):
place = self.db.get_place_from_handle(handle)
self.places[place.get_title()] = handle
def _place_update(self,handle):
place = self.db.get_place_from_handle(handle)
self.places[handle] = place.get_title()
def _place_delete(self,handle):
del self.places[handle]
def change_active_person(self,person):
self.active = person
@@ -2009,6 +2031,10 @@ class DbState(GrampsDBCallback):
def change_database(self,db):
self.db.close()
self.db = db
self.db.connect('place-add',self._place_add)
self.db.connect('place-update',self._place_update)
self.db.connect('place-delete',self._place_delete)
self.db.connect('place-rebuild',self._place_rebuild)
self.active = None
self.open = True
self.emit('database-changed',(self.db,))