* src/plugins/EventCmp.py: Adapt to RelLib changes.

* src/GenericFilter.py (GenericFilter.check_and): Correct logic.
	* src/PluginUtils/_PluginStatus.py: Use new set_window.



svn: r6435
This commit is contained in:
Alex Roitman
2006-04-25 18:36:52 +00:00
parent ffb8a386c2
commit 05b7e26cf7
4 changed files with 60 additions and 112 deletions

View File

@@ -1,4 +1,8 @@
2006-04-25 Alex Roitman <shura@gramps-project.org> 2006-04-25 Alex Roitman <shura@gramps-project.org>
* src/plugins/EventCmp.py: Adapt to RelLib changes.
* src/GenericFilter.py (GenericFilter.check_and): Correct logic.
* src/PluginUtils/_PluginStatus.py: Use new set_window.
* src/Makefile.am: Include BaseDoc in the docmodules list. * src/Makefile.am: Include BaseDoc in the docmodules list.
* src/GrampsDb/_GrampsBSDDB.py: Different order of closing. * src/GrampsDb/_GrampsBSDDB.py: Different order of closing.

View File

@@ -1997,7 +1997,8 @@ class GenericFilter:
for rule in flist: for rule in flist:
if not rule.apply(db,person): if not rule.apply(db,person):
val = False val = False
if not val: break
if val:
final_list.append(handle) final_list.append(handle)
return final_list return final_list

View File

