Enhanced handling of changes
svn: r1000
This commit is contained in:
parent
55ff500cfe
commit
8e4f5a55ac
@ -75,6 +75,7 @@ class EditPerson:
|
|||||||
def __init__(self,person,db,callback=None):
|
def __init__(self,person,db,callback=None):
|
||||||
"""Creates an edit window. Associates a person with the window."""
|
"""Creates an edit window. Associates a person with the window."""
|
||||||
self.person = person
|
self.person = person
|
||||||
|
self.original_id = person.getId()
|
||||||
self.db = db
|
self.db = db
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.path = db.getSavePath()
|
self.path = db.getSavePath()
|
||||||
@ -697,7 +698,7 @@ class EditPerson:
|
|||||||
p = self.get_place(self.dplace)
|
p = self.get_place(self.dplace)
|
||||||
if p:
|
if p:
|
||||||
event.setPlace(p)
|
event.setPlace(p)
|
||||||
EventEdit.EventEditor(self,pname,const.personalEvents,\
|
EventEdit.EventEditor(self,pname,const.personalEvents,
|
||||||
const.save_fevent,event,def_placename,1,
|
const.save_fevent,event,def_placename,1,
|
||||||
self.callback)
|
self.callback)
|
||||||
|
|
||||||
@ -1159,8 +1160,8 @@ class EditPerson:
|
|||||||
Utils.modified()
|
Utils.modified()
|
||||||
|
|
||||||
self.pmap = {}
|
self.pmap = {}
|
||||||
for p in self.db.getPlaceKeys():
|
for key in self.db.getPlaceKeys():
|
||||||
p = db.getPlaceDisplay(key)
|
p = self.db.getPlaceDisplay(key)
|
||||||
self.pmap[p[0]] = key
|
self.pmap[p[0]] = key
|
||||||
|
|
||||||
self.birth.setDate(self.bdate.get_text())
|
self.birth.setDate(self.bdate.get_text())
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
from ZODB import Persistent
|
from ZODB import Persistent
|
||||||
from ZODB.FileStorage import FileStorage
|
from ZODB.dbmStorage import gdbmStorage
|
||||||
from ZODB.DB import DB
|
from ZODB.DB import DB
|
||||||
from BTrees.OOBTree import OOBTree
|
from BTrees.OOBTree import OOBTree
|
||||||
from UserDict import UserDict
|
from UserDict import UserDict
|
||||||
@ -128,6 +128,9 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.conn = None
|
self.conn = None
|
||||||
GrampsDB.__init__(self)
|
GrampsDB.__init__(self)
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
self.db.close()
|
||||||
|
|
||||||
def get_base(self):
|
def get_base(self):
|
||||||
return const.zodbFile
|
return const.zodbFile
|
||||||
|
|
||||||
@ -153,25 +156,9 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.load(name,callback)
|
self.load(name,callback)
|
||||||
|
|
||||||
def load(self,name,callback):
|
def load(self,name,callback):
|
||||||
import time
|
self.db = DB(gdbmStorage(name,'w'))
|
||||||
t = time.time()
|
|
||||||
print 'opening storage'
|
|
||||||
s = FileStorage(name)
|
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
print 'getting DB'
|
|
||||||
self.db = DB(s)
|
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
print 'establishing connect'
|
|
||||||
self.conn = self.db.open()
|
self.conn = self.db.open()
|
||||||
t1 = time.time()
|
|
||||||
print t1 -t
|
|
||||||
print 'getting root'
|
|
||||||
root = self.conn.root()
|
root = self.conn.root()
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
print 'family map'
|
|
||||||
need_commit = 0
|
need_commit = 0
|
||||||
if root.has_key('fm'):
|
if root.has_key('fm'):
|
||||||
self.familyMap = root['fm']
|
self.familyMap = root['fm']
|
||||||
@ -179,20 +166,12 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.familyMap = OOBTree()
|
self.familyMap = OOBTree()
|
||||||
root['fm'] = self.familyMap
|
root['fm'] = self.familyMap
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
|
|
||||||
print 'person map'
|
|
||||||
if root.has_key('pm'):
|
if root.has_key('pm'):
|
||||||
self.personMap = root['pm']
|
self.personMap = root['pm']
|
||||||
else:
|
else:
|
||||||
self.personMap = PersonMap()
|
self.personMap = PersonMap()
|
||||||
root['pm'] = self.personMap
|
root['pm'] = self.personMap
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
|
|
||||||
print 'person index table'
|
|
||||||
if root.has_key('pmt'):
|
if root.has_key('pmt'):
|
||||||
self.personTable = root['pmt']
|
self.personTable = root['pmt']
|
||||||
else:
|
else:
|
||||||
@ -201,10 +180,6 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.personTable[key] = person.getDisplayInfo()
|
self.personTable[key] = person.getDisplayInfo()
|
||||||
root['pmt'] = self.personTable
|
root['pmt'] = self.personTable
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
|
|
||||||
print 'surnames'
|
|
||||||
if root.has_key('surnames'):
|
if root.has_key('surnames'):
|
||||||
self.surnames = root['surnames']
|
self.surnames = root['surnames']
|
||||||
else:
|
else:
|
||||||
@ -213,20 +188,12 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.addSurname(person.getPrimaryName().getSurname())
|
self.addSurname(person.getPrimaryName().getSurname())
|
||||||
root['surnames'] = self.surnames
|
root['surnames'] = self.surnames
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
|
|
||||||
print 'source map'
|
|
||||||
if root.has_key('sm'):
|
if root.has_key('sm'):
|
||||||
self.sourceMap = root['sm']
|
self.sourceMap = root['sm']
|
||||||
else:
|
else:
|
||||||
self.sourceMap = OOBTree()
|
self.sourceMap = OOBTree()
|
||||||
root['sm'] = self.sourceMap
|
root['sm'] = self.sourceMap
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
|
|
||||||
print 'source index table'
|
|
||||||
if root.has_key('smt'):
|
if root.has_key('smt'):
|
||||||
self.sourceTable = root['smt']
|
self.sourceTable = root['smt']
|
||||||
else:
|
else:
|
||||||
@ -235,20 +202,12 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.sourceTable[key] = src.getDisplayInfo()
|
self.sourceTable[key] = src.getDisplayInfo()
|
||||||
root['smt'] = self.sourceTable
|
root['smt'] = self.sourceTable
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
|
|
||||||
print 'place map'
|
|
||||||
if root.has_key('plm'):
|
if root.has_key('plm'):
|
||||||
self.placeMap = root['plm']
|
self.placeMap = root['plm']
|
||||||
else:
|
else:
|
||||||
self.placeMap = OOBTree()
|
self.placeMap = OOBTree()
|
||||||
root['plm'] = self.placeMap
|
root['plm'] = self.placeMap
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
|
|
||||||
print 'place index'
|
|
||||||
if root.has_key('plmt'):
|
if root.has_key('plmt'):
|
||||||
self.placeTable = root['plmt']
|
self.placeTable = root['plmt']
|
||||||
else:
|
else:
|
||||||
@ -257,35 +216,20 @@ class GrampsZODB(GrampsDB):
|
|||||||
self.placeTable[key] = place.getDisplayInfo()
|
self.placeTable[key] = place.getDisplayInfo()
|
||||||
root['plmt'] = self.placeTable
|
root['plmt'] = self.placeTable
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
|
|
||||||
print 'default person'
|
|
||||||
if root.has_key('default'):
|
if root.has_key('default'):
|
||||||
self.default = root['default']
|
self.default = root['default']
|
||||||
else:
|
else:
|
||||||
self.default = None
|
self.default = None
|
||||||
root['default'] = self.default
|
root['default'] = self.default
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
|
|
||||||
print 'bookmarks'
|
|
||||||
if root.has_key('bookmarks'):
|
if root.has_key('bookmarks'):
|
||||||
self.bookmarks = root['bookmarks']
|
self.bookmarks = root['bookmarks']
|
||||||
else:
|
else:
|
||||||
self.bookmarks = []
|
self.bookmarks = []
|
||||||
root['bookmarks'] = self.bookmarks
|
root['bookmarks'] = self.bookmarks
|
||||||
need_commit = 1
|
need_commit = 1
|
||||||
t = time.time()
|
|
||||||
print t - t1
|
|
||||||
|
|
||||||
if need_commit:
|
if need_commit:
|
||||||
print 'committing'
|
|
||||||
get_transaction().commit()
|
get_transaction().commit()
|
||||||
t1 = time.time()
|
|
||||||
print t1 - t
|
|
||||||
print 'done'
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def setDefaultPerson(self,person):
|
def setDefaultPerson(self,person):
|
||||||
@ -293,82 +237,3 @@ class GrampsZODB(GrampsDB):
|
|||||||
GrampsDB.setDefaultPerson(self,person)
|
GrampsDB.setDefaultPerson(self,person)
|
||||||
self.conn.root()['default'] = person
|
self.conn.root()['default'] = person
|
||||||
|
|
||||||
def removePerson(self,id):
|
|
||||||
GrampsDB.removePerson(self,id)
|
|
||||||
del self.personTable[id]
|
|
||||||
|
|
||||||
def removeSource(self,id):
|
|
||||||
GrampsDB.removeSource(self,id)
|
|
||||||
del self.sourceTable[id]
|
|
||||||
|
|
||||||
def removePlace(self,id):
|
|
||||||
GrampsDB.removePlace(self,id)
|
|
||||||
del self.placeTable[id]
|
|
||||||
|
|
||||||
def addPersonAs(self,person):
|
|
||||||
GrampsDB.addPersonAs(self,person)
|
|
||||||
self.personTable[person.getId()] = person.getDisplayInfo()
|
|
||||||
|
|
||||||
def addPlaceAs(self,place):
|
|
||||||
GrampsDB.addPlaceAs(self,place)
|
|
||||||
self.placeTable[place.getId()] = place.getDisplayInfo()
|
|
||||||
|
|
||||||
def addPerson(self,person):
|
|
||||||
i = GrampsDB.addPerson(self,person)
|
|
||||||
self.personTable[i] = person.getDisplayInfo()
|
|
||||||
return i
|
|
||||||
|
|
||||||
def addPlace(self,place):
|
|
||||||
i = GrampsDB.addPlace(self,place)
|
|
||||||
self.placeTable[i] = place.getDisplayInfo()
|
|
||||||
return i
|
|
||||||
|
|
||||||
def addPersonNoMap(self,person,id):
|
|
||||||
GrampsDB.addPersonNoMap(self,person,id)
|
|
||||||
self.personTable[id] = person.getDisplayInfo()
|
|
||||||
return id
|
|
||||||
|
|
||||||
def addPlaceNoMap(self,place,id):
|
|
||||||
GrampsDB.addPlaceNoMap(self,place,id)
|
|
||||||
self.placeTable[id] = place.getDisplayInfo()
|
|
||||||
return id
|
|
||||||
|
|
||||||
def findPersonNoMap(self,val):
|
|
||||||
p = GrampsDB.findPersonNoMap(self,val)
|
|
||||||
self.personTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
|
||||||
def findPlaceNoMap(self,val):
|
|
||||||
p = GrampsDB.findPlaceNoMap(self,val)
|
|
||||||
self.placeTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
|
||||||
def findPerson(self,idVal,map):
|
|
||||||
p = GrampsDB.findPerson(self,idVal,map)
|
|
||||||
self.personTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
|
||||||
def findPlace(self,idVal,map):
|
|
||||||
p = GrampsDB.findPlace(self,idVal,map)
|
|
||||||
self.placeTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
|
||||||
def addSource(self,source):
|
|
||||||
i = GrampsDB.addSource(self,source)
|
|
||||||
self.sourceTable[i] = source.getDisplayInfo()
|
|
||||||
return i
|
|
||||||
|
|
||||||
def addSourceNoMap(self,source,id):
|
|
||||||
GrampsDB.addSourceNoMap(self,source,id)
|
|
||||||
self.sourceTable[id] = source.getDisplayInfo()
|
|
||||||
return id
|
|
||||||
|
|
||||||
def findSourceNoMap(self,val):
|
|
||||||
p = GrampsDB.findSourceNoMap(self,val)
|
|
||||||
self.sourceTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
|
||||||
def findSource(self,idVal,map):
|
|
||||||
p = GrampsDB.findSource(self,idVal,map)
|
|
||||||
self.sourceTable[p.getId()] = p.getDisplayInfo()
|
|
||||||
return p
|
|
||||||
|
@ -165,7 +165,7 @@ class PlaceView:
|
|||||||
obj.freeze()
|
obj.freeze()
|
||||||
if len(obj.selection):
|
if len(obj.selection):
|
||||||
id = obj.get_row_data(obj.selection[0])
|
id = obj.get_row_data(obj.selection[0])
|
||||||
sel = self.db.getPlaceMap()[id]
|
sel = id
|
||||||
else:
|
else:
|
||||||
sel = None
|
sel = None
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ class PlaceView:
|
|||||||
|
|
||||||
def insert_place(self,place):
|
def insert_place(self,place):
|
||||||
self.place_list.append(place.getDisplayInfo())
|
self.place_list.append(place.getDisplayInfo())
|
||||||
self.place_list.set_row_data(self.place_list.rows-1,place)
|
self.place_list.set_row_data(self.place_list.rows-1,place.getId())
|
||||||
|
|
||||||
def new_place_after_edit(self,place):
|
def new_place_after_edit(self,place):
|
||||||
self.place_list.freeze()
|
self.place_list.freeze()
|
||||||
@ -202,7 +202,13 @@ class PlaceView:
|
|||||||
|
|
||||||
def update_display_after_edit(self,place):
|
def update_display_after_edit(self,place):
|
||||||
self.place_list.freeze()
|
self.place_list.freeze()
|
||||||
index = self.place_list.find_row_from_data(place)
|
val = place.getId()
|
||||||
|
for index in range(0,self.place_list.rows):
|
||||||
|
if self.place_list.get_row_data(index) == val:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
index = -1
|
||||||
|
|
||||||
self.place_list.remove(index)
|
self.place_list.remove(index)
|
||||||
self.insert_place(place)
|
self.insert_place(place)
|
||||||
self.place_list.sort()
|
self.place_list.sort()
|
||||||
@ -256,8 +262,9 @@ class PlaceView:
|
|||||||
gnome.ui.GnomeErrorDialog(msg)
|
gnome.ui.GnomeErrorDialog(msg)
|
||||||
else:
|
else:
|
||||||
for p in obj.selection:
|
for p in obj.selection:
|
||||||
place = obj.get_row_data(p)
|
place = self.db.getPlaceMap()[obj.get_row_data(p)]
|
||||||
EditPlace.EditPlace(place,self.db,self.update_display_after_edit)
|
EditPlace.EditPlace(place,self.db,
|
||||||
|
self.update_display_after_edit)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -992,8 +992,9 @@ class Person(Persistent):
|
|||||||
gender = const.unknown
|
gender = const.unknown
|
||||||
bday = self.getBirth().getDateObj()
|
bday = self.getBirth().getDateObj()
|
||||||
dday = self.getDeath().getDateObj()
|
dday = self.getDeath().getDateObj()
|
||||||
return [self.PrimaryName.getName(),self.id,gender,bday.getQuoteDate(),
|
return [self.getPrimaryName().getName(),self.id,gender,
|
||||||
dday.getQuoteDate(),sort.build_sort_name(self.PrimaryName),
|
bday.getQuoteDate(), dday.getQuoteDate(),
|
||||||
|
sort.build_sort_name(self.getPrimaryName()),
|
||||||
sort.build_sort_date(bday),sort.build_sort_date(dday)]
|
sort.build_sort_date(bday),sort.build_sort_date(dday)]
|
||||||
|
|
||||||
|
|
||||||
@ -1834,6 +1835,9 @@ class GrampsDB(Persistent):
|
|||||||
self.placeMap = {}
|
self.placeMap = {}
|
||||||
self.new()
|
self.new()
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def get_base(self):
|
def get_base(self):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@ -1845,6 +1849,11 @@ class GrampsDB(Persistent):
|
|||||||
|
|
||||||
def getPersonDisplay(self,key):
|
def getPersonDisplay(self,key):
|
||||||
return self.personTable[key]
|
return self.personTable[key]
|
||||||
|
|
||||||
|
def buildPersonDisplay(self,nkey,okey=None):
|
||||||
|
if nkey != okey and okey != None:
|
||||||
|
del self.personTable[okey]
|
||||||
|
self.personTable[nkey] = self.personMap[nkey].getDisplayInfo()
|
||||||
|
|
||||||
def set_iprefix(self,val):
|
def set_iprefix(self,val):
|
||||||
if _id_reg.search(val):
|
if _id_reg.search(val):
|
||||||
@ -2038,9 +2047,15 @@ class GrampsDB(Persistent):
|
|||||||
|
|
||||||
def removePerson(self,id):
|
def removePerson(self,id):
|
||||||
del self.personMap[id]
|
del self.personMap[id]
|
||||||
|
del self.personTable[id]
|
||||||
|
|
||||||
|
def removeSource(self,id):
|
||||||
|
del self.sourceMap[id]
|
||||||
|
del self.sourceTable[id]
|
||||||
|
|
||||||
def addPersonAs(self,person):
|
def addPersonAs(self,person):
|
||||||
self.personMap[person.getId()] = person
|
self.personMap[person.getId()] = person
|
||||||
|
self.personTable[person.getId()] = person.getDisplayInfo()
|
||||||
|
|
||||||
def addPerson(self,person):
|
def addPerson(self,person):
|
||||||
"""adds a Person to the database, assigning a gramps' ID"""
|
"""adds a Person to the database, assigning a gramps' ID"""
|
||||||
@ -2050,6 +2065,7 @@ class GrampsDB(Persistent):
|
|||||||
index = self.iprefix % self.pmapIndex
|
index = self.iprefix % self.pmapIndex
|
||||||
person.setId(index)
|
person.setId(index)
|
||||||
self.personMap[index] = person
|
self.personMap[index] = person
|
||||||
|
self.personTable[index] = person.getDisplayInfo()
|
||||||
self.pmapIndex = self.pmapIndex + 1
|
self.pmapIndex = self.pmapIndex + 1
|
||||||
return index
|
return index
|
||||||
|
|
||||||
@ -2068,6 +2084,7 @@ class GrampsDB(Persistent):
|
|||||||
else:
|
else:
|
||||||
person = Person()
|
person = Person()
|
||||||
map[idVal] = self.addPerson(person)
|
map[idVal] = self.addPerson(person)
|
||||||
|
self.personTable[map[idVal]] = person.getDisplayInfo()
|
||||||
return person
|
return person
|
||||||
|
|
||||||
def addPersonNoMap(self,person,id):
|
def addPersonNoMap(self,person,id):
|
||||||
@ -2077,6 +2094,7 @@ class GrampsDB(Persistent):
|
|||||||
person.setId(id)
|
person.setId(id)
|
||||||
self.personMap[id] = person
|
self.personMap[id] = person
|
||||||
self.pmapIndex = self.pmapIndex+1
|
self.pmapIndex = self.pmapIndex+1
|
||||||
|
self.personTable[id] = person.getDisplayInfo()
|
||||||
return id
|
return id
|
||||||
|
|
||||||
def findPersonNoMap(self,val):
|
def findPersonNoMap(self,val):
|
||||||
@ -2089,6 +2107,7 @@ class GrampsDB(Persistent):
|
|||||||
person.id = val
|
person.id = val
|
||||||
self.personMap[val] = person
|
self.personMap[val] = person
|
||||||
self.pmapIndex = self.pmapIndex+1
|
self.pmapIndex = self.pmapIndex+1
|
||||||
|
self.personTable[val] = person.getDisplayInfo()
|
||||||
return person
|
return person
|
||||||
|
|
||||||
def addSource(self,source):
|
def addSource(self,source):
|
||||||
@ -2101,6 +2120,7 @@ class GrampsDB(Persistent):
|
|||||||
index = self.sprefix % self.smapIndex
|
index = self.sprefix % self.smapIndex
|
||||||
source.setId(index)
|
source.setId(index)
|
||||||
self.sourceMap[index] = source
|
self.sourceMap[index] = source
|
||||||
|
self.sourceTable[index] = source.getDisplayInfo()
|
||||||
self.smapIndex = self.smapIndex + 1
|
self.smapIndex = self.smapIndex + 1
|
||||||
return index
|
return index
|
||||||
|
|
||||||
@ -2118,6 +2138,7 @@ class GrampsDB(Persistent):
|
|||||||
else:
|
else:
|
||||||
source = Source()
|
source = Source()
|
||||||
map[idVal] = self.addSource(source)
|
map[idVal] = self.addSource(source)
|
||||||
|
self.sourceTable[map[idVal]] = source.getDisplayInfo()
|
||||||
return source
|
return source
|
||||||
|
|
||||||
def addSourceNoMap(self,source,index):
|
def addSourceNoMap(self,source,index):
|
||||||
@ -2125,6 +2146,7 @@ class GrampsDB(Persistent):
|
|||||||
source.setId(index)
|
source.setId(index)
|
||||||
self.sourceMap[index] = source
|
self.sourceMap[index] = source
|
||||||
self.smapIndex = self.smapIndex + 1
|
self.smapIndex = self.smapIndex + 1
|
||||||
|
self.sourceTable[index] = source.getDisplayInfo()
|
||||||
return index
|
return index
|
||||||
|
|
||||||
def findSourceNoMap(self,val):
|
def findSourceNoMap(self,val):
|
||||||
@ -2136,6 +2158,7 @@ class GrampsDB(Persistent):
|
|||||||
else:
|
else:
|
||||||
source = Source()
|
source = Source()
|
||||||
self.addSourceNoMap(source,val)
|
self.addSourceNoMap(source,val)
|
||||||
|
self.sourceTable[val] = source.getDisplayInfo()
|
||||||
return source
|
return source
|
||||||
|
|
||||||
def addObject(self,object):
|
def addObject(self,object):
|
||||||
@ -2199,13 +2222,16 @@ class GrampsDB(Persistent):
|
|||||||
place.setId(index)
|
place.setId(index)
|
||||||
self.placeMap[index] = place
|
self.placeMap[index] = place
|
||||||
self.lmapIndex = self.lmapIndex + 1
|
self.lmapIndex = self.lmapIndex + 1
|
||||||
|
self.placeTable[index] = place.getDisplayInfo()
|
||||||
return index
|
return index
|
||||||
|
|
||||||
def removePlace(self,id):
|
def removePlace(self,id):
|
||||||
del self.placeMap[id]
|
del self.placeMap[id]
|
||||||
|
del self.placeTable[id]
|
||||||
|
|
||||||
def addPlaceAs(self,place):
|
def addPlaceAs(self,place):
|
||||||
self.placeMap[place.getId()] = place
|
self.placeMap[place.getId()] = place
|
||||||
|
self.placeTable[place.getId()] = place.getDisplayInfo()
|
||||||
|
|
||||||
def findPlace(self,idVal,map):
|
def findPlace(self,idVal,map):
|
||||||
"""finds a Place in the database using the idVal and map
|
"""finds a Place in the database using the idVal and map
|
||||||
@ -2222,6 +2248,7 @@ class GrampsDB(Persistent):
|
|||||||
else:
|
else:
|
||||||
place = Place()
|
place = Place()
|
||||||
map[idVal] = self.addPlace(place)
|
map[idVal] = self.addPlace(place)
|
||||||
|
self.placeTable[map[idVal]] = p.getDisplayInfo()
|
||||||
return place
|
return place
|
||||||
|
|
||||||
def addPlaceNoMap(self,place,index):
|
def addPlaceNoMap(self,place,index):
|
||||||
@ -2231,6 +2258,7 @@ class GrampsDB(Persistent):
|
|||||||
place.setId(index)
|
place.setId(index)
|
||||||
self.placeMap[index] = place
|
self.placeMap[index] = place
|
||||||
self.lmapIndex = self.lmapIndex + 1
|
self.lmapIndex = self.lmapIndex + 1
|
||||||
|
self.placeTable[index] = place.getDisplayInfo()
|
||||||
return index
|
return index
|
||||||
|
|
||||||
def findPlaceNoMap(self,val):
|
def findPlaceNoMap(self,val):
|
||||||
@ -2243,6 +2271,7 @@ class GrampsDB(Persistent):
|
|||||||
place.id = val
|
place.id = val
|
||||||
self.placeMap[val] = place
|
self.placeMap[val] = place
|
||||||
self.lmapIndex = self.lmapIndex + 1
|
self.lmapIndex = self.lmapIndex + 1
|
||||||
|
self.placeTable[val] = place.getDisplayInfo()
|
||||||
return place
|
return place
|
||||||
|
|
||||||
def getPlaceKeys(self):
|
def getPlaceKeys(self):
|
||||||
|
@ -400,8 +400,8 @@ class Gramps:
|
|||||||
gnome.ui.GnomeErrorDialog(msg)
|
gnome.ui.GnomeErrorDialog(msg)
|
||||||
else:
|
else:
|
||||||
import MergeData
|
import MergeData
|
||||||
(p1,x) = self.person_list.get_row_data(self.person_list.selection[0])
|
p1 = self.person_list.get_row_data(self.person_list.selection[0])
|
||||||
(p2,x) = self.person_list.get_row_data(self.person_list.selection[1])
|
p2 = self.person_list.get_row_data(self.person_list.selection[1])
|
||||||
p1 = self.db.getPersonMap()[p1]
|
p1 = self.db.getPersonMap()[p1]
|
||||||
p2 = self.db.getPersonMap()[p2]
|
p2 = self.db.getPersonMap()[p2]
|
||||||
MergeData.MergePeople(self.db,p1,p2,self.merge_update,
|
MergeData.MergePeople(self.db,p1,p2,self.merge_update,
|
||||||
@ -424,16 +424,19 @@ class Gramps:
|
|||||||
"Do you wish to save the changes?"),
|
"Do you wish to save the changes?"),
|
||||||
_("Save Changes"), self.save_query,
|
_("Save Changes"), self.save_query,
|
||||||
_("Abandon Changes"), self.quit)
|
_("Abandon Changes"), self.quit)
|
||||||
else:
|
else:
|
||||||
|
self.db.close()
|
||||||
gtk.mainquit()
|
gtk.mainquit()
|
||||||
|
|
||||||
def save_query(self):
|
def save_query(self):
|
||||||
"""Catch the reponse to the save on exit question"""
|
"""Catch the reponse to the save on exit question"""
|
||||||
self.on_save_activate_quit()
|
self.on_save_activate_quit()
|
||||||
|
self.db.close()
|
||||||
gtk.mainquit()
|
gtk.mainquit()
|
||||||
|
|
||||||
def quit(self):
|
def quit(self):
|
||||||
"""Catch the reponse to the save on exit question"""
|
"""Catch the reponse to the save on exit question"""
|
||||||
|
self.db.close()
|
||||||
gtk.mainquit()
|
gtk.mainquit()
|
||||||
|
|
||||||
def on_about_activate(self,obj):
|
def on_about_activate(self,obj):
|
||||||
@ -656,29 +659,17 @@ class Gramps:
|
|||||||
self.id2col = {}
|
self.id2col = {}
|
||||||
self.person_list.clear()
|
self.person_list.clear()
|
||||||
self.notebook.set_show_tabs(GrampsCfg.usetabs)
|
self.notebook.set_show_tabs(GrampsCfg.usetabs)
|
||||||
self.child_list.set_column_visibility(self.c_details,GrampsCfg.show_detail)
|
self.child_list.set_column_visibility(self.c_details,
|
||||||
|
GrampsCfg.show_detail)
|
||||||
self.child_list.set_column_visibility(self.c_id,GrampsCfg.id_visible)
|
self.child_list.set_column_visibility(self.c_id,GrampsCfg.id_visible)
|
||||||
self.child_list.set_column_visibility(self.c_birth_order,GrampsCfg.index_visible)
|
self.child_list.set_column_visibility(self.c_birth_order,
|
||||||
import time
|
GrampsCfg.index_visible)
|
||||||
t = time.time()
|
|
||||||
self.apply_filter()
|
self.apply_filter()
|
||||||
print 'people',time.time() - t
|
|
||||||
t = time.time()
|
|
||||||
self.load_family()
|
self.load_family()
|
||||||
print 'family',time.time() -t
|
|
||||||
t = time.time()
|
|
||||||
self.source_view.load_sources()
|
self.source_view.load_sources()
|
||||||
print 'sources',time.time() -t
|
|
||||||
t = time.time()
|
|
||||||
self.place_view.load_places()
|
self.place_view.load_places()
|
||||||
print 'places',time.time() -t
|
|
||||||
t = time.time()
|
|
||||||
self.pedigree_view.load_canvas(self.active_person)
|
self.pedigree_view.load_canvas(self.active_person)
|
||||||
print 'pedegree',time.time() -t
|
|
||||||
t = time.time()
|
|
||||||
self.media_view.load_media()
|
self.media_view.load_media()
|
||||||
print 'media',time.time() -t
|
|
||||||
t = time.time()
|
|
||||||
self.toolbar.set_style(GrampsCfg.toolbar)
|
self.toolbar.set_style(GrampsCfg.toolbar)
|
||||||
|
|
||||||
def update_display(self,changed):
|
def update_display(self,changed):
|
||||||
@ -875,7 +866,7 @@ class Gramps:
|
|||||||
gnome.ui.GnomeErrorDialog(msg)
|
gnome.ui.GnomeErrorDialog(msg)
|
||||||
else:
|
else:
|
||||||
for p in self.person_list.selection:
|
for p in self.person_list.selection:
|
||||||
(person,x) = self.person_list.get_row_data(p)
|
person = self.person_list.get_row_data(p)
|
||||||
self.load_person(self.db.getPersonMap()[person])
|
self.load_person(self.db.getPersonMap()[person])
|
||||||
|
|
||||||
def load_active_person(self,obj):
|
def load_active_person(self,obj):
|
||||||
@ -937,19 +928,23 @@ class Gramps:
|
|||||||
self.update_display(0)
|
self.update_display(0)
|
||||||
Utils.modified()
|
Utils.modified()
|
||||||
|
|
||||||
def remove_from_person_list(self,person):
|
def remove_from_person_list(self,person,old_id=None):
|
||||||
|
|
||||||
self.person_list.freeze()
|
self.person_list.freeze()
|
||||||
pid = person.getId()
|
pid = person.getId()
|
||||||
if self.id2col.has_key(pid):
|
|
||||||
for id in self.id2col[pid]:
|
|
||||||
row = self.person_list.find_row_from_data(id)
|
|
||||||
self.person_list.remove(row)
|
|
||||||
|
|
||||||
del self.id2col[pid]
|
if old_id:
|
||||||
|
del_id = old_id
|
||||||
|
else:
|
||||||
|
del_id = pid
|
||||||
|
|
||||||
|
if self.id2col.has_key(del_id):
|
||||||
|
row = self.person_list.find_row_from_data(del_id)
|
||||||
|
self.person_list.remove(row)
|
||||||
|
del self.id2col[del_id]
|
||||||
|
|
||||||
if row > self.person_list.rows:
|
if row > self.person_list.rows:
|
||||||
(p,x) = self.person_list.get_row_data(row)
|
p = self.person_list.get_row_data(row)
|
||||||
self.active_person = self.db.getPersonMap()[p]
|
self.active_person = self.db.getPersonMap()[p]
|
||||||
self.person_list.thaw()
|
self.person_list.thaw()
|
||||||
|
|
||||||
@ -968,8 +963,7 @@ class Gramps:
|
|||||||
|
|
||||||
def on_person_list_select_row(self,obj,row,b,c):
|
def on_person_list_select_row(self,obj,row,b,c):
|
||||||
if row == obj.selection[0]:
|
if row == obj.selection[0]:
|
||||||
(id,x) = obj.get_row_data(row)
|
person = self.db.getPersonMap()[obj.get_row_data(row)]
|
||||||
person = self.db.getPersonMap()[id]
|
|
||||||
self.change_active_person(person)
|
self.change_active_person(person)
|
||||||
|
|
||||||
def on_person_list_click_column(self,obj,column):
|
def on_person_list_click_column(self,obj,column):
|
||||||
@ -1060,8 +1054,7 @@ class Gramps:
|
|||||||
return
|
return
|
||||||
id = self.active_person.getId()
|
id = self.active_person.getId()
|
||||||
if self.id2col.has_key(id):
|
if self.id2col.has_key(id):
|
||||||
pos = self.id2col[id]
|
column = self.person_list.find_row_from_data(id)
|
||||||
column = self.person_list.find_row_from_data(pos)
|
|
||||||
if column != -1:
|
if column != -1:
|
||||||
self.person_list.unselect_all()
|
self.person_list.unselect_all()
|
||||||
self.person_list.select_row(column,0)
|
self.person_list.select_row(column,0)
|
||||||
@ -1071,8 +1064,8 @@ class Gramps:
|
|||||||
self.person_list.unselect_all()
|
self.person_list.unselect_all()
|
||||||
self.person_list.select_row(0,0)
|
self.person_list.select_row(0,0)
|
||||||
self.person_list.moveto(0)
|
self.person_list.moveto(0)
|
||||||
(person,x) = self.person_list.get_row_data(0)
|
pid = self.person_list.get_row_data(0)
|
||||||
person = self.db.getPersonMap()[person]
|
person = self.db.getPersonMap()[pid]
|
||||||
self.change_active_person(person)
|
self.change_active_person(person)
|
||||||
|
|
||||||
def change_active_person(self,person):
|
def change_active_person(self,person):
|
||||||
@ -1418,6 +1411,7 @@ class Gramps:
|
|||||||
self.db.addPerson(epo.person)
|
self.db.addPerson(epo.person)
|
||||||
else:
|
else:
|
||||||
self.db.addPersonNoMap(epo.person,epo.person.getId())
|
self.db.addPersonNoMap(epo.person,epo.person.getId())
|
||||||
|
self.db.buildPersonDisplay(epo.person.getId())
|
||||||
self.change_active_person(epo.person)
|
self.change_active_person(epo.person)
|
||||||
self.redisplay_person_list(epo.person)
|
self.redisplay_person_list(epo.person)
|
||||||
for p in plist:
|
for p in plist:
|
||||||
@ -1431,19 +1425,19 @@ class Gramps:
|
|||||||
|
|
||||||
def update_after_edit(self,epo,plist):
|
def update_after_edit(self,epo,plist):
|
||||||
if epo:
|
if epo:
|
||||||
self.remove_from_person_list(epo.person)
|
self.db.buildPersonDisplay(epo.person.getId(),epo.original_id)
|
||||||
|
self.remove_from_person_list(epo.person,epo.original_id)
|
||||||
self.redisplay_person_list(epo.person)
|
self.redisplay_person_list(epo.person)
|
||||||
for p in plist:
|
for p in plist:
|
||||||
self.place_view.new_place_after_edit(p)
|
self.place_view.new_place_after_edit(p)
|
||||||
self.update_display(0)
|
self.update_display(0)
|
||||||
|
|
||||||
def redisplay_person_list(self,person):
|
def redisplay_person_list(self,person):
|
||||||
pos = (person,0)
|
self.id2col[person.getId()] = 1
|
||||||
self.id2col[person.getId()] = pos
|
|
||||||
|
|
||||||
if self.DataFilter.compare(person):
|
if self.DataFilter.compare(person):
|
||||||
self.person_list.insert(0,person.getDisplayInfo())
|
self.person_list.insert(0,person.getDisplayInfo())
|
||||||
self.person_list.set_row_data(0,pos)
|
self.person_list.set_row_data(0,person.getId())
|
||||||
self.sort_person_list()
|
self.sort_person_list()
|
||||||
|
|
||||||
def load_person(self,person):
|
def load_person(self,person):
|
||||||
@ -1843,11 +1837,10 @@ class Gramps:
|
|||||||
if datacomp(person):
|
if datacomp(person):
|
||||||
if self.id2col.has_key(key):
|
if self.id2col.has_key(key):
|
||||||
continue
|
continue
|
||||||
pos = (key,0)
|
self.id2col[key] = 1
|
||||||
self.id2col[key] = pos
|
|
||||||
|
|
||||||
self.person_list.insert(0,self.db.getPersonDisplay(key))
|
self.person_list.insert(0,self.db.getPersonDisplay(key))
|
||||||
self.person_list.set_row_data(0,pos)
|
self.person_list.set_row_data(0,person.getId())
|
||||||
else:
|
else:
|
||||||
if self.id2col.has_key(key):
|
if self.id2col.has_key(key):
|
||||||
del self.id2col[key]
|
del self.id2col[key]
|
||||||
|
@ -425,6 +425,7 @@ class GedcomParser:
|
|||||||
self.person = self.db.findPerson(matches[1],self.pmap)
|
self.person = self.db.findPerson(matches[1],self.pmap)
|
||||||
self.added[self.person.getId()] = self.person
|
self.added[self.person.getId()] = self.person
|
||||||
self.parse_individual()
|
self.parse_individual()
|
||||||
|
self.db.buildPersonDisplay(self.person.getId())
|
||||||
elif matches[2] in ["SUBM","SUBN"]:
|
elif matches[2] in ["SUBM","SUBN"]:
|
||||||
self.ignore_sub_junk(1)
|
self.ignore_sub_junk(1)
|
||||||
elif matches[1] in ["SUBM","SUBN"]:
|
elif matches[1] in ["SUBM","SUBN"]:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user