diff --git a/ChangeLog b/ChangeLog index 7f1c72956..ebeebaee1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-08-29 Don Allingham + * src/RelLib/_Source.py: fix fast unserialize() + * src/RelLib/_Place.py: fix fast unserialize() + * src/GrampsDbUtils/_WriteGedcom.py: double pass on progress bar + 2007-08-29 Don Allingham * src/GrampsDb/_GrampsDBDir.py: fast unserialize() * src/Editors/_EditPerson.py: fast unserialize() diff --git a/src/GrampsDbUtils/_WriteGedcom.py b/src/GrampsDbUtils/_WriteGedcom.py index b2107aa5f..3984af1f1 100644 --- a/src/GrampsDbUtils/_WriteGedcom.py +++ b/src/GrampsDbUtils/_WriteGedcom.py @@ -321,8 +321,6 @@ class GedcomWriter(UpdateCallback): ErrorDialog(_("Could not create %s") % filename) return 0 - self.set_total(len(self.db.get_person_handles()) + len(self.db.get_family_handles())) - self.__write_header(filename) self.__write_submitter() self.__write_individuals() @@ -435,13 +433,23 @@ class GedcomWriter(UpdateCallback): """ INDIVIDUAL RECORDS """ + + phandles = self.db.get_person_handles() + + hcnt = len(phandles) + + self.reset() + self.set_total(hcnt) sorted = [] - for handle in self.db.get_person_handles(): + for handle in phandles: person = self.db.get_person_from_handle (handle) data = (person.get_gramps_id (), handle) sorted.append (data) + self.update() sorted.sort() + self.set_total(hcnt + len(self.db.get_family_handles())) + self.reset() for data in sorted: self.__write_person(self.db.get_person_from_handle(data[1])) self.update() diff --git a/src/RelLib/_Place.py b/src/RelLib/_Place.py index 4940e43e5..0da0918cf 100644 --- a/src/RelLib/_Place.py +++ b/src/RelLib/_Place.py @@ -129,7 +129,8 @@ class Place(SourceBase, NoteBase, MediaBase, UrlBase, PrimaryObject): self.main_loc = new.instance(Location, None).unserialize(main_loc) self.alt_loc = [new.instance(Location, None).unserialize(al) for al in alt_loc] - self.marker = new.instance(MarkerType, None).unserialize(marker) + self.marker = new.instance(MarkerType, None) + self.marker.unserialize(marker) UrlBase.unserialize(self, urls) MediaBase.unserialize(self, media_list) SourceBase.unserialize(self, source_list) diff --git a/src/RelLib/_Source.py b/src/RelLib/_Source.py index dfa1e0ba6..ec39f636c 100644 --- a/src/RelLib/_Source.py +++ b/src/RelLib/_Source.py @@ -52,6 +52,7 @@ class Source(MediaBase, NoteBase, PrimaryObject): PrimaryObject.__init__(self) MediaBase.__init__(self) NoteBase.__init__(self) + self.marker = MarkerType() self.title = "" self.author = "" self.pubinfo = "" @@ -81,7 +82,8 @@ class Source(MediaBase, NoteBase, PrimaryObject): self.abbrev, self.change, self.datamap, reporef_list, marker, self.private) = data - self.marker = new.instance(MarkerType, None).unserialize(marker) + self.marker = new.instance(MarkerType, None) + self.marker.unserialize(marker) NoteBase.unserialize(self, note_list) MediaBase.unserialize(self, media_list) self.reporef_list = [new.instance(RepoRef, None).unserialize(rr)