Remove "get_generations()" from the report options base classes. It was

forcing some reports to have the "page break between generations" options
even though they weren't using it. All reports now define all of their own
options.

svn: r8323
This commit is contained in:
Brian Matherly 2007-03-27 11:50:26 +00:00
parent aa57b4b1a6
commit 4a6b730259
8 changed files with 101 additions and 129 deletions

View File

@ -1,3 +1,16 @@
2007-03-27 Brian Matherly <brian@gramps-project.org>
* src/ReportBase/_CommandLineReport.py
* src/ReportBase/_BareReportDialog.py
* src/ReportBase/_ReportOptions.py
* src/plugins/DescendReport.py
* src/plugins/DetDescendantReport.py
* src/plugins/AncestorReport.py
* src/plugins/DetAncestralReport.py
Remove "get_generations()" from the report options base classes. It was
forcing some reports to have the "page break between generations" options
even though they weren't using it. All reports now define all of their own
options.
2007-03-26 Brian Matherly <brian@gramps-project.org> 2007-03-26 Brian Matherly <brian@gramps-project.org>
* src/plugins/DetDescendantReport.py: fix for multiple notes. * src/plugins/DetDescendantReport.py: fix for multiple notes.

View File

@ -107,8 +107,6 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
self.pagecount_menu = None self.pagecount_menu = None
self.extra_menu = None self.extra_menu = None
self.extra_textbox = None self.extra_textbox = None
self.pagebreak_checkbox = None
self.generations_spinbox = None
self.widgets = [] self.widgets = []
self.frame_names = [] self.frame_names = []
self.frames = {} self.frames = {}
@ -116,8 +114,6 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
self.style_button = None self.style_button = None
self.style_name = self.options.handler.get_default_stylesheet_name() self.style_name = self.options.handler.get_default_stylesheet_name()
(self.max_gen,self.page_breaks) = \
self.options.handler.get_report_generations()
window = gtk.Dialog('GRAMPS') window = gtk.Dialog('GRAMPS')
self.set_window(window,None,self.get_title()) self.set_window(window,None,self.get_title())
@ -195,12 +191,6 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
this function.""" this function."""
return "basic_report.xml" return "basic_report.xml"
def get_report_generations(self):
"""Return the default number of generations to start the
spinbox (zero to disable) and whether or not to include the
'page break between generations' check box"""
return (10, 1)
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Functions related to extending the options # Functions related to extending the options
@ -379,13 +369,7 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
(but not all) dialog boxes.""" (but not all) dialog boxes."""
row = 0 row = 0
max_rows = 0 max_rows = len(self.widgets)
if self.max_gen:
max_rows = max_rows + 2
#if self.page_breaks:
# max_rows = max_rows + 1
max_rows = max_rows + len(self.widgets)
if max_rows == 0: if max_rows == 0:
return return
@ -401,29 +385,6 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
table.set_border_width(6) table.set_border_width(6)
self.notebook.append_page(table,label) self.notebook.append_page(table,label)
row += 1 row += 1
# Set up the generations spin and page break checkbox
if self.max_gen:
self.generations_spinbox = gtk.SpinButton(digits=0)
self.generations_spinbox.set_numeric(1)
adjustment = gtk.Adjustment(self.max_gen,1,999,1,0)
self.generations_spinbox.set_adjustment(adjustment)
adjustment.value_changed()
label = gtk.Label("%s:" % _("Generations"))
label.set_alignment(0.0,0.5)
table.attach(label, 1, 2, row, row+1,
gtk.SHRINK|gtk.FILL, gtk.SHRINK|gtk.FILL)
table.attach(self.generations_spinbox, 2, 3, row, row+1,
gtk.EXPAND|gtk.FILL,gtk.SHRINK|gtk.FILL)
row += 1
#if self.page_breaks:
msg = _("Page break between generations")
self.pagebreak_checkbox = gtk.CheckButton(msg)
self.pagebreak_checkbox.set_active(self.page_breaks)
table.attach(self.pagebreak_checkbox,2,3,row,row+1,
yoptions=gtk.SHRINK)
row += 1
# Setup requested widgets # Setup requested widgets
for (text,widget) in self.widgets: for (text,widget) in self.widgets:
@ -506,20 +467,6 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
whether or not they are displayed on the screen. The subclass whether or not they are displayed on the screen. The subclass
will know which ones it has enabled. This is for simplicity will know which ones it has enabled. This is for simplicity
of programming.""" of programming."""
if self.generations_spinbox:
self.max_gen = self.generations_spinbox.get_value_as_int()
else:
self.max_gen = 0
if self.pagebreak_checkbox and self.pagebreak_checkbox.get_active():
self.pg_brk = 1
else:
self.pg_brk = 0
if self.max_gen or self.pg_brk:
self.options.handler.set_report_generations(self.max_gen,self.pg_brk)
if self.extra_menu: if self.extra_menu:
self.report_menu = self.extra_menu.get_menu().get_active().get_data("d") self.report_menu = self.extra_menu.get_menu().get_active().get_data("d")
else: else:

View File

@ -114,21 +114,10 @@ class CommandLineReport:
self.options_help['id'].append(id_list) self.options_help['id'].append(id_list)
self.options_help['id'].append(False) self.options_help['id'].append(False)
if self.options_dict.has_key('gen'):
max_gen = self.options_dict['gen']
page_breaks = self.options_dict['pagebbg']
self.option_class.handler.set_report_generations(max_gen,
page_breaks)
self.options_help['gen'].append("Whatever Number You Wish")
self.options_help['pagebbg'].append([
"No page break","Page break"])
self.options_help['pagebbg'].append(True)
self.option_class.handler.output = self.options_dict['of'] self.option_class.handler.output = self.options_dict['of']
self.options_help['of'].append(os.path.join(const.user_home, self.options_help['of'].append(os.path.join(const.user_home,
"whatever_name")) "whatever_name"))
if self.category == CATEGORY_TEXT: if self.category == CATEGORY_TEXT:
for item in PluginUtils.textdoc_list: for item in PluginUtils.textdoc_list:
if item[7] == self.options_dict['off']: if item[7] == self.options_dict['off']:

View File

@ -408,20 +408,6 @@ class OptionHandler(_Options.OptionHandler):
self.option_list_collection.set_last_paper_name(self.paper_name) self.option_list_collection.set_last_paper_name(self.paper_name)
self.option_list_collection.set_last_format_name(self.format_name) self.option_list_collection.set_last_format_name(self.format_name)
def get_report_generations(self):
if self.default_options_dict.has_key('gen'):
max_gen = self.options_dict.get('gen',
self.default_options_dict['gen'])
page_breaks = self.options_dict.get('pagebbg',
self.default_options_dict['pagebbg'])
return (max_gen,page_breaks)
else:
return (0,0)
def set_report_generations(self,max_gen,page_breaks):
self.options_dict['gen'] = max_gen
self.options_dict['pagebbg'] = page_breaks
def get_stylesheet_savefile(self): def get_stylesheet_savefile(self):
"""Where to save user defined styles for this report.""" """Where to save user defined styles for this report."""
return "%s.xml" % self.module_name return "%s.xml" % self.module_name
@ -574,11 +560,3 @@ class ReportOptions(_Options.Options):
This method MUST NOT be overridden by subclasses. This method MUST NOT be overridden by subclasses.
""" """
self.handler.newpage = val self.handler.newpage = val
def get_report_generations(self):
"""
Return (max_generations,page_breaks) tuple.
This method MUST NOT be overridden by subclasses.
"""
return self.handler.get_report_generations()

View File