@@ -57,13 +57,10 @@ class PluginStatus(ManagedWindow.ManagedWindow):
self.title = _("Plugin Status") self.title = _("Plugin Status")
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self) ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
self.set_window( self.set_window(gtk.Dialog("",uistate.window,
gtk.Dialog("%s - GRAMPS" % self.title, gtk.DIALOG_DESTROY_WITH_PARENT,
uistate.window, (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)),
gtk.DIALOG_DESTROY_WITH_PARENT, None, self.title)
(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
)
)
self.window.set_size_request(600,400) self.window.set_size_request(600,400)
self.window.connect('delete-event',self.close_window) self.window.connect('delete-event',self.close_window)
self.window.connect('response', self.close_window) self.window.connect('response', self.close_window)
@@ -136,13 +133,10 @@ class PluginTrace(ManagedWindow.ManagedWindow):
title = "%s: %s" % (_("Plugin Status"),name) title = "%s: %s" % (_("Plugin Status"),name)
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self) ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
self.set_window( self.set_window(gtk.Dialog("",uistate.window,
gtk.Dialog("%s - GRAMPS" % title, gtk.DIALOG_DESTROY_WITH_PARENT,
uistate.window, (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)),
gtk.DIALOG_DESTROY_WITH_PARENT, None, title)
(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
)
)
self.window.set_size_request(600,400) self.window.set_size_request(600,400)
self.window.connect('delete-event',self.close_window) self.window.connect('delete-event',self.close_window)
self.window.connect('response', self.close_window) self.window.connect('response', self.close_window)

View File

@@ -37,7 +37,6 @@ from gettext import gettext as _
#------------------------------------------------------------------------ #------------------------------------------------------------------------
import gtk import gtk
import gtk.glade import gtk.glade
import GrampsDisplay
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@@ -54,6 +53,8 @@ import const
import DateHandler import DateHandler
from QuestionDialog import WarningDialog from QuestionDialog import WarningDialog
from PluginUtils import Tool, register_tool from PluginUtils import Tool, register_tool
from GrampsDisplay import help
import ManagedWindow
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@@ -124,15 +125,13 @@ class TableReport:
# #
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
class EventComparison(Tool.Tool): class EventComparison(Tool.Tool,ManagedWindow.ManagedWindow):
def __init__(self,db,person,options_class,name,callback=None,parent=None): def __init__(self, dbstate, uistate, options_class, name, callback=None):
Tool.Tool.__init__(self,db,person,options_class,name) self.dbstate = dbstate
self.uistate = uistate
self.parent = parent
if self.parent.child_windows.has_key(self.__class__): Tool.Tool.__init__(self,dbstate,options_class,name)
self.parent.child_windows[self.__class__].present(None) ManagedWindow.ManagedWindow.__init__(self, uistate, [], self)
return
self.win_key = self.__class__
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"
@@ -142,18 +141,15 @@ class EventComparison(Tool.Tool):
self.filterDialog.signal_autoconnect({ self.filterDialog.signal_autoconnect({
"on_apply_clicked" : self.on_apply_clicked, "on_apply_clicked" : self.on_apply_clicked,
"on_editor_clicked" : self.filter_editor_clicked, "on_editor_clicked" : self.filter_editor_clicked,
## "on_filter_list_enter" : self.filter_list_enter, "on_filters_delete_event": self.close,
"on_filters_delete_event": self.on_delete_event,
"on_help_clicked" : self.on_help_clicked, "on_help_clicked" : self.on_help_clicked,
"destroy_passed_object" : self.close "destroy_passed_object" : self.close
}) })
self.window = self.filterDialog.get_widget("filters") window = self.filterDialog.get_widget("filters")
self.window.set_icon(self.parent.topWindow.get_icon())
self.filters = self.filterDialog.get_widget("filter_list") self.filters = self.filterDialog.get_widget("filter_list")
self.label = _('Event comparison filter selection') self.label = _('Event comparison filter selection')
self.set_window(window,self.filterDialog.get_widget('title'),
Utils.set_titles(self.window,self.filterDialog.get_widget('title'),
self.label) self.label)
self.all = GenericFilter.GenericFilter() self.all = GenericFilter.GenericFilter()
@@ -166,42 +162,19 @@ class EventComparison(Tool.Tool):
self.filter_menu.show() self.filter_menu.show()
self.filters.set_menu(self.filter_menu) self.filters.set_menu(self.filter_menu)
self.add_itself_to_menu() self.show()
self.window.show()
def on_help_clicked(self,obj): def on_help_clicked(self,obj):
"""Display the relevant portion of GRAMPS manual""" """Display the relevant portion of GRAMPS manual"""
GrampsDisplay.help('tools-util') help('tools-util')
def on_delete_event(self,obj,b): def build_menu_names(self,obj):
self.remove_itself_from_menu() return (_("Filter selection"),_("Event Comparison tool"))
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(_("Event Comparison 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 filter_editor_clicked(self,obj): def filter_editor_clicked(self,obj):
import FilterEditor import FilterEditor
FilterEditor.FilterEditor(const.custom_filters,self.db,self.parent) FilterEditor.FilterEditor(const.custom_filters,self.db,self.parent)
## def filter_list_enter(self,obj):
## self.filter_menu = GenericFilter.build_filter_menu([self.all])
## self.filters.set_menu(self.filter_menu)
def on_apply_clicked(self,obj): def on_apply_clicked(self,obj):
cfilter = self.filter_menu.get_active().get_data("filter") cfilter = self.filter_menu.get_active().get_data("filter")
@@ -210,6 +183,7 @@ class EventComparison(Tool.Tool):
plist = cfilter.apply(self.db, plist = cfilter.apply(self.db,
self.db.get_person_handles(sort_handles=False)) self.db.get_person_handles(sort_handles=False))
progress_bar.step() progress_bar.step()
progress_bar.close() progress_bar.close()
self.options.handler.set_filter_number(self.filters.get_history()) self.options.handler.set_filter_number(self.filters.get_history())
@@ -219,7 +193,7 @@ class EventComparison(Tool.Tool):
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.dbstate,self.uistate,plist,self.track)
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@@ -243,13 +217,16 @@ def fix(line):
# #
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class DisplayChart: class DisplayChart(ManagedWindow.ManagedWindow):
def __init__(self,database,people_list,parent): def __init__(self,dbstate,uistate,people_list,track):
self.db = database self.dbstate = dbstate
self.uistate = uistate
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
self.db = dbstate.db
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 self.save_form = None
base = os.path.dirname(__file__) base = os.path.dirname(__file__)
@@ -260,61 +237,35 @@ class DisplayChart:
"on_write_table" : self.on_write_table, "on_write_table" : self.on_write_table,
"destroy_passed_object" : self.close, "destroy_passed_object" : self.close,
"on_help_clicked" : self.on_help_clicked, "on_help_clicked" : self.on_help_clicked,
"on_view_delete_event" : self.on_delete_event, "on_view_delete_event" : self.close,
}) })
self.window = self.topDialog.get_widget("view") window = self.topDialog.get_widget("view")
self.window.set_icon(self.parent.topWindow.get_icon()) self.set_window(window, self.topDialog.get_widget('title'),
_('Event Comparison Results'))
self.eventlist = self.topDialog.get_widget('treeview') self.eventlist = self.topDialog.get_widget('treeview')
Utils.set_titles(self.window, self.topDialog.get_widget('title'),
_('Event Comparison Results'))
self.sort = Sort.Sort(self.db) self.sort = Sort.Sort(self.db)
self.my_list.sort(self.sort.by_last_name) self.my_list.sort(self.sort.by_last_name)
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.add_itself_to_menu() self.show()
self.window.show()
def on_help_clicked(self,obj): def on_help_clicked(self,obj):
"""Display the relevant portion of GRAMPS manual""" """Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','tools-ae') help('gramps-manual','tools-ae')
def on_delete_event(self,obj,b): def build_menu_names(self,obj):
self.remove_itself_from_menu() return (_("Event Comparison Results"),None)
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 Results"))
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):
titles = [] titles = []
index = 0 index = 0
for event_name in self.event_titles: for event_name in self.event_titles:
# Need to display localized event names titles.append((event_name,index,150))
titles.append((const.display_event(event_name),index,150))
index = index + 1 index = index + 1
self.list = ListModel.ListModel(self.eventlist,titles) self.list = ListModel.ListModel(self.eventlist,titles)
@@ -352,10 +303,8 @@ class DisplayChart:
dplace = self.db.get_place_from_handle(dplace_handle).get_title() dplace = self.db.get_place_from_handle(dplace_handle).get_title()
map = {} map = {}
for ievent_ref in individual.get_event_ref_list(): for ievent_ref in individual.get_event_ref_list():
if not ievent_ref:
continue
ievent = self.db.get_event_from_handle(ievent_ref.ref) ievent = self.db.get_event_from_handle(ievent_ref.ref)
event_name = ievent.get_name() event_name = str(ievent.get_type())
if map.has_key(event_name): if map.has_key(event_name):
map[event_name].append(ievent_ref.ref) map[event_name].append(ievent_ref.ref)
else: else:
@@ -397,16 +346,17 @@ class DisplayChart:
self.progress_bar.step() self.progress_bar.step()
def make_event_titles(self): def make_event_titles(self):
"""Creates the list of unique event types, along with the person's """
name, birth, and death. This should be the column titles of the report""" Creates the list of unique event types, along with the person's
name, birth, and death.
This should be the column titles of the report.
"""
map = {} map = {}
for individual_id in self.my_list: for individual_id in self.my_list:
individual = self.db.get_person_from_handle(individual_id) individual = self.db.get_person_from_handle(individual_id)
for event_ref in individual.get_event_list(): for event_ref in individual.get_event_ref_list():
if not event_ref:
continue
event = self.db.get_event_from_handle(event_ref.ref) event = self.db.get_event_from_handle(event_ref.ref)
name = event.get_name() name = str(event.get_type())
if not name: if not name:
break break
if map.has_key(name): if map.has_key(name):
@@ -424,7 +374,7 @@ class DisplayChart:
self.form = gtk.glade.XML(self.glade_file,"dialog1","gramps") self.form = gtk.glade.XML(self.glade_file,"dialog1","gramps")
self.form.signal_autoconnect({ self.form.signal_autoconnect({
"on_save_clicked" : self.on_save_clicked, "on_save_clicked" : self.on_save_clicked,
"destroy_passed_object" : Utils.destroy_passed_object "destroy_passed_object" : self.close,
}) })
self.save_form = self.form.get_widget("dialog1") self.save_form = self.form.get_widget("dialog1")
self.save_form.show_all() self.save_form.show_all()
@@ -439,8 +389,7 @@ class DisplayChart:
spreadsheet = TableReport(name,doc) spreadsheet = TableReport(name,doc)
spreadsheet.initialize(len(self.event_titles)) spreadsheet.initialize(len(self.event_titles))
spreadsheet.write_table_head([const.display_event(event_name) spreadsheet.write_table_head(self.event_titles)
for event_name in self.event_titles])
index = 0 index = 0
for top in self.row_data: for top in self.row_data: