* src/Plugins.py: Pass parent class to the tools.

* src/rule.glade: Define event handlers.
* src/gramps_main.py: Pass parent class to the tools.
* src/plugins/EventCmp.py: Window management.
* src/plugins/FilterEditor.py: Window management.
* src/plugins/PatchNames.py: Window management.
* src/plugins/eventcmp.glade: Define event handlers.
* src/plugins/patchnames.glade: Define event handlers.


svn: r3150
This commit is contained in:
Alex Roitman
2004-05-10 04:54:10 +00:00
parent ffda353d04
commit e48a5e9df5
9 changed files with 340 additions and 69 deletions

View File

@ -63,9 +63,9 @@ _nick_re = re.compile(r"(.+)[(\"](.*)[)\"]")
# to "Name" and add "Nickname" into the nickname field.
#
#-------------------------------------------------------------------------
def runTool(database,active_person,callback):
def runTool(database,active_person,callback,parent=None):
try:
PatchNames(database,callback)
PatchNames(database,callback,parent)
except:
import DisplayTrace
DisplayTrace.DisplayTrace()
@ -77,9 +77,12 @@ def runTool(database,active_person,callback):
#-------------------------------------------------------------------------
class PatchNames:
def __init__(self,db,callback):
def __init__(self,db,callback,parent):
self.cb = callback
self.db = db
self.parent = parent
self.win_key = self
self.child_windows = {}
self.title_list = []
self.nick_list = []
@ -98,7 +101,6 @@ class PatchNames:
msg = ""
if self.nick_list or self.title_list:
self.display()
else:
@ -113,18 +115,20 @@ class PatchNames:
self.model.row_changed(path,row.iter)
def display(self):
base = os.path.dirname(__file__)
glade_file = base + os.sep + "patchnames.glade"
self.top = gtk.glade.XML(glade_file,"top","gramps")
self.window = self.top.get_widget('top')
self.top.signal_autoconnect({
"destroy_passed_object" : Utils.destroy_passed_object,
"on_ok_clicked" : self.on_ok_clicked
"destroy_passed_object" : self.close,
"on_ok_clicked" : self.on_ok_clicked,
"on_delete_event" : self.on_delete_event
})
self.list = self.top.get_widget("list")
Utils.set_titles(self.top.get_widget('top'),
self.top.get_widget('title'),
_('Name and title extraction tool'))
self.label = _('Name and title extraction tool')
Utils.set_titles(self.window,self.top.get_widget('title'),self.label)
self.model = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING,
gobject.TYPE_STRING, gobject.TYPE_STRING,
@ -171,6 +175,30 @@ class PatchNames:
self.model.set_value(iter,3,nick)
self.model.set_value(iter,4,p.get_primary_name().get_name())
self.title_hash[id] = iter
self.add_itself_to_menu()
self.window.show()
def on_delete_event(self,obj,b):
self.remove_itself_from_menu()
def close(self,obj):
self.remove_itself_from_menu()
self.window.destroy()
def add_itself_to_menu(self):
self.parent.child_windows[self.win_key] = self
self.parent_menu_item = gtk.MenuItem(self.label)
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 on_ok_clicked(self,obj):
for grp in self.nick_list:
@ -195,7 +223,7 @@ class PatchNames:
self.db.commit_person(p)
Utils.modified()
Utils.destroy_passed_object(obj)
self.close(obj)
self.cb(1)
#------------------------------------------------------------------------