@ -75,8 +75,8 @@ class AncestorReport(Report):
Report.__init__(self,database,person,options_class) Report.__init__(self,database,person,options_class)
self.map = {} self.map = {}
(self.max_generations,self.pgbrk) \ self.max_generations = options_class.handler.options_dict['gen']
= options_class.get_report_generations() self.pgbrk = options_class.handler.options_dict['pagebbg']
self.opt_namebrk = options_class.handler.options_dict['namebrk'] self.opt_namebrk = options_class.handler.options_dict['namebrk']
def apply_filter(self,person_handle,index,generation=1): def apply_filter(self,person_handle,index,generation=1):
@ -218,19 +218,20 @@ class AncestorOptions(ReportOptions):
def __init__(self,name,person_id=None): def __init__(self,name,person_id=None):
ReportOptions.__init__(self,name,person_id) ReportOptions.__init__(self,name,person_id)
def enable_options(self):
# Semi-common options that should be enabled for this report
self.enable_dict = {
'gen' : 10,
'pagebbg' : 0,
}
def set_new_options(self): def set_new_options(self):
# Options specific for this report # Options specific for this report
self.options_dict = { self.options_dict = {
'gen' : 10,
'pagebbg' : 0,
'namebrk' : 0, 'namebrk' : 0,
} }
self.options_help = { self.options_help = {
'gen' : ("=int","Generations",
"The number of generations to include in the report",
True),
'pagebbg' : ("=0/1","Page Break Between Generations",
["No line break", "Insert line break"],
False),
'namebrk' : ("=0/1","Indicates if a line break should follow the name.", 'namebrk' : ("=0/1","Indicates if a line break should follow the name.",
["No line break", "Insert line break"], ["No line break", "Insert line break"],
False), False),
@ -308,6 +309,14 @@ class AncestorOptions(ReportOptions):
Override the base class add_user_options task to add a check box to Override the base class add_user_options task to add a check box to
the dialog that for the LineBreak option. the dialog that for the LineBreak option.
""" """
self.max_gen = gtk.SpinButton(gtk.Adjustment(1,1,100,1))
self.max_gen.set_value(self.options_dict['gen'])
dialog.add_option(_('Generations'),self.max_gen)
self.cb_pagebreak = gtk.CheckButton (_("Page break between generations"))
self.cb_pagebreak.set_active (self.options_dict['pagebbg'])
dialog.add_option ('', self.cb_pagebreak)
self.cb_break = gtk.CheckButton (_("Add linebreak after each name")) self.cb_break = gtk.CheckButton (_("Add linebreak after each name"))
self.cb_break.set_active (self.options_dict['namebrk']) self.cb_break.set_active (self.options_dict['namebrk'])
dialog.add_option ('', self.cb_break) dialog.add_option ('', self.cb_break)
@ -317,6 +326,8 @@ class AncestorOptions(ReportOptions):
Parses the custom options that we have added. Set the value in the Parses the custom options that we have added. Set the value in the
options dictionary. options dictionary.
""" """
self.options_dict['gen'] = self.max_gen.get_value_as_int()
self.options_dict['pagebbg'] = int(self.cb_pagebreak.get_active ())
self.options_dict['namebrk'] = int(self.cb_break.get_active ()) self.options_dict['namebrk'] = int(self.cb_break.get_active ())
#------------------------------------------------------------------------ #------------------------------------------------------------------------

View File

@ -2,6 +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
# (C) 2007 Brian Matherly
# #
# 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
@ -76,14 +77,12 @@ class DescendantReport(Report):
that come in the options class. that come in the options class.
gen - Maximum number of generations to include. gen - Maximum number of generations to include.
pagebbg - Whether to include page breaks between generations.
""" """
Report.__init__(self,database,person,options_class) Report.__init__(self,database,person,options_class)
(self.max_generations,self.pgbrk) \ self.max_generations = options_class.handler.options_dict['gen']
= options_class.get_report_generations()
sort = Sort.Sort(self.database) sort = Sort.Sort(self.database)
self.by_birthdate = sort.by_birthdate self.by_birthdate = sort.by_birthdate
@ -199,12 +198,31 @@ class DescendantOptions(ReportOptions):
def __init__(self,name,person_id=None): def __init__(self,name,person_id=None):
ReportOptions.__init__(self,name,person_id) ReportOptions.__init__(self,name,person_id)
def enable_options(self): def set_new_options(self):
# Semi-common options that should be enabled for this report # Options specific for this report
self.enable_dict = { self.options_dict = {
'gen' : 10, 'gen' : 10,
'pagebbg' : 0,
} }
self.options_help = {
'gen' : ("=int","Generations",
"The number of generations to include in the report",
True),
}
def add_user_options(self,dialog):
"""
Override the base class add_user_options task to add generations option
"""
self.max_gen = gtk.SpinButton(gtk.Adjustment(1,1,100,1))
self.max_gen.set_value(self.options_dict['gen'])
dialog.add_option(_('Generations'),self.max_gen)
def parse_user_options(self,dialog):
"""
Parses the custom options that we have added. Set the value in the
options dictionary.
"""
self.options_dict['gen'] = self.max_gen.get_value_as_int()
def make_default_style(self,default_style): def make_default_style(self,default_style):
"""Make the default output style for the Descendant Report.""" """Make the default output style for the Descendant Report."""

View File

@ -3,6 +3,7 @@
# #
# Copyright (C) 2000-2002 Bruce J. DeGrasse # Copyright (C) 2000-2002 Bruce J. DeGrasse
# Copyright (C) 2000-2006 Donald N. Allingham # Copyright (C) 2000-2006 Donald N. Allingham
# Copyright (C) 2007 Brian Matherly
# #
# 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
@ -98,9 +99,8 @@ class DetAncestorReport(Report):
self.map = {} self.map = {}
(self.max_generations,self.pgbrk) \ self.max_generations = options_class.handler.options_dict['gen']
= options_class.get_report_generations() self.pgbrk = options_class.handler.options_dict['pagebbg']
self.fullDate = options_class.handler.options_dict['fulldates'] self.fullDate = options_class.handler.options_dict['fulldates']
self.listChildren = options_class.handler.options_dict['listc'] self.listChildren = options_class.handler.options_dict['listc']
self.includeNotes = options_class.handler.options_dict['incnotes'] self.includeNotes = options_class.handler.options_dict['incnotes']
@ -689,6 +689,8 @@ class DetAncestorOptions(ReportOptions):
def set_new_options(self): def set_new_options(self):
# Options specific for this report # Options specific for this report
self.options_dict = { self.options_dict = {
'gen' : 10,
'pagebbg' : 0,
'fulldates' : 1, 'fulldates' : 1,
'listc' : 1, 'listc' : 1,
'incnotes' : 1, 'incnotes' : 1,
@ -705,6 +707,12 @@ class DetAncestorOptions(ReportOptions):
'incsources' : 0, 'incsources' : 0,
} }
self.options_help = { self.options_help = {
'gen' : ("=int","Generations",
"The number of generations to include in the report",
True),
'pagebbg' : ("=0/1","Page Break Between Generations",
["No line break", "Insert line break"],
False),
'fulldates' : ("=0/1","Whether to use full dates instead of just year.", 'fulldates' : ("=0/1","Whether to use full dates instead of just year.",
["Do not use full dates","Use full dates"], ["Do not use full dates","Use full dates"],
True), True),
@ -749,13 +757,6 @@ class DetAncestorOptions(ReportOptions):
True), True),
} }
def enable_options(self):
# Semi-common options that should be enabled for this report
self.enable_dict = {
'gen' : 10,
'pagebbg' : 0,
}
def make_default_style(self,default_style): def make_default_style(self,default_style):
"""Make the default output style for the Detailed Ancestral Report""" """Make the default output style for the Detailed Ancestral Report"""
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -864,6 +865,11 @@ class DetAncestorOptions(ReportOptions):
Override the base class add_user_options task to add a menu that allows Override the base class add_user_options task to add a menu that allows
the user to select the sort method. the user to select the sort method.
""" """
self.max_gen = gtk.SpinButton(gtk.Adjustment(1,1,100,1))
self.max_gen.set_value(self.options_dict['gen'])
self.cb_pagebreak = gtk.CheckButton (_("Page break between generations"))
self.cb_pagebreak.set_active (self.options_dict['pagebbg'])
# Full date usage # Full date usage
self.full_date_option = gtk.CheckButton(_("Use full dates instead of only the year")) self.full_date_option = gtk.CheckButton(_("Use full dates instead of only the year"))
@ -924,7 +930,8 @@ class DetAncestorOptions(ReportOptions):
# Add new options. The first argument is the tab name for grouping options. # Add new options. The first argument is the tab name for grouping options.
# if you want to put everyting in the generic "Options" category, use # if you want to put everyting in the generic "Options" category, use
# self.add_option(text,widget) instead of self.add_frame_option(category,text,widget) # self.add_option(text,widget) instead of self.add_frame_option(category,text,widget)
dialog.add_option(_('Generations'),self.max_gen)
dialog.add_option ('', self.cb_pagebreak)
dialog.add_frame_option(_('Content'),'',self.usecall) dialog.add_frame_option(_('Content'),'',self.usecall)
dialog.add_frame_option(_('Content'),'',self.full_date_option) dialog.add_frame_option(_('Content'),'',self.full_date_option)
dialog.add_frame_option(_('Content'),'',self.list_children_option) dialog.add_frame_option(_('Content'),'',self.list_children_option)
@ -944,7 +951,8 @@ class DetAncestorOptions(ReportOptions):
""" """
Parses the custom options that we have added. Parses the custom options that we have added.
""" """
self.options_dict['gen'] = self.max_gen.get_value_as_int()
self.options_dict['pagebbg'] = int(self.cb_pagebreak.get_active ())
self.options_dict['fulldates'] = int(self.full_date_option.get_active()) self.options_dict['fulldates'] = int(self.full_date_option.get_active())
self.options_dict['listc'] = int(self.list_children_option.get_active()) self.options_dict['listc'] = int(self.list_children_option.get_active())
self.options_dict['incnotes'] = int(self.include_notes_option.get_active()) self.options_dict['incnotes'] = int(self.include_notes_option.get_active())

