diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index f5785e3d7..ad4b33e39 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,3 +1,6 @@ +2005-10-13 Don Allingham + * various: add explict calls to garbage collection + 2005-10-13 Alex Roitman * example/gramps/data.gramps: Update example data to conform with the format changes and the DTD. diff --git a/gramps2/src/AddMedia.py b/gramps2/src/AddMedia.py index 4fdcc64ac..8f662aaf1 100644 --- a/gramps2/src/AddMedia.py +++ b/gramps2/src/AddMedia.py @@ -30,6 +30,7 @@ Provides the interface to allow a person to add a media object to the database. # #------------------------------------------------------------------------- import os +import gc #------------------------------------------------------------------------- # @@ -172,10 +173,12 @@ class AddMediaObject: if val == gtk.RESPONSE_OK: self.on_savephoto_clicked() self.window.destroy() + gc.collect() return self.object elif val == gtk.RESPONSE_HELP: self.on_help_imagesel_clicked(None) else: self.window.destroy() + gc.collect() return None return None diff --git a/gramps2/src/AddSpouse.py b/gramps2/src/AddSpouse.py index a66d629f9..c50367624 100644 --- a/gramps2/src/AddSpouse.py +++ b/gramps2/src/AddSpouse.py @@ -34,6 +34,7 @@ __version__ = "$Revision$" # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -295,6 +296,7 @@ class AddSpouse: self.db.transaction_commit(trans,_("Add Spouse")) Utils.destroy_passed_object(obj) + gc.collect() m = Marriage.Marriage(self.parent, self.active_family, self.parent.db) m.on_add_clicked() diff --git a/gramps2/src/AddrEdit.py b/gramps2/src/AddrEdit.py index fabfe58a7..b2c40d807 100644 --- a/gramps2/src/AddrEdit.py +++ b/gramps2/src/AddrEdit.py @@ -31,6 +31,7 @@ mechanism for the user to edit address information. # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -154,11 +155,13 @@ class AddressEditor: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/AttrEdit.py b/gramps2/src/AttrEdit.py index 68377e098..e2dd738e9 100644 --- a/gramps2/src/AttrEdit.py +++ b/gramps2/src/AttrEdit.py @@ -34,6 +34,7 @@ __version__ = "$Revision$" # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -156,11 +157,13 @@ class AttributeEditor: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/ChooseParents.py b/gramps2/src/ChooseParents.py index aa635d6c4..e04b12475 100644 --- a/gramps2/src/ChooseParents.py +++ b/gramps2/src/ChooseParents.py @@ -34,6 +34,7 @@ __version__ = "$Revision$" # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -280,11 +281,13 @@ class ChooseParents: def on_delete_event(self,obj,b): self.remove_itself_from_menu() self.close_child_windows() + gc.collect() def close(self,obj): self.remove_itself_from_menu() self.close_child_windows() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): @@ -749,6 +752,7 @@ class ModifyParents: if self.val == gtk.RESPONSE_OK: self.save_parents_clicked() self.window.destroy() + gc.collect() def build_list(self,opt_menu,sel): store = gtk.ListStore(str) diff --git a/gramps2/src/ColumnOrder.py b/gramps2/src/ColumnOrder.py index fcbb3a45a..8920c1879 100644 --- a/gramps2/src/ColumnOrder.py +++ b/gramps2/src/ColumnOrder.py @@ -25,6 +25,9 @@ #------------------------------------------------------------------------- import gobject import gtk.glade + +import gc + import const from gettext import gettext as _ @@ -72,9 +75,11 @@ class ColumnOrder: self.model.get_value(node,2))) self.callback(newlist) self.top.destroy() + gc.collect() def cancel_clicked(self,obj): self.top.destroy() + gc.collect() def toggled(self, cell, path, model): node = model.get_iter((int(path),)) diff --git a/gramps2/src/DateEdit.py b/gramps2/src/DateEdit.py index 16b3e5993..39b017521 100644 --- a/gramps2/src/DateEdit.py +++ b/gramps2/src/DateEdit.py @@ -42,6 +42,7 @@ __version__ = "$Revision$" # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -275,6 +276,7 @@ class DateEditorDialog: else: break self.top_window.destroy() + gc.collect() def build_date_from_ui(self): """ diff --git a/gramps2/src/EditPerson.py b/gramps2/src/EditPerson.py index 53fd186bf..62f8bc0d4 100644 --- a/gramps2/src/EditPerson.py +++ b/gramps2/src/EditPerson.py @@ -27,6 +27,7 @@ #------------------------------------------------------------------------- import cPickle as pickle import os +import gc import locale import sets from gettext import gettext as _ @@ -136,7 +137,7 @@ class EditPerson: self.top = gtk.glade.XML(const.editPersonFile, "editPerson","gramps") self.window = self.get_widget("editPerson") self.window.set_title("%s - GRAMPS" % _('Edit Person')) - + self.icon_list = self.top.get_widget("iconlist") self.gallery = ImageSelect.Gallery(person, self.db.commit_person, self.path, self.icon_list, @@ -622,6 +623,7 @@ class EditPerson: self.child_windows = {} def close(self): + event_list = [] for col in self.event_list.get_columns(): event_list.append(self.event_trans.find_key(col.get_title())) @@ -632,6 +634,7 @@ class EditPerson: self.close_child_windows() self.remove_itself_from_winsmenu() self.window.destroy() + gc.collect() def add_itself_to_winsmenu(self): self.parent.child_windows[self.orig_handle] = self diff --git a/gramps2/src/EditPlace.py b/gramps2/src/EditPlace.py index d6e6ea53e..3d2c800e4 100644 --- a/gramps2/src/EditPlace.py +++ b/gramps2/src/EditPlace.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- import cPickle as pickle +import gc from gettext import gettext as _ #------------------------------------------------------------------------- @@ -267,12 +268,14 @@ class EditPlace: self.glry.close() self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.glry.close() self.close_child_windows() self.remove_itself_from_menu() self.top.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/EditSource.py b/gramps2/src/EditSource.py index 7a35baf45..4c5ff032e 100644 --- a/gramps2/src/EditSource.py +++ b/gramps2/src/EditSource.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -218,6 +219,7 @@ class EditSource: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def on_help_clicked(self,obj): """Display the relevant portion of GRAMPS manual""" @@ -228,6 +230,7 @@ class EditSource: self.close_child_windows() self.remove_itself_from_menu() self.top.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/EventEdit.py b/gramps2/src/EventEdit.py index adfbdd2aa..e34af7064 100644 --- a/gramps2/src/EventEdit.py +++ b/gramps2/src/EventEdit.py @@ -27,6 +27,7 @@ #------------------------------------------------------------------------- from gettext import gettext as _ import sets +import gc #------------------------------------------------------------------------- # @@ -249,12 +250,14 @@ class EventEditor: self.gallery.close() self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.gallery.close() self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/ImageSelect.py b/gramps2/src/ImageSelect.py index f259cb5d1..d18cda92a 100644 --- a/gramps2/src/ImageSelect.py +++ b/gramps2/src/ImageSelect.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- import os +import gc import urlparse from gettext import gettext as _ @@ -140,6 +141,7 @@ class ImageSelect: if self.val == gtk.RESPONSE_OK: self.on_savephoto_clicked() self.window.destroy() + gc.collect() def on_help_imagesel_clicked(self,obj): """Display the relevant portion of GRAMPS manual""" @@ -781,11 +783,13 @@ class LocalMediaProperties: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): @@ -1055,11 +1059,13 @@ class GlobalMediaProperties: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/NameEdit.py b/gramps2/src/NameEdit.py index 0e94fc61d..ace962ae7 100644 --- a/gramps2/src/NameEdit.py +++ b/gramps2/src/NameEdit.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -202,11 +203,13 @@ class NameEditor: def on_delete_event(self,*obj): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,*obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/NoteEdit.py b/gramps2/src/NoteEdit.py index 995d36877..b6885ea19 100644 --- a/gramps2/src/NoteEdit.py +++ b/gramps2/src/NoteEdit.py @@ -34,6 +34,8 @@ import gtk.glade # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc + import const import Utils import Spell @@ -96,10 +98,12 @@ class NoteEditor: def on_delete_event(self,*obj): self.remove_itself_from_menu() + gc.collect() def close(self,*obj): self.remove_itself_from_menu() self.top.destroy() + gc.collect() def add_itself_to_menu(self): self.parent.child_windows[self.win_key] = self diff --git a/gramps2/src/SelectChild.py b/gramps2/src/SelectChild.py index a8da6decd..365cdb7f5 100644 --- a/gramps2/src/SelectChild.py +++ b/gramps2/src/SelectChild.py @@ -27,6 +27,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -143,10 +144,12 @@ class SelectChild: def on_delete_event(self,obj,b): self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.remove_itself_from_menu() self.top.destroy() + gc.collect() def add_itself_to_menu(self): self.parent.child_windows[self] = self diff --git a/gramps2/src/SelectObject.py b/gramps2/src/SelectObject.py index 0eeecaab0..33d72cbc4 100644 --- a/gramps2/src/SelectObject.py +++ b/gramps2/src/SelectObject.py @@ -31,6 +31,7 @@ # #------------------------------------------------------------------------- import os +import gc #------------------------------------------------------------------------- # @@ -148,7 +149,9 @@ class SelectObject: else: return_value = None self.top.destroy() + gc.collect() return return_value else: self.top.destroy() + gc.collect() return None diff --git a/gramps2/src/SelectPerson.py b/gramps2/src/SelectPerson.py index e73742a00..b36178b1c 100644 --- a/gramps2/src/SelectPerson.py +++ b/gramps2/src/SelectPerson.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -109,7 +110,9 @@ class SelectPerson: else: return_value = None self.top.destroy() + gc.collect() return return_value else: self.top.destroy() + gc.collect() return None diff --git a/gramps2/src/Sources.py b/gramps2/src/Sources.py index 51650d94d..ff4366ec3 100644 --- a/gramps2/src/Sources.py +++ b/gramps2/src/Sources.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -130,11 +131,13 @@ class SourceSelector: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): @@ -439,11 +442,13 @@ class SourceEditor: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() self.sourceDisplay.destroy() + gc.collect() def close_child_windows(self): for child_window in self.child_windows.values(): diff --git a/gramps2/src/UrlEdit.py b/gramps2/src/UrlEdit.py index f8f86b40d..ab448b56b 100644 --- a/gramps2/src/UrlEdit.py +++ b/gramps2/src/UrlEdit.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -97,10 +98,12 @@ class UrlEditor: def on_delete_event(self,*obj): self.remove_itself_from_menu() + gc.collect() def close(self,*obj): self.remove_itself_from_menu() self.window.destroy() + gc.collect() def add_itself_to_menu(self): self.parent.child_windows[self.win_key] = self diff --git a/gramps2/src/Witness.py b/gramps2/src/Witness.py index 7bec40e8b..56b4c3a94 100644 --- a/gramps2/src/Witness.py +++ b/gramps2/src/Witness.py @@ -26,6 +26,7 @@ # #------------------------------------------------------------------------- from gettext import gettext as _ +import gc #------------------------------------------------------------------------- # @@ -184,10 +185,12 @@ class WitnessEditor: def on_delete_event(self,obj,b): self.remove_itself_from_menu() + gc.collect() def close(self,obj): self.remove_itself_from_menu() self.window.destroy() + gc.collect() def add_itself_to_menu(self): self.parent.parent.child_windows[self.win_key] = self