* src/plugins/Desbrowser.py: Convert to db; window management.
* src/plugins/desbrowse.glade: Define event handler. * src/plugins/EventCmp.py: Clean up window management. * src/plugins/eventcmp.glade: Define event handler. * src/plugins/Check.py: Clean up conversion to db. * src/plugins/summary.glade: Make dialog modal. * src/plugins/Merge.py: Window management. * src/plugins/merge.glade: Define event handlers. * src/plugins/ChangeTypes.py: Convert to db. svn: r3152
This commit is contained in:
parent
00ef803ae4
commit
d13881f428
@ -2,6 +2,16 @@
|
|||||||
* src/plugins/FilterEditor.py: Clean up window management.
|
* src/plugins/FilterEditor.py: Clean up window management.
|
||||||
* src/rule.glade: Define event handlers.
|
* src/rule.glade: Define event handlers.
|
||||||
|
|
||||||
|
* src/plugins/Desbrowser.py: Convert to db; window management.
|
||||||
|
* src/plugins/desbrowse.glade: Define event handler.
|
||||||
|
* src/plugins/EventCmp.py: Clean up window management.
|
||||||
|
* src/plugins/eventcmp.glade: Define event handler.
|
||||||
|
* src/plugins/Check.py: Clean up conversion to db.
|
||||||
|
* src/plugins/summary.glade: Make dialog modal.
|
||||||
|
* src/plugins/Merge.py: Window management.
|
||||||
|
* src/plugins/merge.glade: Define event handlers.
|
||||||
|
* src/plugins/ChangeTypes.py: Convert to db.
|
||||||
|
|
||||||
2004-05-09 Don Allingham <donaldallingham@users.sourceforge.net>
|
2004-05-09 Don Allingham <donaldallingham@users.sourceforge.net>
|
||||||
* src/DbPrompter.py: added a .grdb if not specified.
|
* src/DbPrompter.py: added a .grdb if not specified.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000 Donald N. Allingham
|
# Copyright (C) 2000-2004 Donald N. Allingham
|
||||||
#
|
#
|
||||||
# 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
|
||||||
@ -38,9 +38,9 @@ import AutoComp
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def runTool(database,person,callback):
|
def runTool(database,person,callback,parent=None):
|
||||||
try:
|
try:
|
||||||
ChangeTypes(database,person)
|
ChangeTypes(database,person,parent)
|
||||||
except:
|
except:
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
@ -51,7 +51,7 @@ def runTool(database,person,callback):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class ChangeTypes:
|
class ChangeTypes:
|
||||||
def __init__(self,db,person):
|
def __init__(self,db,person,parent):
|
||||||
self.person = person
|
self.person = person
|
||||||
self.db = db
|
self.db = db
|
||||||
|
|
||||||
@ -78,12 +78,17 @@ class ChangeTypes:
|
|||||||
original = unicode(self.glade.get_widget("original_text").get_text())
|
original = unicode(self.glade.get_widget("original_text").get_text())
|
||||||
new = unicode(self.glade.get_widget("new_text").get_text())
|
new = unicode(self.glade.get_widget("new_text").get_text())
|
||||||
|
|
||||||
for person in self.db.get_person_id_map().values():
|
for person_id in self.db.get_person_keys():
|
||||||
for event in person.get_event_list():
|
person = self.db.find_person_from_id(person_id)
|
||||||
|
for event_id in person.get_event_list():
|
||||||
|
if not event_id:
|
||||||
|
continue
|
||||||
|
event = self.db.find_event_from_id(event_id)
|
||||||
if event.get_name() == original:
|
if event.get_name() == original:
|
||||||
event.set_name(new)
|
event.set_name(new)
|
||||||
modified = modified + 1
|
modified = modified + 1
|
||||||
Utils.modified()
|
Utils.modified()
|
||||||
|
self.db.commit_event(event)
|
||||||
|
|
||||||
if modified == 1:
|
if modified == 1:
|
||||||
msg = _("1 event record was modified")
|
msg = _("1 event record was modified")
|
||||||
|
@ -55,10 +55,10 @@ from QuestionDialog import OkDialog, MissingMediaDialog
|
|||||||
# runTool
|
# runTool
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def runTool(database,active_person,callback):
|
def runTool(database,active_person,callback,parent=None):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
checker = CheckIntegrity(database)
|
checker = CheckIntegrity(database,parent)
|
||||||
checker.check_for_broken_family_links()
|
checker.check_for_broken_family_links()
|
||||||
checker.cleanup_missing_photos(0)
|
checker.cleanup_missing_photos(0)
|
||||||
checker.check_parent_relationships()
|
checker.check_parent_relationships()
|
||||||
@ -77,7 +77,7 @@ def runTool(database,active_person,callback):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class CheckIntegrity:
|
class CheckIntegrity:
|
||||||
|
|
||||||
def __init__(self,db):
|
def __init__(self,db,parent):
|
||||||
self.db = db
|
self.db = db
|
||||||
self.bad_photo = []
|
self.bad_photo = []
|
||||||
self.replaced_photo = []
|
self.replaced_photo = []
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000 Donald N. Allingham
|
# Copyright (C) 2000-2004 Donald N. Allingham
|
||||||
#
|
#
|
||||||
# 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
|
||||||
@ -18,6 +18,8 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# $Id$
|
||||||
|
|
||||||
"Analysis and Exploration/Interactive descendant browser"
|
"Analysis and Exploration/Interactive descendant browser"
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -50,32 +52,35 @@ import gtk.glade
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
def runTool(database,person,callback):
|
def runTool(database,person,callback,parent=None):
|
||||||
try:
|
try:
|
||||||
DesBrowse(database,person,callback)
|
DesBrowse(database,person,callback,parent)
|
||||||
except:
|
except:
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
class DesBrowse:
|
class DesBrowse:
|
||||||
def __init__(self,database,person,callback):
|
def __init__(self,database,person,callback,parent):
|
||||||
self.active = person
|
self.active = person
|
||||||
self.db = database
|
self.db = database
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
|
self.parent = parent
|
||||||
|
self.win_key = self
|
||||||
|
|
||||||
base = os.path.dirname(__file__)
|
base = os.path.dirname(__file__)
|
||||||
glade_file = base + os.sep + "desbrowse.glade"
|
glade_file = base + os.sep + "desbrowse.glade"
|
||||||
|
|
||||||
self.glade = gtk.glade.XML(glade_file,"top","gramps")
|
self.glade = gtk.glade.XML(glade_file,"top","gramps")
|
||||||
self.glade.signal_autoconnect({
|
self.glade.signal_autoconnect({
|
||||||
"destroy_passed_object" : Utils.destroy_passed_object,
|
"destroy_passed_object" : self.close,
|
||||||
|
"on_delete_event": self.on_delete_event,
|
||||||
})
|
})
|
||||||
top = self.glade.get_widget("top")
|
self.window = self.glade.get_widget("top")
|
||||||
|
|
||||||
Utils.set_titles(top,self.glade.get_widget('title'),
|
Utils.set_titles(self.window,self.glade.get_widget('title'),
|
||||||
_("Descendant Browser"))
|
_("Descendant Browser"))
|
||||||
|
|
||||||
self.tree= self.glade.get_widget("tree1")
|
self.tree = self.glade.get_widget("tree1")
|
||||||
col = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0)
|
col = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0)
|
||||||
self.tree.append_column(col)
|
self.tree.append_column(col)
|
||||||
self.model = gtk.TreeStore(gobject.TYPE_STRING,gobject.TYPE_PYOBJECT)
|
self.model = gtk.TreeStore(gobject.TYPE_STRING,gobject.TYPE_PYOBJECT)
|
||||||
@ -83,21 +88,45 @@ class DesBrowse:
|
|||||||
self.tree.set_rules_hint(gtk.TRUE)
|
self.tree.set_rules_hint(gtk.TRUE)
|
||||||
self.tree.set_headers_visible(gtk.FALSE)
|
self.tree.set_headers_visible(gtk.FALSE)
|
||||||
|
|
||||||
self.add_to_tree(None,None,self.active)
|
self.add_to_tree(None,None,self.active.get_id())
|
||||||
self.tree.expand_all()
|
self.tree.expand_all()
|
||||||
self.tree.connect('event',self.button_press_event)
|
self.tree.connect('event',self.button_press_event)
|
||||||
|
|
||||||
top.show()
|
self.add_itself_to_menu()
|
||||||
|
self.window.show()
|
||||||
|
|
||||||
def add_to_tree(self,parent,sib,person):
|
def on_delete_event(self,obj,b):
|
||||||
item = self.model.insert_after(parent,sib)
|
self.remove_itself_from_menu()
|
||||||
self.model.set(item,0,GrampsCfg.nameof(person))
|
|
||||||
self.model.set(item,1,person)
|
def close(self,obj):
|
||||||
prev = None
|
self.remove_itself_from_menu()
|
||||||
for family in person.get_family_id_list():
|
self.window.destroy()
|
||||||
for child in family.get_child_id_list():
|
|
||||||
prev = self.add_to_tree(item,prev,child)
|
def add_itself_to_menu(self):
|
||||||
return item
|
self.parent.child_windows[self.win_key] = self
|
||||||
|
self.parent_menu_item = gtk.MenuItem(_("Descendant Browser tool"))
|
||||||
|
self.parent_menu_item.connect("activate",self.present)
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.winsmenu.append(self.parent_menu_item)
|
||||||
|
|
||||||
|
def remove_itself_from_menu(self):
|
||||||
|
del self.parent.child_windows[self.win_key]
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present(self,obj):
|
||||||
|
self.window.present()
|
||||||
|
|
||||||
|
def add_to_tree(self,parent_id,sib_id,person_id):
|
||||||
|
item_id = self.model.insert_after(parent_id,sib_id)
|
||||||
|
person = self.db.find_person_from_id(person_id)
|
||||||
|
self.model.set(item_id,0,GrampsCfg.nameof(person))
|
||||||
|
self.model.set(item_id,1,person_id)
|
||||||
|
prev_id = None
|
||||||
|
for family_id in person.get_family_id_list():
|
||||||
|
family = self.db.find_family_from_id(family_id)
|
||||||
|
for child_id in family.get_child_id_list():
|
||||||
|
prev_id = self.add_to_tree(item_id,prev_id,child_id)
|
||||||
|
return item_id
|
||||||
|
|
||||||
def button_press_event(self,obj,event):
|
def button_press_event(self,obj,event):
|
||||||
import EditPerson
|
import EditPerson
|
||||||
@ -105,8 +134,9 @@ class DesBrowse:
|
|||||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||||
store,iter = self.tree.get_selection().get_selected()
|
store,iter = self.tree.get_selection().get_selected()
|
||||||
if iter:
|
if iter:
|
||||||
person = store.get_value(iter,1)
|
person_id = store.get_value(iter,1)
|
||||||
EditPerson.EditPerson(person,self.db,self.callback)
|
person = self.db.find_person_from_id(person_id)
|
||||||
|
EditPerson.EditPerson(self.parent,person,self.db,self.callback)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -123,5 +153,3 @@ register_tool(
|
|||||||
author_name="Donald N. Allingham",
|
author_name="Donald N. Allingham",
|
||||||
author_email="dallingham@users.sourceforge.net"
|
author_email="dallingham@users.sourceforge.net"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ class EventComparison:
|
|||||||
if len(plist) == 0:
|
if len(plist) == 0:
|
||||||
WarningDialog(_("No matches were found"))
|
WarningDialog(_("No matches were found"))
|
||||||
else:
|
else:
|
||||||
DisplayChart(self.db,plist,self.parent)
|
DisplayChart(self.db,plist,self)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -248,6 +248,9 @@ class DisplayChart:
|
|||||||
self.db = database
|
self.db = database
|
||||||
self.my_list = people_list
|
self.my_list = people_list
|
||||||
self.row_data = []
|
self.row_data = []
|
||||||
|
self.parent = parent
|
||||||
|
self.win_key = self
|
||||||
|
self.save_form = None
|
||||||
|
|
||||||
base = os.path.dirname(__file__)
|
base = os.path.dirname(__file__)
|
||||||
self.glade_file = base + os.sep + "eventcmp.glade"
|
self.glade_file = base + os.sep + "eventcmp.glade"
|
||||||
@ -255,13 +258,14 @@ class DisplayChart:
|
|||||||
self.topDialog = gtk.glade.XML(self.glade_file,"view","gramps")
|
self.topDialog = gtk.glade.XML(self.glade_file,"view","gramps")
|
||||||
self.topDialog.signal_autoconnect({
|
self.topDialog.signal_autoconnect({
|
||||||
"on_write_table" : self.on_write_table,
|
"on_write_table" : self.on_write_table,
|
||||||
"destroy_passed_object" : Utils.destroy_passed_object
|
"destroy_passed_object" : self.close,
|
||||||
|
"on_view_delete_event" : self.on_delete_event,
|
||||||
})
|
})
|
||||||
|
|
||||||
self.top = self.topDialog.get_widget("view")
|
self.window = self.topDialog.get_widget("view")
|
||||||
self.eventlist = self.topDialog.get_widget('treeview')
|
self.eventlist = self.topDialog.get_widget('treeview')
|
||||||
|
|
||||||
Utils.set_titles(self.top, self.topDialog.get_widget('title'),
|
Utils.set_titles(self.window, self.topDialog.get_widget('title'),
|
||||||
_('Event Comparison'))
|
_('Event Comparison'))
|
||||||
|
|
||||||
self.sort = Sort.Sort(self.db)
|
self.sort = Sort.Sort(self.db)
|
||||||
@ -270,7 +274,33 @@ class DisplayChart:
|
|||||||
self.event_titles = self.make_event_titles()
|
self.event_titles = self.make_event_titles()
|
||||||
self.build_row_data()
|
self.build_row_data()
|
||||||
self.draw_clist_display()
|
self.draw_clist_display()
|
||||||
self.top.show()
|
self.add_itself_to_menu()
|
||||||
|
self.window.show()
|
||||||
|
|
||||||
|
def on_delete_event(self,obj,b):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
|
if self.save_form:
|
||||||
|
self.save_form.destroy()
|
||||||
|
|
||||||
|
def close(self,obj):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
|
if self.save_form:
|
||||||
|
self.save_form.destroy()
|
||||||
|
self.window.destroy()
|
||||||
|
|
||||||
|
def add_itself_to_menu(self):
|
||||||
|
self.parent.child_windows[self.win_key] = self
|
||||||
|
self.parent_menu_item = gtk.MenuItem(_("Event Comparison"))
|
||||||
|
self.parent_menu_item.connect("activate",self.present)
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.winsmenu.append(self.parent_menu_item)
|
||||||
|
|
||||||
|
def remove_itself_from_menu(self):
|
||||||
|
del self.parent.child_windows[self.win_key]
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present(self,obj):
|
||||||
|
self.window.present()
|
||||||
|
|
||||||
def draw_clist_display(self):
|
def draw_clist_display(self):
|
||||||
|
|
||||||
|
@ -66,11 +66,6 @@ def is_initial(name):
|
|||||||
else:
|
else:
|
||||||
return name[0] == name[0].upper()
|
return name[0] == name[0].upper()
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -78,8 +73,10 @@ def is_initial(name):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class Merge:
|
class Merge:
|
||||||
|
|
||||||
def __init__(self,database,callback):
|
def __init__(self,database,callback,parent):
|
||||||
self.db = database
|
self.db = database
|
||||||
|
self.parent = parent
|
||||||
|
self.win_key = self
|
||||||
self.map = {}
|
self.map = {}
|
||||||
self.list = []
|
self.list = []
|
||||||
self.index = 0
|
self.index = 0
|
||||||
@ -114,13 +111,38 @@ class Merge:
|
|||||||
self.menu = top.get_widget("menu")
|
self.menu = top.get_widget("menu")
|
||||||
self.menu.set_menu(my_menu)
|
self.menu.set_menu(my_menu)
|
||||||
|
|
||||||
Utils.set_titles(top.get_widget('dialog'), top.get_widget('title'),
|
self.dialog_window = top.get_widget('dialog')
|
||||||
|
Utils.set_titles(self.dialog_window, top.get_widget('title'),
|
||||||
_('Merge people'))
|
_('Merge people'))
|
||||||
|
|
||||||
top.signal_autoconnect({
|
top.signal_autoconnect({
|
||||||
"on_merge_ok_clicked" : self.on_merge_ok_clicked,
|
"on_merge_ok_clicked" : self.on_merge_ok_clicked,
|
||||||
"destroy_passed_object" : Utils.destroy_passed_object
|
"destroy_passed_object" : self.close,
|
||||||
|
"on_delete_merge_event" : self.on_delete_event,
|
||||||
})
|
})
|
||||||
|
self.add_itself_to_menu()
|
||||||
|
self.dialog_window.show()
|
||||||
|
|
||||||
|
def on_delete_event(self,obj,b):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
|
|
||||||
|
def close(self,obj):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
|
self.dialog_window.destroy()
|
||||||
|
|
||||||
|
def add_itself_to_menu(self):
|
||||||
|
self.parent.child_windows[self.win_key] = self
|
||||||
|
self.parent_menu_item = gtk.MenuItem(_('Merge people'))
|
||||||
|
self.parent_menu_item.connect("activate",self.present)
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.winsmenu.append(self.parent_menu_item)
|
||||||
|
|
||||||
|
def remove_itself_from_menu(self):
|
||||||
|
del self.parent.child_windows[self.win_key]
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present(self,obj):
|
||||||
|
self.dialog_window.present()
|
||||||
|
|
||||||
def ancestors_of(self,p1_id,id_list):
|
def ancestors_of(self,p1_id,id_list):
|
||||||
if (not p1_id) or (p1_id in id_list):
|
if (not p1_id) or (p1_id in id_list):
|
||||||
@ -136,7 +158,7 @@ class Merge:
|
|||||||
def on_merge_ok_clicked(self,obj):
|
def on_merge_ok_clicked(self,obj):
|
||||||
active = self.menu.get_menu().get_active().get_data("v")
|
active = self.menu.get_menu().get_active().get_data("v")
|
||||||
self.use_soundex = self.soundex_obj.get_active()
|
self.use_soundex = self.soundex_obj.get_active()
|
||||||
Utils.destroy_passed_object(obj)
|
self.close(obj)
|
||||||
self.find_potentials(active)
|
self.find_potentials(active)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
@ -221,8 +243,9 @@ class Merge:
|
|||||||
|
|
||||||
self.mlist = top.get_widget("mlist")
|
self.mlist = top.get_widget("mlist")
|
||||||
top.signal_autoconnect({
|
top.signal_autoconnect({
|
||||||
"destroy_passed_object" : Utils.destroy_passed_object,
|
"destroy_passed_object" : self.close_show,
|
||||||
"on_do_merge_clicked" : self.on_do_merge_clicked,
|
"on_do_merge_clicked" : self.on_do_merge_clicked,
|
||||||
|
"on_delete_show_event" : self.on_delete_show_event,
|
||||||
})
|
})
|
||||||
|
|
||||||
mtitles = [(_('Rating'),3,75),(_('First Person'),1,200),
|
mtitles = [(_('Rating'),3,75),(_('First Person'),1,200),
|
||||||
@ -231,6 +254,29 @@ class Merge:
|
|||||||
event_func=self.on_do_merge_clicked)
|
event_func=self.on_do_merge_clicked)
|
||||||
|
|
||||||
self.redraw()
|
self.redraw()
|
||||||
|
self.add_show_to_menu()
|
||||||
|
self.window.show()
|
||||||
|
|
||||||
|
def on_delete_show_event(self,obj,b):
|
||||||
|
self.remove_show_from_menu()
|
||||||
|
|
||||||
|
def close_show(self,obj):
|
||||||
|
self.remove_show_from_menu()
|
||||||
|
self.window.destroy()
|
||||||
|
|
||||||
|
def add_show_to_menu(self):
|
||||||
|
self.parent.child_windows[self.win_key] = self
|
||||||
|
self.parent_menu_item = gtk.MenuItem(_('Potential Merges'))
|
||||||
|
self.parent_menu_item.connect("activate",self.present_show)
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.winsmenu.append(self.parent_menu_item)
|
||||||
|
|
||||||
|
def remove_show_from_menu(self):
|
||||||
|
del self.parent.child_windows[self.win_key]
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present_show(self,obj):
|
||||||
|
self.window.present()
|
||||||
|
|
||||||
def redraw(self):
|
def redraw(self):
|
||||||
list = []
|
list = []
|
||||||
@ -258,7 +304,7 @@ class Merge:
|
|||||||
(p1,p2) = self.list.get_object(iter)
|
(p1,p2) = self.list.get_object(iter)
|
||||||
pn1 = self.db.find_person_from_id(p1)
|
pn1 = self.db.find_person_from_id(p1)
|
||||||
pn2 = self.db.find_person_from_id(p2)
|
pn2 = self.db.find_person_from_id(p2)
|
||||||
MergeData.MergePeople(self.db,pn1,pn2,self.on_update)
|
MergeData.MergePeople(self.parent,self.db,pn1,pn2,self.on_update)
|
||||||
|
|
||||||
def on_update(self,p1_id,p2_id,old_id):
|
def on_update(self,p1_id,p2_id,old_id):
|
||||||
self.dellist[p2_id] = p1_id
|
self.dellist[p2_id] = p1_id
|
||||||
@ -562,7 +608,11 @@ class Merge:
|
|||||||
|
|
||||||
return chance
|
return chance
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
def name_of(p):
|
def name_of(p):
|
||||||
if not p:
|
if not p:
|
||||||
return ""
|
return ""
|
||||||
@ -579,9 +629,9 @@ def get_name_obj(person):
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def runTool(database,active_person,callback):
|
def runTool(database,active_person,callback,parent=None):
|
||||||
try:
|
try:
|
||||||
Merge(database,callback)
|
Merge(database,callback,parent)
|
||||||
except:
|
except:
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
@ -608,4 +658,3 @@ register_tool(
|
|||||||
description=_("Searches the entire database, looking for "
|
description=_("Searches the entire database, looking for "
|
||||||
"individual entries that may represent the same person.")
|
"individual entries that may represent the same person.")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,7 +13,13 @@
|
|||||||
<property name="default_height">400</property>
|
<property name="default_height">400</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="decorated">True</property>
|
||||||
|
<property name="skip_taskbar_hint">False</property>
|
||||||
|
<property name="skip_pager_hint">False</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">True</property>
|
<property name="has_separator">True</property>
|
||||||
|
<signal name="delete_event" handler="on_delete_event" last_modification_time="Mon, 10 May 2004 22:50:36 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox1">
|
<widget class="GtkVBox" id="dialog-vbox1">
|
||||||
@ -34,6 +40,7 @@
|
|||||||
<property name="label">gtk-close</property>
|
<property name="label">gtk-close</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">0</property>
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="destroy_passed_object" object="top"/>
|
<signal name="clicked" handler="destroy_passed_object" object="top"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -292,6 +292,7 @@
|
|||||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
<signal name="delete_event" handler="on_view_delete_event" last_modification_time="Mon, 10 May 2004 22:57:39 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox3">
|
<widget class="GtkVBox" id="dialog-vbox3">
|
||||||
|
@ -112,6 +112,7 @@
|
|||||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
<signal name="delete_event" handler="on_delete_show_event" last_modification_time="Mon, 10 May 2004 23:33:31 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox3">
|
<widget class="GtkVBox" id="dialog-vbox3">
|
||||||
@ -239,6 +240,7 @@
|
|||||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
<signal name="delete_event" handler="on_delete_merge_event" last_modification_time="Mon, 10 May 2004 23:33:50 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox4">
|
<widget class="GtkVBox" id="dialog-vbox4">
|
||||||
|
@ -8,11 +8,16 @@
|
|||||||
<property name="title" translatable="yes"></property>
|
<property name="title" translatable="yes"></property>
|
||||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||||
<property name="modal">False</property>
|
<property name="modal">True</property>
|
||||||
<property name="default_width">450</property>
|
<property name="default_width">450</property>
|
||||||
<property name="default_height">400</property>
|
<property name="default_height">400</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="decorated">True</property>
|
||||||
|
<property name="skip_taskbar_hint">False</property>
|
||||||
|
<property name="skip_pager_hint">False</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
@ -34,6 +39,7 @@
|
|||||||
<property name="label">gtk-close</property>
|
<property name="label">gtk-close</property>
|
||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="focus_on_click">True</property>
|
||||||
<property name="response_id">0</property>
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="destroy_passed_object" object="summary"/>
|
<signal name="clicked" handler="destroy_passed_object" object="summary"/>
|
||||||
</widget>
|
</widget>
|
||||||
@ -89,6 +95,8 @@
|
|||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="editable">True</property>
|
<property name="editable">True</property>
|
||||||
|
<property name="overwrite">False</property>
|
||||||
|
<property name="accepts_tab">True</property>
|
||||||
<property name="justification">GTK_JUSTIFY_LEFT</property>
|
<property name="justification">GTK_JUSTIFY_LEFT</property>
|
||||||
<property name="wrap_mode">GTK_WRAP_NONE</property>
|
<property name="wrap_mode">GTK_WRAP_NONE</property>
|
||||||
<property name="cursor_visible">True</property>
|
<property name="cursor_visible">True</property>
|
||||||
|
Loading…
Reference in New Issue
Block a user