View File

@ -3,6 +3,7 @@
# #
# Copyright (C) 2000-2002 Bruce J. DeGrasse # Copyright (C) 2000-2002 Bruce J. DeGrasse
# Copyright (C) 2000-2006 Donald N. Allingham # Copyright (C) 2000-2006 Donald N. Allingham
# Copyright (C) 2007 Brian Matherly
# #
# 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
@ -101,9 +102,8 @@ class DetDescendantReport(Report):
self.map = {} self.map = {}
(self.max_generations,self.pgbrk) \ self.max_generations = options_class.handler.options_dict['gen']
= options_class.get_report_generations() self.pgbrk = options_class.handler.options_dict['pagebbg']
self.fullDate = options_class.handler.options_dict['fulldates'] self.fullDate = options_class.handler.options_dict['fulldates']
self.listChildren = options_class.handler.options_dict['listc'] self.listChildren = options_class.handler.options_dict['listc']
self.includeNotes = options_class.handler.options_dict['incnotes'] self.includeNotes = options_class.handler.options_dict['incnotes']
@ -715,6 +715,8 @@ class DetDescendantOptions(ReportOptions):
def set_new_options(self): def set_new_options(self):
# Options specific for this report # Options specific for this report
self.options_dict = { self.options_dict = {
'gen' : 10,
'pagebbg' : 0,
'fulldates' : 1, 'fulldates' : 1,
'listc' : 1, 'listc' : 1,
'incnotes' : 1, 'incnotes' : 1,
@ -732,6 +734,12 @@ class DetDescendantOptions(ReportOptions):
'incmates' : 1, 'incmates' : 1,
} }
self.options_help = { self.options_help = {
'gen' : ("=int","Generations",
"The number of generations to include in the report",
True),
'pagebbg' : ("=0/1","Page Break Between Generations",
["No line break", "Insert line break"],
False),
'fulldates' : ("=0/1","Whether to use full dates instead of just year.", 'fulldates' : ("=0/1","Whether to use full dates instead of just year.",
["Do not use full dates","Use full dates"], ["Do not use full dates","Use full dates"],
True), True),
@ -779,13 +787,6 @@ class DetDescendantOptions(ReportOptions):
True), True),
} }
def enable_options(self):
# Semi-common options that should be enabled for this report
self.enable_dict = {
'gen' : 10,
'pagebbg' : 0,
}
def make_default_style(self,default_style): def make_default_style(self,default_style):
"""Make the default output style for the Detailed Ancestral Report""" """Make the default output style for the Detailed Ancestral Report"""
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -894,6 +895,11 @@ class DetDescendantOptions(ReportOptions):
Override the base class add_user_options task to add a menu that allows Override the base class add_user_options task to add a menu that allows
the user to select the sort method. the user to select the sort method.
""" """
self.max_gen = gtk.SpinButton(gtk.Adjustment(1,1,100,1))
self.max_gen.set_value(self.options_dict['gen'])
self.cb_pagebreak = gtk.CheckButton (_("Page break between generations"))
self.cb_pagebreak.set_active (self.options_dict['pagebbg'])
# Full date usage # Full date usage
self.full_date_option = gtk.CheckButton(_("Use full dates instead of only the year")) self.full_date_option = gtk.CheckButton(_("Use full dates instead of only the year"))
@ -958,7 +964,8 @@ class DetDescendantOptions(ReportOptions):
# Add new options. The first argument is the tab name for grouping options. # Add new options. The first argument is the tab name for grouping options.
# if you want to put everyting in the generic "Options" category, use # if you want to put everyting in the generic "Options" category, use
# self.add_option(text,widget) instead of self.add_frame_option(category,text,widget) # self.add_option(text,widget) instead of self.add_frame_option(category,text,widget)
dialog.add_option(_('Generations'),self.max_gen)
dialog.add_option ('', self.cb_pagebreak)
dialog.add_frame_option(_('Content'),'',self.usecall) dialog.add_frame_option(_('Content'),'',self.usecall)
dialog.add_frame_option(_('Content'),'',self.full_date_option) dialog.add_frame_option(_('Content'),'',self.full_date_option)
dialog.add_frame_option(_('Content'),'',self.list_children_option) dialog.add_frame_option(_('Content'),'',self.list_children_option)
@ -979,7 +986,8 @@ class DetDescendantOptions(ReportOptions):
""" """
Parses the custom options that we have added. Parses the custom options that we have added.
""" """
self.options_dict['gen'] = self.max_gen.get_value_as_int()
self.options_dict['pagebbg'] = int(self.cb_pagebreak.get_active ())
self.options_dict['fulldates'] = int(self.full_date_option.get_active()) self.options_dict['fulldates'] = int(self.full_date_option.get_active())
self.options_dict['listc'] = int(self.list_children_option.get_active()) self.options_dict['listc'] = int(self.list_children_option.get_active())
self.options_dict['usecall'] = int(self.usecall.get_active()) self.options_dict['usecall'] = int(self.usecall.get_active())