diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index 671f3c26b..d79f3050c 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,3 +1,26 @@ +2005-10-22 Don Allingham + * src/AddMedia.py: signal_autoconnect changes + * src/AddSpouse.py: signal_autoconnect changes + * src/AttrEdit.py: signal_autoconnect changes + * src/Bookmarks.py: signal_autoconnect changes + * src/ChooseParents.py: signal_autoconnect changes + * src/DateEdit.py: signal_autoconnect changes + * src/EventEdit.py: signal_autoconnect changes + * src/Exporter.py: signal_autoconnect changes + * src/GenericFilter.py: signal_autoconnect changes + * src/ImageSelect.py: signal_autoconnect changes + * src/LocEdit.py: signal_autoconnect changes + * src/Marriage.py: signal_autoconnect changes + * src/MediaView.py: signal_autoconnect changes + * src/NameEdit.py: signal_autoconnect changes + * src/SelectChild.py: signal_autoconnect changes + * src/Sources.py: signal_autoconnect changes + * src/TransUtils.py: signal_autoconnect changes + * src/UrlEdit.py: signal_autoconnect changes + * src/Utils.py: signal_autoconnect changes + * src/Witness.py: signal_autoconnect changes + * src/gramps.glade: signal_autoconnect changes + 2005-10-22 Julio Sanchez * src/WriteGedcom.py: Media objects for families, preparation for media objects for other entities diff --git a/gramps2/src/AddMedia.py b/gramps2/src/AddMedia.py index 8f662aaf1..c2477d792 100644 --- a/gramps2/src/AddMedia.py +++ b/gramps2/src/AddMedia.py @@ -46,6 +46,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- from QuestionDialog import ErrorDialog +from WindowUtils import GladeIf import gtk.glade #------------------------------------------------------------------------- @@ -90,12 +91,9 @@ class AddMediaObject: Utils.set_titles(self.window,self.glade.get_widget('title'), _('Select a media object')) - - self.glade.signal_autoconnect({ - "on_fname_update_preview" : self.on_name_changed, - "on_help_imagesel_clicked" : self.on_help_imagesel_clicked, - }) - + + self.gladeif = GladeIf(self.glade) + self.gladeif.connect('fname', 'update_preview', self.on_name_changed) self.window.show() def internal_toggled(self, obj): diff --git a/gramps2/src/AddSpouse.py b/gramps2/src/AddSpouse.py index cab6fcaf4..73d819383 100644 --- a/gramps2/src/AddSpouse.py +++ b/gramps2/src/AddSpouse.py @@ -55,7 +55,6 @@ import const import Utils import PeopleModel import Date -import DateHandler import Marriage import NameDisplay import GenericFilter @@ -311,57 +310,6 @@ class AddSpouse: def relation_type_changed(self,obj): gobject.idle_add(self.update_data) - def all_filter(self, person): - return person.get_gender() != self.sgender - - def likely_filter(self, person): - if person.get_gender() == self.sgender: - return False - - pd_id = person.get_death_handle() - pb_id = person.get_birth_handle() - - if pd_id: - pdday = self.db.get_event_from_handle(pd_id).get_date_object() - else: - pdday = Date.Date() - - if pb_id: - pbday = self.db.get_event_from_handle(pb_id).get_date_object() - else: - pbday = Date.Date() - - if self.bday.get_year_valid(): - if pbday.get_year_valid(): - # reject if person birthdate differs more than - # 100 years from spouse birthdate - if abs(pbday.get_year() - self.bday.get_year()) > 100: - return 0 - - if pdday.get_year_valid(): - # reject if person birthdate is after the spouse deathdate - if self.bday.get_year() + 10 > pdday.get_high_year(): - return 0 - - # reject if person birthdate is more than 100 years - # before the spouse deathdate - if self.bday.get_high_year() + 100 < pdday.get_year(): - return 0 - - if self.dday.get_year_valid(): - if pbday.get_year_valid(): - # reject if person deathdate was prior to - # the spouse birthdate - if self.dday.get_high_year() < pbday.get_year() + 10: - return 0 - - if pdday.get_year_valid(): - # reject if person deathdate differs more than - # 100 years from spouse deathdate - if abs(pdday.get_year() - self.dday.get_year()) > 100: - return 0 - return 1 - def set_gender(self): if self.rel_combo.get_active() == RelLib.Family.CIVIL_UNION: if self.gender == RelLib.Person.MALE: diff --git a/gramps2/src/AttrEdit.py b/gramps2/src/AttrEdit.py index 2b5db6e48..ed5febb42 100644 --- a/gramps2/src/AttrEdit.py +++ b/gramps2/src/AttrEdit.py @@ -58,6 +58,7 @@ import Spell import GrampsDisplay from QuestionDialog import WarningDialog +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -142,13 +143,12 @@ class AttributeEditor: else: self.flowed.set_active(1) - self.top.signal_autoconnect({ - "on_help_attr_clicked" : self.on_help_clicked, - "on_ok_attr_clicked" : self.on_ok_clicked, - "on_cancel_attr_clicked" : self.close, - "on_attr_edit_delete_event" : self.on_delete_event, - "on_switch_page" : self.on_switch_page - }) + self.gladeif = GladeIf(self.top) + self.gladeif.connect('attr_edit','delete_event', self.on_delete_event) + self.gladeif.connect('button116', 'clicked', self.close) + self.gladeif.connect('button115', 'clicked', self.on_ok_clicked) + self.gladeif.connect('button127', 'clicked', self.on_help_clicked) + self.gladeif.connect('notebook', 'on_switch_page', self.on_switch_page) if parent_window: self.window.set_transient_for(parent_window) @@ -158,11 +158,13 @@ class AttributeEditor: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + self.gladeif.close() gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() + self.gladeif.close() self.window.destroy() gc.collect() diff --git a/gramps2/src/Bookmarks.py b/gramps2/src/Bookmarks.py index 533c83f29..2d89c40c1 100644 --- a/gramps2/src/Bookmarks.py +++ b/gramps2/src/Bookmarks.py @@ -168,7 +168,7 @@ class Bookmarks : if person: name = NameDisplay.displayer.display(person) gramps_id = person.get_gramps_id() - new_iter = self.namemodel.add([name,gramps_id,person_handle]) + self.namemodel.add([name,gramps_id,person_handle]) self.namemodel.connect_model() self.response = self.top.run() diff --git a/gramps2/src/ChooseParents.py b/gramps2/src/ChooseParents.py index 3daef0959..0dc03c4d0 100644 --- a/gramps2/src/ChooseParents.py +++ b/gramps2/src/ChooseParents.py @@ -60,6 +60,7 @@ import NameDisplay import DateHandler import GenericFilter from QuestionDialog import ErrorDialog, WarningDialog +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -124,6 +125,7 @@ class ChooseParents: self.father = None self.glade = gtk.glade.XML(const.gladeFile,"familyDialog","gramps") + self.gladeif = GladeIf(self.glade) self.window = self.glade.get_widget("familyDialog") self.flabel = self.glade.get_widget("flabel") self.mlabel = self.glade.get_widget("mlabel") @@ -167,18 +169,15 @@ class ChooseParents: self.type = RelLib.Family.MARRIED self.prel.set_active(self.type) - - self.glade.signal_autoconnect({ - "on_add_parent_clicked" : self.add_parent_clicked, - "on_prel_changed" : self.parent_relation_changed, - "destroy_passed_object" : self.close, - "on_showallf_toggled" : self.showallf_toggled, - "on_showallm_toggled" : self.showallm_toggled, - "on_save_parents_clicked" : self.save_parents_clicked, - "on_help_familyDialog_clicked" : self.on_help_clicked, - "on_familyDialog_delete_event" : self.on_delete_event, - }) + self.gladeif.connect('familyDialog','delete_event', self.on_delete_event) + self.gladeif.connect('button44','clicked', self.close) + self.gladeif.connect('button42','clicked', self.save_parents_clicked) + self.gladeif.connect('button167','clicked', self.on_help_clicked) + self.gladeif.connect('button123','clicked', self.add_parent_clicked) + self.gladeif.connect('showallf','toggled', self.showallf_toggled) + self.gladeif.connect('prel_combo','changed', self.parent_relation_changed) + self.keys = const.child_rel_list self.build_list(self.mcombo,mrel) self.build_list(self.fcombo,frel) @@ -279,11 +278,13 @@ class ChooseParents: tree.append_column(column) def on_delete_event(self,obj,b): + self.gladeif.close() self.remove_itself_from_menu() self.close_child_windows() gc.collect() def close(self,obj): + self.gladeif.close() self.remove_itself_from_menu() self.close_child_windows() self.window.destroy() @@ -680,6 +681,7 @@ class ModifyParents: self.mother = self.db.get_person_from_handle(mid) self.glade = gtk.glade.XML(const.gladeFile,"modparents","gramps") + self.gladeif = GladeIf(self.glade) self.window = self.glade.get_widget("modparents") self.title = self.glade.get_widget("title") @@ -701,9 +703,7 @@ class ModifyParents: self.orig_mrel = mr self.orig_frel = fr - self.glade.signal_autoconnect({ - "on_parents_help_clicked" : self.on_help_clicked, - }) + self.gladeif.connect('button165','clicked', self.on_help_clicked) self.title.set_use_markup(True) @@ -751,6 +751,7 @@ class ModifyParents: self.val = self.window.run() if self.val == gtk.RESPONSE_OK: self.save_parents_clicked() + self.gladeif.close() self.window.destroy() gc.collect() diff --git a/gramps2/src/DateEdit.py b/gramps2/src/DateEdit.py index 39b017521..4db35a787 100644 --- a/gramps2/src/DateEdit.py +++ b/gramps2/src/DateEdit.py @@ -52,7 +52,6 @@ import gc import gtk import gtk.gdk import gtk.glade -import gobject #------------------------------------------------------------------------- # @@ -63,7 +62,6 @@ import Date import DateHandler import const import Utils -import QuestionDialog import GrampsDisplay #------------------------------------------------------------------------- diff --git a/gramps2/src/EventEdit.py b/gramps2/src/EventEdit.py index 65754ca25..708e00074 100644 --- a/gramps2/src/EventEdit.py +++ b/gramps2/src/EventEdit.py @@ -57,6 +57,7 @@ import Spell import GrampsDisplay from QuestionDialog import WarningDialog, ErrorDialog +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -111,6 +112,7 @@ class EventEditor: self.date = Date.Date(None) self.top = gtk.glade.XML(const.dialogFile, "event_edit","gramps") + self.gladeif = GladeIf(self.top) self.window = self.top.get_widget("event_edit") title_label = self.top.get_widget('title') @@ -223,18 +225,15 @@ class EventEditor: self.path, self.icon_list, self.db,self,self.window) - self.top.signal_autoconnect({ - "on_switch_page" : self.on_switch_page, - "on_help_event_clicked" : self.on_help_clicked, - "on_ok_event_clicked" : self.on_event_edit_ok_clicked, - "on_cancel_event_clicked" : self.close, - "on_event_edit_delete_event": self.on_delete_event, - "on_addphoto_clicked" : self.gallery.on_add_media_clicked, - "on_selectphoto_clicked" : self.gallery.on_select_media_clicked, - "on_deletephoto_clicked" : self.gallery.on_delete_media_clicked, - "on_edit_properties_clicked": self.gallery.popup_change_description, - "on_editphoto_clicked" : self.gallery.on_edit_media_clicked, - }) + self.gladeif.connect('event_edit','delete_event',self.on_delete_event) + self.gladeif.connect('button111','clicked',self.close) + self.gladeif.connect('ok','clicked',self.on_event_edit_ok_clicked) + self.gladeif.connect('button126','clicked',self.on_help_clicked) + self.gladeif.connect('notebook','on_switch_page',self.on_switch_page) + self.gladeif.connect('add_obj','clicked',self.gallery.on_add_media_clicked) + self.gladeif.connect('sel_obj','clicked',self.gallery.on_select_media_clicked) + self.gladeif.connect('button172','clicked',self.gallery.on_edit_media_clicked) + self.gladeif.connect('del_obj','clicked',self.gallery.on_delete_media_clicked) self.top.get_widget('del_obj').set_sensitive(not noedit) self.top.get_widget('sel_obj').set_sensitive(not noedit) @@ -248,12 +247,14 @@ class EventEditor: self.window.show() def on_delete_event(self,obj,b): + self.gladeif.close() self.gallery.close() self.close_child_windows() self.remove_itself_from_menu() gc.collect() def close(self,obj): + self.gladeif.close() self.gallery.close() self.close_child_windows() self.remove_itself_from_menu() diff --git a/gramps2/src/Exporter.py b/gramps2/src/Exporter.py index 05f0f0c8e..e1cb27012 100644 --- a/gramps2/src/Exporter.py +++ b/gramps2/src/Exporter.py @@ -28,7 +28,6 @@ # #------------------------------------------------------------------------- import os -import shutil from gettext import gettext as _ #------------------------------------------------------------------------- diff --git a/gramps2/src/GenericFilter.py b/gramps2/src/GenericFilter.py index 95ed6515b..a2ddd4c4f 100644 --- a/gramps2/src/GenericFilter.py +++ b/gramps2/src/GenericFilter.py @@ -612,7 +612,7 @@ class IsSiblingOfFilterMatch(Rule): fam = self.db.get_family_from_handle(fam_id) if fam: for child_handle in fam.get_child_handle_list(): - if child_handle != handle: + if child_handle != person.handle: self.map[child_handle] = 1 #------------------------------------------------------------------------- @@ -1981,7 +1981,7 @@ class GenericFilter: def xor_test(self,db,person): test = False for rule in self.flist: - test = test ^ rule.apply(db,handle) + test = test ^ rule.apply(db,person) return test def one_test(self,db,person): diff --git a/gramps2/src/ImageSelect.py b/gramps2/src/ImageSelect.py index 8944ad787..8e95ae65a 100644 --- a/gramps2/src/ImageSelect.py +++ b/gramps2/src/ImageSelect.py @@ -69,6 +69,7 @@ import GrampsDisplay from QuestionDialog import ErrorDialog from DdTargets import DdTargets +from WindowUtils import GladeIf _IMAGEX = 140 _IMAGEY = 150 @@ -77,6 +78,12 @@ _PAD = 5 _last_path = "" _iconlist_refs = [] +_drag_targets = [ + ('STRING', 0, 0), + ('text/plain',0,0), + ('text/uri-list',0,2), + ('application/x-rootwin-drop',0,1)] + #------------------------------------------------------------------------- # # ImageSelect class @@ -225,12 +232,6 @@ class ImageSelect: """Save the photo in the dataobj object - must be overridden""" pass -_drag_targets = [ - ('STRING', 0, 0), - ('text/plain',0,0), - ('text/uri-list',0,2), - ('application/x-rootwin-drop',0,1)] - #------------------------------------------------------------------------- # # Gallery class - This class handles all the logic underlying a @@ -766,17 +767,16 @@ class LocalMediaProperties: else: self.flowed.set_active(1) - self.change_dialog.signal_autoconnect({ - "on_add_attr_clicked": self.on_add_attr_clicked, - "on_notebook_switch_page": self.on_notebook_switch_page, - "on_update_attr_clicked": self.on_update_attr_clicked, - "on_delete_attr_clicked" : self.on_delete_attr_clicked, - "on_help_clicked" : self.on_help_clicked, - "on_ok_clicked" : self.on_ok_clicked, - "on_cancel_clicked" : self.close, - "on_local_delete_event" : self.on_delete_event, - }) - + self.gladeif = GladeIf(self.change_dialog) + self.gladeif.connect('change_description','delete_event',self.on_delete_event) + self.gladeif.connect('button84','clicked',self.close) + self.gladeif.connect('ok','clicked',self.on_ok_clicked) + self.gladeif.connect('button104','clicked',self.on_help_clicked) + self.gladeif.connect('notebook1','switch_page',self.on_notebook_switch_page) + self.gladeif.connect('button86','clicked',self.on_add_attr_clicked) + self.gladeif.connect('button100','clicked',self.on_update_attr_clicked) + self.gladeif.connect('button88','clicked',self.on_delete_attr_clicked) + media_obj = self.db.get_object_from_handle(self.photo.get_reference_handle()) gnote = self.change_dialog.get_widget('global_notes') spell = Spell.Spell(gnote) @@ -790,11 +790,13 @@ class LocalMediaProperties: self.window.show() def on_delete_event(self,obj,b): + self.gladeif.close() self.close_child_windows() self.remove_itself_from_menu() gc.collect() def close(self,obj): + self.gladeif.close() self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() @@ -946,6 +948,7 @@ class GlobalMediaProperties: self.win_key = obj.get_handle() else: self.win_key = self + self.pdmap = {} self.child_windows = {} self.obj = obj self.lists_changed = 0 @@ -962,6 +965,7 @@ class GlobalMediaProperties: self.path = self.db.get_save_path() self.change_dialog = gtk.glade.XML(const.imageselFile, "change_global","gramps") + self.gladeif = GladeIf(self.change_dialog) mode = not self.db.readonly @@ -1033,7 +1037,8 @@ class GlobalMediaProperties: pb = ImgManip.get_thumbnail_image(self.obj.get_path(),mtype) self.pixmap.set_from_pixbuf(pb) descr = Utils.get_mime_description(mtype) - self.change_dialog.get_widget("type").set_text(descr) + if descr: + self.change_dialog.get_widget("type").set_text(descr) else: self.change_dialog.get_widget("type").set_text(_('Note')) self.pixmap.hide() @@ -1050,20 +1055,14 @@ class GlobalMediaProperties: else: self.flowed.set_active(1) - self.change_dialog.signal_autoconnect({ - "on_cancel_clicked" : self.close, - "on_up_clicked" : self.on_up_clicked, - "on_down_clicked" : self.on_down_clicked, - "on_ok_clicked" : self.on_ok_clicked, - "on_apply_clicked" : self.on_apply_clicked, - "on_add_attr_clicked" : self.on_add_attr_clicked, - "on_notebook_switch_page": self.on_notebook_switch_page, - "on_delete_attr_clicked" : self.on_delete_attr_clicked, - "on_update_attr_clicked" : self.on_update_attr_clicked, - "on_help_clicked" : self.on_help_clicked, - "on_global_delete_event" : self.on_delete_event, - }) - + self.gladeif.connect('change_global','delete_event',self.on_delete_event) + self.gladeif.connect('button91','clicked',self.close) + self.gladeif.connect('ok','clicked',self.on_ok_clicked) + self.gladeif.connect('button102','clicked',self.on_help_clicked) + self.gladeif.connect('notebook2','switch_page',self.on_notebook_switch_page) + self.gladeif.connect('add_attr','clicked',self.on_add_attr_clicked) + self.gladeif.connect('button101','clicked',self.on_update_attr_clicked) + self.gladeif.connect('del_attr','clicked',self.on_delete_attr_clicked) for name in ['gl_del_src','gl_add_src','add_attr','del_attr','ok']: self.change_dialog.get_widget(name).set_sensitive(mode) @@ -1221,7 +1220,6 @@ class GlobalMediaProperties: self.db.add_place(place,trans) self.db.transaction_commit(trans,_('Add Place (%s)' % text)) self.pdmap[text] = place.get_handle() - self.add_places.append(place) return place.get_handle() else: return None diff --git a/gramps2/src/LocEdit.py b/gramps2/src/LocEdit.py index b644f8b47..07f8d44bf 100644 --- a/gramps2/src/LocEdit.py +++ b/gramps2/src/LocEdit.py @@ -37,6 +37,7 @@ import const import Utils import RelLib import GrampsDisplay +from WindowUtils import GladeIf from gettext import gettext as _ @@ -59,6 +60,8 @@ class LocationEditor: self.win_key = self self.location = location self.top = gtk.glade.XML(const.dialogFile, "loc_edit","gramps") + self.gladeif = GladeIf(self.top) + self.window = self.top.get_widget("loc_edit") self.city = self.top.get_widget("city") self.state = self.top.get_widget("state") @@ -81,22 +84,23 @@ class LocationEditor: self.parish.set_text(location.get_parish()) self.window.set_data("o",self) - self.top.signal_autoconnect({ - "on_help_loc_clicked" : self.on_help_clicked, - "on_ok_loc_clicked" : self.on_location_edit_ok_clicked, - "on_cancel_loc_clicked" : self.close, - "on_loc_delete_event" : self.on_delete_event, - }) + self.gladeif.connect('loc_edit','delete_event',self.on_delete_event) + self.gladeif.connect('button119','clicked',self.close) + self.gladeif.connect('button118','clicked',self.on_ok_clicked) + self.gladeif.connect('button128','clicked',self.on_help_clicked) + if parent_window: self.window.set_transient_for(parent_window) self.add_itself_to_menu() self.window.show() def on_delete_event(self,obj,b): + self.gladeif.close() self.remove_itself_from_menu() def close(self,obj): + self.gladeif.close() self.remove_itself_from_menu() self.window.destroy() @@ -118,7 +122,7 @@ class LocationEditor: """Display the relevant portion of GRAMPS manual""" GrampsDisplay.help('gramps-edit-complete') - def on_location_edit_ok_clicked(self,obj): + def on_ok_clicked(self,obj): city = unicode(self.city.get_text()) county = unicode(self.county.get_text()) country = unicode(self.country.get_text()) diff --git a/gramps2/src/Marriage.py b/gramps2/src/Marriage.py index a0ec0a7de..778aca5a1 100644 --- a/gramps2/src/Marriage.py +++ b/gramps2/src/Marriage.py @@ -62,6 +62,7 @@ import GrampsDisplay from QuestionDialog import QuestionDialog, WarningDialog, SaveDialog from DdTargets import DdTargets +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -109,6 +110,8 @@ class Marriage: self.pmap[p[0]] = key self.top = gtk.glade.XML(const.marriageFile,"marriageEditor","gramps") + self.gladeif = GladeIf(self.top) + self.window = self.get_widget("marriageEditor") Utils.set_titles(self.window, self.top.get_widget('title'), @@ -118,27 +121,23 @@ class Marriage: self.gallery = ImageSelect.Gallery(family, self.db.commit_family, self.path, self.icon_list, db, self) - self.top.signal_autoconnect({ - "destroy_passed_object" : self.on_cancel_edit, - "on_help_marriage_editor" : self.on_help_clicked, - "on_add_attr_clicked" : self.on_add_attr_clicked, - "on_delete_attr_clicked" : self.on_delete_attr_clicked, - "on_addphoto_clicked" : self.gallery.on_add_media_clicked, - "on_selectphoto_clicked" : self.gallery.on_select_media_clicked, - "on_close_marriage_editor" : self.on_close_marriage_editor, - "on_delete_event" : self.on_delete_event, - "on_lds_src_clicked" : self.lds_src_clicked, - "on_lds_note_clicked" : self.lds_note_clicked, - "on_deletephoto_clicked" : self.gallery.on_delete_media_clicked, - "on_edit_photo_clicked" : self.gallery.on_edit_media_clicked, - "on_edit_properties_clicked": self.gallery.popup_change_description, - "on_marriageAddBtn_clicked" : self.on_add_clicked, - "on_event_update_clicked" : self.on_event_update_clicked, - "on_attr_update_clicked" : self.on_update_attr_clicked, - "on_marriageDeleteBtn_clicked" : self.on_delete_clicked, - "on_switch_page" : self.on_switch_page - }) - + self.gladeif.connect('marriageEditor','delete_event',self.on_delete_event) + self.gladeif.connect('button108','clicked',self.on_cancel_edit) + self.gladeif.connect('ok','clicked',self.on_close) + self.gladeif.connect('button119','clicked',self.on_help_clicked) + self.gladeif.connect('notebook4','switch_page',self.on_switch_page) + self.gladeif.connect('marriage_add','clicked',self.on_add_clicked) + self.gladeif.connect('button116','clicked',self.on_event_update_clicked) + self.gladeif.connect('marriage_del','clicked',self.on_delete_clicked) + self.gladeif.connect('attr_add','clicked',self.on_add_attr_clicked) + self.gladeif.connect('button118','clicked',self.on_update_attr_clicked) + self.gladeif.connect('attr_del','clicked',self.on_delete_attr_clicked) + self.gladeif.connect('media_add','clicked',self.gallery.on_add_media_clicked) + self.gladeif.connect('media_sel','clicked',self.gallery.on_select_media_clicked) + self.gladeif.connect('button117','clicked',self.gallery.on_edit_media_clicked) + self.gladeif.connect('media_del','clicked',self.gallery.on_delete_media_clicked) + self.gladeif.connect('button114','clicked',self.lds_src_clicked) + self.gladeif.connect('button115','clicked',self.lds_note_clicked) mode = not self.db.readonly @@ -355,6 +354,7 @@ class Marriage: self.child_windows = {} def close(self): + self.gladeif.close() self.gallery.close() self.close_child_windows() self.remove_itself_from_winsmenu() @@ -606,7 +606,7 @@ class Marriage: self.close() def save(self): - self.on_close_marriage_editor(None) + self.on_close(None) def on_delete_event(self,obj,b): if self.did_data_change() and not GrampsKeys.get_dont_ask(): @@ -620,7 +620,7 @@ class Marriage: self.close() return False - def on_close_marriage_editor(self,*obj): + def on_close(self,*obj): trans = self.db.transaction_begin() diff --git a/gramps2/src/MediaView.py b/gramps2/src/MediaView.py index 5318ca9cf..445066969 100644 --- a/gramps2/src/MediaView.py +++ b/gramps2/src/MediaView.py @@ -244,7 +244,10 @@ class MediaView: gc.collect() self.mid.set_text(mobj.get_gramps_id()) - self.mtype.set_text(type_name) + if type_name: + self.mtype.set_text(type_name) + else: + self.mtype.set_text(_('unknown')) self.mdesc.set_text(mobj.get_description()) if type_name == _('Note'): self.mpath.set_text('') diff --git a/gramps2/src/NameEdit.py b/gramps2/src/NameEdit.py index f78e09c44..2f545d588 100644 --- a/gramps2/src/NameEdit.py +++ b/gramps2/src/NameEdit.py @@ -53,6 +53,8 @@ import DateHandler import Spell import GrampsDisplay +from WindowUtils import GladeIf + #------------------------------------------------------------------------- # # NameEditor class @@ -76,6 +78,7 @@ class NameEditor: self.callback = callback self.child_windows = {} self.top = gtk.glade.XML(const.dialogFile, "name_edit","gramps") + self.gladeif = GladeIf(self.top) self.window = self.top.get_widget("name_edit") self.given_field = self.top.get_widget("alt_given") self.sort_as = self.top.get_widget("sort_as") @@ -139,14 +142,12 @@ class NameEditor: self.note_buffer = self.note_field.get_buffer() - self.top.signal_autoconnect({ - "on_help_name_clicked" : self.on_help_clicked, - "on_name_edit_ok_clicked" : self.on_name_edit_ok_clicked, - "on_name_edit_cancel_clicked" : self.close, - "on_name_edit_delete_event" : self.on_delete_event, - "on_group_over_toggled" : self.on_group_over_toggled, - "on_switch_page" : self.on_switch_page - }) + self.gladeif.connect('name_edit','delete_event',self.on_delete_event) + self.gladeif.connect('button119','clicked',self.close) + self.gladeif.connect('button118','clicked',self.on_name_edit_ok_clicked) + self.gladeif.connect('button131','clicked',self.on_help_clicked) + self.gladeif.connect('notebook3','switch_page',self.on_switch_page) + self.gladeif.connect('group_over','toggled',self.on_group_over_toggled) if name != None: self.given_field.set_text(name.get_first_name()) @@ -202,11 +203,13 @@ class NameEditor: self.group_as.set_editable(False) def on_delete_event(self,*obj): + self.gladeif.close() self.close_child_windows() self.remove_itself_from_menu() gc.collect() def close(self,*obj): + self.gladeif.close() self.close_child_windows() self.remove_itself_from_menu() self.window.destroy() diff --git a/gramps2/src/SelectChild.py b/gramps2/src/SelectChild.py index 365cdb7f5..2782e0126 100644 --- a/gramps2/src/SelectChild.py +++ b/gramps2/src/SelectChild.py @@ -52,6 +52,7 @@ import Date import GrampsDisplay from QuestionDialog import ErrorDialog +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -68,19 +69,18 @@ class SelectChild: self.family = family self.renderer = gtk.CellRendererText() self.xml = gtk.glade.XML(const.gladeFile,"select_child","gramps") + self.gladeif = Gladeif(self.xml) if person: self.default_name = person.get_primary_name().get_surname().upper() else: self.default_name = "" - self.xml.signal_autoconnect({ - "on_save_child_clicked" : self.on_save_child_clicked, - "on_child_help_clicked" : self.on_child_help_clicked, - "on_show_toggled" : self.on_show_toggled, - "destroy_passed_object" : self.close, - "on_select_child_delete_event" : self.on_delete_event, - }) + self.gladeif.connect('select_child','delete_event', self.on_delete_event) + self.gladeif.connect('button49','clicked', self.close) + self.gladeif.connect('button48','clicked', self.on_save_child_clicked) + self.gladeif.connect('button163','clicked',self.on_child_help_clicked) + self.gladeif.connect('checkbutton1','toggled',self.on_show_toggled) self.select_child_list = {} self.top = self.xml.get_widget("select_child") @@ -143,10 +143,12 @@ class SelectChild: tree.append_column(column) def on_delete_event(self,obj,b): + self.gladeif.close() self.remove_itself_from_menu() gc.collect() def close(self,obj): + self.gladeif.close() self.remove_itself_from_menu() self.top.destroy() gc.collect() diff --git a/gramps2/src/Sources.py b/gramps2/src/Sources.py index 7f323788a..c40a28986 100644 --- a/gramps2/src/Sources.py +++ b/gramps2/src/Sources.py @@ -383,14 +383,14 @@ class SourceEditor: Utils.set_titles(self.sourceDisplay, self.showSource.get_widget('title'), _('Source Information')) + + self.gladeif = GladeIf(self.showSource) + self.gladeif.connect('sourceDisplay','delete_event', self.on_delete_event) + self.gladeif.connect('button95','clicked',self.close) + self.gladeif.connect('ok','clicked',self.on_sourceok_clicked) + self.gladeif.connect('button144','clicked', self.on_help_clicked) + self.gladeif.connect('button143','clicked',self.add_src_clicked) - self.showSource.signal_autoconnect({ - "on_add_src_clicked" : self.add_src_clicked, - "on_help_srcDisplay_clicked" : self.on_help_clicked, - "on_ok_srcDisplay_clicked" : self.on_sourceok_clicked, - "on_cancel_srcDisplay_clicked" : self.close, - "on_sourceDisplay_delete_event" : self.on_delete_event, - }) self.source_field = self.get_widget("sourceList") # setup menu @@ -445,11 +445,13 @@ class SourceEditor: def on_delete_event(self,obj,b): self.close_child_windows() self.remove_itself_from_menu() + self.gladeif.close() gc.collect() def close(self,obj): self.close_child_windows() self.remove_itself_from_menu() + self.gladeif.close() self.sourceDisplay.destroy() gc.collect() diff --git a/gramps2/src/TransUtils.py b/gramps2/src/TransUtils.py index 4aba616d0..6fde7a6d0 100644 --- a/gramps2/src/TransUtils.py +++ b/gramps2/src/TransUtils.py @@ -18,6 +18,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +from gettext import gettext as _ + def strip_context(msgid,sep='|'): """ Strip the context used for resolving translation ambiguities. diff --git a/gramps2/src/UrlEdit.py b/gramps2/src/UrlEdit.py index 5c9920741..9a590f7b0 100644 --- a/gramps2/src/UrlEdit.py +++ b/gramps2/src/UrlEdit.py @@ -45,6 +45,7 @@ import const import Utils import RelLib import GrampsDisplay +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -66,6 +67,8 @@ class UrlEditor: self.url = url self.callback = callback self.top = gtk.glade.XML(const.dialogFile, "url_edit","gramps") + self.gladeif = GladeIf(self.top) + self.window = self.top.get_widget("url_edit") self.des = self.top.get_widget("url_des") self.addr = self.top.get_widget("url_addr") @@ -85,12 +88,10 @@ class UrlEditor: self.addr.set_text(url.get_path()) self.priv.set_active(url.get_privacy()) - self.top.signal_autoconnect({ - "on_help_url_clicked" : self.on_help_clicked, - "on_ok_url_clicked" : self.on_url_edit_ok_clicked, - "on_cancel_url_clicked" : self.close, - "on_url_edit_delete_event" : self.on_delete_event, - }) + self.gladeif.connect('url_edit','delete_event', self.on_delete_event) + self.gladeif.connect('button125','clicked', self.close) + self.gladeif.connect('button124','clicked', self.on_url_edit_ok_clicked) + self.gladeif.connect('button130','clicked', self.on_help_clicked) if parent_window: self.window.set_transient_for(parent_window) @@ -98,10 +99,12 @@ class UrlEditor: self.window.show() def on_delete_event(self,*obj): + self.gladeif.close() self.remove_itself_from_menu() gc.collect() def close(self,*obj): + self.gladeif.close() self.remove_itself_from_menu() self.window.destroy() gc.collect() diff --git a/gramps2/src/Utils.py b/gramps2/src/Utils.py index 1d4fa5ce2..84c488a7a 100644 --- a/gramps2/src/Utils.py +++ b/gramps2/src/Utils.py @@ -504,13 +504,10 @@ def probably_alive(person,db,current_year=None,limit=0): # for descendants that were born more than a lifespan ago. min_generation = 13 - max_generation = 60 - max_age_difference = 60 def descendants_too_old (person, years): for family_handle in person.get_family_handle_list(): family = db.get_family_from_handle(family_handle) - family_list = family.get_child_handle_list() for child_handle in family.get_child_handle_list(): child = db.get_person_from_handle(child_handle) @@ -543,7 +540,7 @@ def probably_alive(person,db,current_year=None,limit=0): try: if descendants_too_old (person, min_generation): return False - except RuntimeError,msg: + except RuntimeError: raise Errors.DatabaseError( _("Database error: %s is defined as his or her own ancestor") % NameDisplay.displayer.display(person)) diff --git a/gramps2/src/Witness.py b/gramps2/src/Witness.py index 56b4c3a94..7f5ef04bb 100644 --- a/gramps2/src/Witness.py +++ b/gramps2/src/Witness.py @@ -47,6 +47,7 @@ import RelLib import ListModel import NameDisplay import GrampsDisplay +from WindowUtils import GladeIf #------------------------------------------------------------------------- # @@ -139,14 +140,14 @@ class WitnessEditor: self.update = update self.ref = ref self.show_witness = gtk.glade.XML(const.dialogFile, "witness_edit","gramps") - self.show_witness.signal_autoconnect({ - "on_toggled" : self.on_toggled, - "on_witness_edit_delete_event" : self.on_delete_event, - "on_cancel_witness_clicked" : self.close, - "on_help_witness_clicked" : self.on_help_clicked, - "on_ok_witness_clicked" : self.ok_clicked, - }) + self.gladeif = GladeIf(self.show_witness) + self.gladeif.connect('name_edit','delete_event',self.on_delete_event) + self.gladeif.connect('cancelbutton1','clicked',self.close) + self.gladeif.connect('ok','clicked',self.ok_clicked) + self.gladeif.connect('button132','clicked',self.on_help_clicked) + self.gladeif.connect('in_db','toggled',self.on_toggled) + self.window = self.show_witness.get_widget('witness_edit') self.name = self.show_witness.get_widget("name") self.private = self.show_witness.get_widget("priv") @@ -184,10 +185,12 @@ class WitnessEditor: self.window.show() def on_delete_event(self,obj,b): + self.gladeif.close() self.remove_itself_from_menu() gc.collect() def close(self,obj): + self.gladeif.close() self.remove_itself_from_menu() self.window.destroy() gc.collect() diff --git a/gramps2/src/gramps.glade b/gramps2/src/gramps.glade index c09082b4a..7ee63e747 100644 --- a/gramps2/src/gramps.glade +++ b/gramps2/src/gramps.glade @@ -3908,7 +3908,6 @@ Other GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -3931,7 +3930,6 @@ Other GTK_RELIEF_NORMAL True -6 - @@ -3946,7 +3944,6 @@ Other GTK_RELIEF_NORMAL True -5 - @@ -3960,7 +3957,6 @@ Other GTK_RELIEF_NORMAL True -11 - @@ -4124,7 +4120,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -4159,7 +4154,6 @@ Other Show all - 0 @@ -4311,7 +4305,6 @@ Other False False True - 0 @@ -4338,7 +4331,6 @@ Other True Married - 2 @@ -4419,7 +4411,6 @@ Other GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -4442,7 +4433,6 @@ Other GTK_RELIEF_NORMAL True 0 - @@ -4457,7 +4447,6 @@ Other GTK_RELIEF_NORMAL True 0 - @@ -4471,7 +4460,6 @@ Other GTK_RELIEF_NORMAL True -11 - @@ -4574,7 +4562,6 @@ Other False False True - 0 @@ -11773,7 +11760,6 @@ Other GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -11797,7 +11783,6 @@ Other GTK_RELIEF_NORMAL True 0 - @@ -11813,7 +11798,6 @@ Other GTK_RELIEF_NORMAL True 0 - @@ -11827,7 +11811,6 @@ Other GTK_RELIEF_NORMAL True -11 - @@ -11876,7 +11859,6 @@ Other GTK_POS_TOP False False - @@ -12533,7 +12515,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -12560,7 +12541,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -12587,7 +12567,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -12958,7 +12937,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -12985,7 +12963,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13012,7 +12989,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13431,7 +13407,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13459,7 +13434,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13487,7 +13461,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13514,7 +13487,6 @@ Other True GTK_RELIEF_NORMAL True - @@ -13687,7 +13659,6 @@ Other True GTK_RELIEF_NORMAL True - 3 @@ -13707,7 +13678,6 @@ Other True GTK_RELIEF_NORMAL True - 3 @@ -17820,7 +17790,6 @@ Text Beside Icons GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -17843,7 +17812,6 @@ Text Beside Icons GTK_RELIEF_NORMAL True -6 - @@ -17858,7 +17826,6 @@ Text Beside Icons GTK_RELIEF_NORMAL True -5 - @@ -17872,7 +17839,6 @@ Text Beside Icons GTK_RELIEF_NORMAL True -11 - @@ -20984,7 +20950,6 @@ Very High True False False - 0 @@ -21161,7 +21126,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -21184,7 +21148,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -21199,7 +21162,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -21213,7 +21175,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -21530,7 +21491,6 @@ Very High GTK_POS_TOP False False - @@ -22215,7 +22175,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -22242,7 +22201,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -22269,7 +22227,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -22558,7 +22515,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -22581,7 +22537,6 @@ Very High GTK_RELIEF_NORMAL True 0 - @@ -22596,7 +22551,6 @@ Very High GTK_RELIEF_NORMAL True 0 - @@ -22610,7 +22564,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -22829,7 +22782,6 @@ Very High GTK_POS_TOP False False - @@ -23242,7 +23194,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -23269,7 +23220,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -23297,7 +23247,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -24968,7 +24917,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -24994,7 +24942,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -25009,7 +24956,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -25023,7 +24969,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -25071,7 +25016,6 @@ Very High GTK_POS_TOP False False - @@ -25960,7 +25904,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -25988,7 +25931,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -26016,7 +25958,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -26043,7 +25984,6 @@ Very High True GTK_RELIEF_NORMAL True - @@ -26149,7 +26089,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -26172,7 +26111,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -26187,7 +26125,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -26201,7 +26138,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -26761,7 +26697,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -26784,7 +26719,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -26799,7 +26733,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -26813,7 +26746,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -28124,7 +28056,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -28147,7 +28078,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -28163,7 +28093,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -28177,7 +28106,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -28393,7 +28321,6 @@ Very High GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST True - @@ -28417,7 +28344,6 @@ Very High GTK_RELIEF_NORMAL True -6 - @@ -28433,7 +28359,6 @@ Very High GTK_RELIEF_NORMAL True -5 - @@ -28447,7 +28372,6 @@ Very High GTK_RELIEF_NORMAL True -11 - @@ -28495,7 +28419,6 @@ Very High GTK_POS_TOP False False - @@ -29124,7 +29047,6 @@ Given name False False True - 0 @@ -29556,7 +29478,6 @@ Given name GDK_WINDOW_TYPE_HINT_DIALOG GDK_GRAVITY_NORTH_WEST False - @@ -29579,7 +29500,6 @@ Given name GTK_RELIEF_NORMAL True -6 - @@ -29593,7 +29513,6 @@ Given name GTK_RELIEF_NORMAL True -5 - @@ -29607,7 +29526,6 @@ Given name GTK_RELIEF_NORMAL True -11 - @@ -29746,7 +29664,6 @@ Given name False False True - 1