Bug 2616. Fixes for memory leaks in source and place editors
svn: r12152
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||||
# 2009 Gary Burton
|
# Copyright (C) 2009 Gary Burton
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -126,6 +126,8 @@ class EditPlace(EditPrimary):
|
|||||||
notebook.remove_page(0)
|
notebook.remove_page(0)
|
||||||
self.mloc = MainLocTab(self.dbstate, self.uistate, self.track,
|
self.mloc = MainLocTab(self.dbstate, self.uistate, self.track,
|
||||||
_('_Location'), tblmloc)
|
_('_Location'), tblmloc)
|
||||||
|
self.track_ref_for_deletion("mloc")
|
||||||
|
|
||||||
|
|
||||||
def get_menu_title(self):
|
def get_menu_title(self):
|
||||||
if self.obj and self.obj.get_handle():
|
if self.obj and self.obj.get_handle():
|
||||||
@@ -223,40 +225,55 @@ class EditPlace(EditPrimary):
|
|||||||
|
|
||||||
self._add_tab(notebook, self.mloc)
|
self._add_tab(notebook, self.mloc)
|
||||||
|
|
||||||
self.loc_list = self._add_tab(
|
self.loc_list = LocationEmbedList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
LocationEmbedList(self.dbstate,self.uistate, self.track,
|
self.track,
|
||||||
self.obj.alt_loc))
|
self.obj.alt_loc)
|
||||||
|
self._add_tab(notebook, self.loc_list)
|
||||||
|
self.track_ref_for_deletion("loc_list")
|
||||||
|
|
||||||
self.srcref_list = self._add_tab(
|
self.srcref_list = SourceEmbedList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
SourceEmbedList(self.dbstate,self.uistate,self.track,self.obj))
|
self.track,
|
||||||
|
self.obj)
|
||||||
|
self._add_tab(notebook, self.srcref_list)
|
||||||
|
self.track_ref_for_deletion("srcref_list")
|
||||||
|
|
||||||
self.note_tab = self._add_tab(
|
self.note_tab = NoteTab(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
NoteTab(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj.get_note_list(), self.get_menu_title(),
|
self.obj.get_note_list(),
|
||||||
notetype=gen.lib.NoteType.PLACE))
|
self.get_menu_title(),
|
||||||
|
notetype=gen.lib.NoteType.PLACE)
|
||||||
|
self._add_tab(notebook, self.note_tab)
|
||||||
|
self.track_ref_for_deletion("note_tab")
|
||||||
|
|
||||||
self.gallery_tab = self._add_tab(
|
self.gallery_tab = GalleryTab(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
GalleryTab(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj.get_media_list()))
|
self.obj.get_media_list())
|
||||||
|
self._add_tab(notebook, self.gallery_tab)
|
||||||
|
self.track_ref_for_deletion("gallery_tab")
|
||||||
|
|
||||||
self.web_list = self._add_tab(
|
self.web_list = WebEmbedList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
WebEmbedList(self.dbstate,self.uistate,self.track,
|
self.track,
|
||||||
self.obj.get_url_list()))
|
self.obj.get_url_list())
|
||||||
|
self._add_tab(notebook, self.web_list)
|
||||||
|
self.track_ref_for_deletion("web_list")
|
||||||
|
|
||||||
self.backref_list = self._add_tab(
|
self.backref_list = PlaceBackRefList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
PlaceBackRefList(self.dbstate,self.uistate,self.track,
|
self.track,
|
||||||
self.db.find_backlink_handles(self.obj.handle)))
|
self.db.find_backlink_handles(self.obj.handle))
|
||||||
|
self.backref_tab = self._add_tab(notebook, self.backref_list)
|
||||||
|
self.track_ref_for_deletion("backref_list")
|
||||||
|
self.track_ref_for_deletion("backref_tab")
|
||||||
|
|
||||||
self._setup_notebook_tabs(notebook)
|
self._setup_notebook_tabs(notebook)
|
||||||
|
|
||||||
def _cleanup_on_exit(self):
|
def _cleanup_on_exit(self):
|
||||||
self.backref_list.close()
|
self.backref_tab.close()
|
||||||
|
|
||||||
def save(self, *obj):
|
def save(self, *obj):
|
||||||
self.ok_button.set_sensitive(False)
|
self.ok_button.set_sensitive(False)
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||||
# 2009 Gary Burton
|
# Copyright (C) 2009 Gary Burton
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@@ -121,33 +121,45 @@ class EditSource(EditPrimary):
|
|||||||
def _create_tabbed_pages(self):
|
def _create_tabbed_pages(self):
|
||||||
notebook = gtk.Notebook()
|
notebook = gtk.Notebook()
|
||||||
|
|
||||||
self.note_tab = self._add_tab(
|
self.note_tab = NoteTab(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
NoteTab(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj.get_note_list(), self.get_menu_title(),
|
self.obj.get_note_list(),
|
||||||
gen.lib.NoteType.SOURCE))
|
self.get_menu_title(),
|
||||||
|
gen.lib.NoteType.SOURCE)
|
||||||
|
self._add_tab(notebook, self.note_tab)
|
||||||
|
self.track_ref_for_deletion("note_tab")
|
||||||
|
|
||||||
self.gallery_tab = self._add_tab(
|
self.gallery_tab = GalleryTab(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
GalleryTab(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj.get_media_list()))
|
self.obj.get_media_list())
|
||||||
|
self._add_tab(notebook, self.gallery_tab)
|
||||||
|
self.track_ref_for_deletion("gallery_tab")
|
||||||
|
|
||||||
self.data_tab = self._add_tab(
|
self.data_tab = DataEmbedList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
DataEmbedList(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj))
|
self.obj)
|
||||||
|
self._add_tab(notebook, self.data_tab)
|
||||||
|
self.track_ref_for_deletion("data_tab")
|
||||||
|
|
||||||
self.repo_tab = self._add_tab(
|
self.repo_tab = RepoEmbedList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
RepoEmbedList(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.obj.get_reporef_list()))
|
self.obj.get_reporef_list())
|
||||||
|
self._add_tab(notebook, self.repo_tab)
|
||||||
|
self.track_ref_for_deletion("repo_tab")
|
||||||
|
|
||||||
self.backref_tab = self._add_tab(
|
self.backref_list = SourceBackRefList(self.dbstate,
|
||||||
notebook,
|
self.uistate,
|
||||||
SourceBackRefList(self.dbstate, self.uistate, self.track,
|
self.track,
|
||||||
self.db.find_backlink_handles(self.obj.handle)))
|
self.db.find_backlink_handles(self.obj.handle))
|
||||||
|
self.backref_tab = self._add_tab(notebook, self.backref_list)
|
||||||
|
self.track_ref_for_deletion("backref_tab")
|
||||||
|
self.track_ref_for_deletion("backref_list")
|
||||||
|
|
||||||
self._setup_notebook_tabs( notebook)
|
self._setup_notebook_tabs(notebook)
|
||||||
notebook.show_all()
|
notebook.show_all()
|
||||||
self.glade.get_widget('vbox').pack_start(notebook, True)
|
self.glade.get_widget('vbox').pack_start(notebook, True)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user