* src/ReadGedcomp.py: Handle inline sources better in GEDCOM files

svn: r4500
This commit is contained in:
Don Allingham 2005-05-07 04:04:18 +00:00
parent 92f89387cb
commit 0193504595
2 changed files with 19 additions and 8 deletions

View File

@ -1,4 +1,5 @@
2005-05-06 Don Allingham <dona@gramps-project.org>
2005-05-06 Don Allingham <don@gramps-project.org>
* src/ReadGedcomp.py: Handle inline sources better in GEDCOM files
* src/ReportUtils.py: check for spouse existance before creating a
marriage string - return an empty string instead.
* src/ReadXML.py: fix handling of non-gregorian dates

View File

@ -254,6 +254,7 @@ class GedcomParser:
self.dp = GedcomDateParser()
self.db = dbase
self.person = None
self.inline_srcs = {}
self.media_map = {}
self.fmap = {}
self.smap = {}
@ -493,6 +494,16 @@ class GedcomParser:
if self.window:
self.update(self.families_obj,str(self.fam_count))
self.update(self.people_obj,str(self.indi_count))
for value in self.inline_srcs.keys():
title,note = value
handle = self.inline_srcs[value]
src = RelLib.Source()
src.set_handle(handle)
src.set_title(title)
if note:
src.set_note(note)
self.db.add_source(src,self.trans)
self.break_note_links()
t = time.time() - t
@ -1944,16 +1955,15 @@ class GedcomParser:
def handle_source(self,matches,level):
source_ref = RelLib.SourceRef()
if matches[2] and matches[2][0] != "@":
self.localref = self.localref + 1
ref = "gsr%d" % self.localref
s = self.find_or_create_source(ref)
source_ref.set_base_handle(s.get_handle())
s.set_title('Imported Source #%d' % self.localref)
s.set_note(matches[2] + self.parse_continue_data(level))
title = matches[2]
note = self.parse_continue_data(level)
handle = self.inline_srcs.get((title,note),Utils.create_id())
self.inline_srcs[(title,note)] = handle
self.ignore_sub_junk(level+1)
else:
source_ref.set_base_handle(self.find_or_create_source(matches[2][1:-1]).get_handle())
handle = self.find_or_create_source(matches[2][1:-1]).get_handle()
self.parse_source_reference(source_ref,level)
source_ref.set_base_handle(handle)
return source_ref
def resolve_refns(self):