def add_menu_options(self, menu): """Menu options.""" menu.filter_list = CustomFilters.get_filters("Event") all_filter = GenericFilterFactory("Event")() all_filter.set_name(_("All Events")) all_filter.add_rule(rules.event.AllEvents([])) all_filter_in_list = False for fltr in menu.filter_list: if fltr.get_name() == all_filter.get_name(): all_filter_in_list = True if not all_filter_in_list: menu.filter_list.insert(0, all_filter) events = FilterOption(_("Events"), 0) menu.add_option(_("Option"), "events", events) events.set_filters(menu.filter_list) find = StringOption(_("Find"), "") menu.add_option(_("Option"), "find", find) replace = StringOption(_("Replace"), "") menu.add_option(_("Option"), "replace", replace) keep_old = BooleanOption(_("Replace substring only"), False) keep_old.set_help(_("If True only the substring will be replaced, " "otherwise the whole description will be deleted " "and replaced by the new one.")) menu.add_option(_("Option"), "keep_old", keep_old) regex = BooleanOption(_("Allow regex"), False) regex.set_help(_("Allow regular expressions.")) menu.add_option(_("Option"), "regex", regex)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") self.__title = StringOption(_('book|Title'), _('Title of the Book')) self.__title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", self.__title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) rname = self.__db.get_researcher().get_name() footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) imgid = MediaOption(_('Image')) imgid.set_help(_("Gramps ID of the media object to use as an image.")) menu.add_option(category_name, "imgid", imgid) imgsize = NumberOption(_('Image Size'), 0, 0, 20, 0.1) imgsize.set_help( _("Size of the image in cm. A value of 0 indicates " "that the image should be fit to the page.")) menu.add_option(category_name, "imgsize", imgsize)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_("book|Title"), _("Title of the Book")) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_("Subtitle"), _("Subtitle of the Book")) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) rname = self.__db.get_researcher().get_name() footer_string = _("Copyright %(year)d %(name)s") % {"year": dateinfo[0], "name": rname} footer = StringOption(_("Footer"), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) imgid = MediaOption(_("Image")) imgid.set_help(_("Gramps ID of the media object to use as an image.")) menu.add_option(category_name, "imgid", imgid) imgsize = NumberOption(_("Image Size"), 0, 0, 20, 0.1) imgsize.set_help( _("Size of the image in cm. A value of 0 indicates " "that the image should be fit to the page.") ) menu.add_option(category_name, "imgsize", imgsize)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book') ) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book') ) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year' : dateinfo[0], 'name' : rname } footer = StringOption(_('Footer'), footer_string ) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None from gramps.gen.filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showperson = BooleanOption(_("Show persons"), True) showperson.set_help(_("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson) sort_by_citation = BooleanOption(_("Sort by Citation"), True) sort_by_citation.set_help(_("Whether to sort lines by Citation or Date")) menu.add_option(category_name, "sort_by_citation", sort_by_citation) sort_by_date = BooleanOption(_("Sort by Date"), True) sort_by_date.set_help(_("Whether to sort lines by Date or citation")) menu.add_option(category_name, "sort_by_date", sort_by_date) placeformat = EnumeratedListOption(_("Place Format"), "Default") placeformat.set_items([ ("default", _("Default")), ("first", _("First")), ("firstplace", _("Firstplace")), ("firstplace-country", _("Firstplace-Country")), ("country", _("Country")), ("long", _("Long"))]) placeformat.set_help(_("If Placename is given long or short")) menu.add_option(category_name, "placeformat", placeformat)
def add_menu_options(self, menu): """ Add the options """ category_name = _("Options") self.__filter = FilterOption(_("Person Filter"), 0) self.__filter.set_help(_("Select filter to restrict people")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) self.__update_filters() source_type = EnumeratedListOption(_("Source type"), 0) source_type.add_item(0, _("New source")) source_type.add_item(1, _("Existing source")) source_type.set_help(_("Select the type of source to attach")) menu.add_option(category_name, "source_type", source_type) source_type.connect('value-changed', self.__update_source_type) self.__source_type = source_type source_text = StringOption(_("New Source Title"), "") source_text.set_help(_("Text of source to attach")) menu.add_option(category_name, "source_text", source_text) self.__source_text = source_text source_id = StringOption(_("Existing Source ID"), "") source_id.set_help(_("ID of source to attach")) menu.add_option(category_name, "source_id", source_id) self.__source_id = source_id self.__update_source_type()
def add_menu_options(self, menu): """ Add the options """ category_name = _("Options") self.__filter = FilterOption(_("Person Filter"), 0) self.__filter.set_help(_("Select filter to restrict people")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) attribute_text = StringOption(_("Attribute"), "") attribute_value = StringOption(_("Value"), "") attribute_text.set_help(_("Attribute type to add or edit")) attribute_value.set_help(_("Attribute value to add or edit")) menu.add_option(category_name, "attribute_text", attribute_text) menu.add_option(category_name, "attribute_value", attribute_value) self.__attribute_text = attribute_text self.__attribute_value = attribute_value remove = BooleanOption(_("Remove"), False) remove.set_help(_("Remove attribute type and value set")) menu.add_option(category_name, "remove", remove) self.__update_filters()
def add_menu_options(self, menu): """Add the options to the report option menu""" head = StringOption(_("Heading"), "") menu.add_option(_("Report Options"), "head", head) media = MediaOption(_("Media")) media.set_help(_("Select a media file for this report")) menu.add_option(_("Report Options"), "mid", media) self.note = NoteOption(_("Custom note")) self.note.set_help(_("Select a note for this report")) menu.add_option(_("Report Options"), "note", self.note) self.incl_note = BooleanOption(_("Include custom note"), False) self.incl_note.set_help(_("The custom note will be included")) menu.add_option(_("Report Options"), "incl_note", self.incl_note) self.incl_note.connect('value-changed', self.__update_custom_note_opt) incl_pers = BooleanOption(_("Include referenced people"), False) incl_pers.set_help(_("Referenced people will be included")) menu.add_option(_("Report Options"), "incl_pers", incl_pers) incl_data = BooleanOption(_("Include media data"), False) incl_data.set_help(_("Tags, notes and attributes will be included")) menu.add_option(_("Report Options"), "incl_data", incl_data)
def add_menu_options(self, menu): category_name = _("Report Options") self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help( _("Determines what people are included in the report.")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) top_size = NumberOption(_("Number of ranks to display"), 3, 1, 100) menu.add_option(category_name, "top_size", top_size) callname = EnumeratedListOption(_("Use call name"), CALLNAME_DONTUSE) callname.set_items([(CALLNAME_DONTUSE, _("Don't use call name")), (CALLNAME_REPLACE, _("Replace first names with call name")), (CALLNAME_UNDERLINE_ADD, _("Underline call name in first names / " "add call name to first name"))]) menu.add_option(category_name, "callname", callname) footer = StringOption(_("Footer text"), "") menu.add_option(category_name, "footer", footer) category_name = _("Report Options (2)") self._nf = stdoptions.add_name_format_option(menu, category_name) self._nf.connect('value-changed', self.__update_filters) self.__update_filters() stdoptions.add_private_data_option(menu, category_name) stdoptions.add_living_people_option(menu, category_name) stdoptions.add_localization_option(menu, category_name) p_count = 0 for (text, varname, default) in RECORDS: if varname.startswith('person'): p_count += 1 p_half = p_count // 2 p_idx = 0 for (text, varname, default) in RECORDS: option = BooleanOption(_(text), default) if varname.startswith('person'): if p_idx >= p_half: category_name = _("Person 2") else: category_name = _("Person 1") p_idx += 1 elif varname.startswith('family'): category_name = _("Family") menu.add_option(category_name, varname, option)
def add_menu_options(self, menu): """ Add options to the menu for the ancestral fan chart report. """ category_name = _("Ancestral Fan Chart Options") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the report")) menu.add_option(category_name, "pid", pid) # We must figure out the value of the first option before we can # create the EnumeratedListOption fmt_list = global_name_display.get_name_format() name_format = EnumeratedListOption(_("Name format"), 0) name_format.add_item(0, _("Default")) for num, name, fmt_str, act in fmt_list: name_format.add_item(num, name) name_format.set_help(_("Select the format to display names")) menu.add_option(category_name, "name_format", name_format) self._maxgen = NumberOption(_("Include Generations"), 10, 1, 100) self._maxgen.set_help( _("The number of generations to include in " + "the report")) menu.add_option(category_name, "maxgen", self._maxgen) self._maxgen.connect('value-changed', self.validate_gen) pat_bg = ColorOption(_("Paternal Background Color"), "#ccddff") pat_bg.set_help(_("RGB-color for paternal box background.")) menu.add_option(category_name, "pat_bg", pat_bg) mat_bg = ColorOption(_("Maternal Background"), "#ffb2a1") mat_bg.set_help(_("RGB-color for maternal box background.")) menu.add_option(category_name, "mat_bg", mat_bg) dest_path = DestinationOption(_("Destination"), config.get('paths.website-directory')) dest_path.set_help(_("The destination path for generated files.")) dest_path.set_directory_entry(True) menu.add_option(category_name, "dest_path", dest_path) dest_file = StringOption(_("Filename"), "AncestralFanchart.html") dest_file.set_help(_("The destination file name for html content.")) menu.add_option(category_name, "dest_file", dest_file)
def add_menu_options(self, menu): """ Add options to the menu for the ancestral fan chart report. """ category_name = _("Ancestral Fan Chart Options") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the report")) menu.add_option(category_name, "pid", pid) # We must figure out the value of the first option before we can # create the EnumeratedListOption fmt_list = global_name_display.get_name_format() name_format = EnumeratedListOption(_("Name format"), 0) name_format.add_item(0, _("Default")) for num, name, fmt_str, act in fmt_list: name_format.add_item(num, name) name_format.set_help(_("Select the format to display names")) menu.add_option(category_name, "name_format", name_format) self._maxgen = NumberOption(_("Include Generations"), 10, 1, 100) self._maxgen.set_help(_("The number of generations to include in " + "the report")) menu.add_option(category_name, "maxgen", self._maxgen) self._maxgen.connect('value-changed', self.validate_gen) pat_bg = ColorOption(_("Paternal Background Color"), "#ccddff") pat_bg.set_help(_("RGB-color for paternal box background.")) menu.add_option(category_name, "pat_bg", pat_bg) mat_bg = ColorOption(_("Maternal Background"), "#ffb2a1") mat_bg.set_help(_("RGB-color for maternal box background.")) menu.add_option(category_name, "mat_bg", mat_bg) dest_path = DestinationOption(_("Destination"), config.get('paths.website-directory')) dest_path.set_help(_("The destination path for generated files.")) dest_path.set_directory_entry(True) menu.add_option(category_name, "dest_path", dest_path) dest_file = StringOption(_("Filename"), "AncestralFanchart.html") dest_file.set_help(_("The destination file name for html content.")) menu.add_option(category_name, "dest_file", dest_file)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book') ) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book') ) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year' : dateinfo[0], 'name' : rname } footer = StringOption(_('Footer'), footer_string ) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None #p from Filters import CustomFilters, GenericFilter from gramps.gen.filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showinlaw = BooleanOption(_("Show inlaw"), True) showinlaw.set_help(_("Whether to show inlaw persons")) menu.add_option(category_name, "showinlaw", showinlaw) showperson = BooleanOption(_("Show persons"), True) showperson.set_help(_("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson) incphotos = BooleanOption(_("Include Photos"), True) incphotos.set_help(_("Whether to show photos mentioned in the citation")) menu.add_option(category_name, "incphotos", incphotos)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('Report Title'), _('Title of the Report') ) title.set_help(_("Title string for the report.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Report') ) subtitle.set_help(_("Subtitle string for the report.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year' : dateinfo[0], 'name' : rname } footer = StringOption(_('Footer'), footer_string ) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None from gramps.gen.filters import CustomFilters, GenericFilter self.__filter = FilterOption(_("Select using filter"), 0) self.__filter.set_help(_("Select sources using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) self.__filter.set_filters(filter_list) menu.add_option(category_name, "filter", self.__filter) showperson = BooleanOption(_("Show persons"), True) showperson.set_help(_("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson) locale_opt = stdoptions.add_localization_option(menu, category_name) stdoptions.add_date_format_option(menu, category_name, locale_opt)
def add_menu_options(self, menu): """ Add options to the menu for the ancestral fan chart report. """ # ---------------------------- * category_general = _("General") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the report")) menu.add_option(category_general, "pid", pid) pid_year = NumberOption(_("Year of Birth of Center Person"), 0, -9999, 9999 ) pid_year.set_help(_("The year of birth of the center person. " "Estimate a year if unknown") ) menu.add_option(category_general, "pid_year", pid_year) dest_path = DestinationOption(_("Destination directory"), config.get('paths.website-directory') ) dest_path.set_help(_("Path for generated files")) dest_path.set_directory_entry(True) menu.add_option(category_general, "dest_path", dest_path) dest_file = StringOption(_("Filename"), "index.html") dest_file.set_help(_("The destination file name for html content.")) menu.add_option(category_general, "dest_file", dest_file) age_diff = StringOption(_("Default Age"), "25") age_diff.set_help(_("Default age of parent when child is born " "with unknown year of birth") ) menu.add_option(category_general, "age_diff", age_diff) locale_opt = stdoptions.add_localization_option(menu, category_general) stdoptions.add_date_format_option(menu, category_general, locale_opt) # ---------------------------- * category_what = _("What to show") show_id = BooleanOption(_("Show GrampsID"), True) show_id.set_help(_("Show GrampsID on top right of the box")) menu.add_option(category_what, "show_id", show_id) optimize = BooleanOption(_("Optimize"), True) optimize.set_help(_("Use as little space in horizontal " "direction as possible") ) menu.add_option(category_what, "optimize", optimize) # ---------------------------- * category_color = _("Color") m_bg = ColorOption(_("Male Box Color"), "#cda476") m_bg.set_help(_("Box background color for male person")) menu.add_option(category_color, "m_bg", m_bg) w_bg = ColorOption(_("Female Box Color"), "#efdfcf") w_bg.set_help(_("Box background color for female person")) menu.add_option(category_color, "w_bg", w_bg) # ---------------------------- * category_size = _("Size") year_to_pixel_factor = StringOption(_("Number of pixel per year"), "8") year_to_pixel_factor.set_help(_("How many pixel height is one year?")) menu.add_option(category_size, "year_to_pixel_factor", year_to_pixel_factor ) offset_x = StringOption(_("Offset X Coordinate"), "60") offset_x.set_help( _("How many pixel are unused besides the " "most left and most right boxes?") ) menu.add_option(category_size, "offset_x", offset_x) offset_y = StringOption(_("Offset Y Coordinate"), "75") offset_y.set_help(_("How many pixel are unused above first box?")) menu.add_option(category_size, "offset_y", offset_y) box_width = StringOption(_("Width of a box in pixel"), "140") box_width.set_help(_("Width of the box of a person in pixel")) menu.add_option(category_size, "box_width", box_width) box_offset_x = StringOption(_("Horizontal space " "between boxes in pixel"), "20" ) box_offset_x.set_help(_("Minimum horizontal space " "between 2 boxes in pixel") ) menu.add_option(category_size, "box_offset_x", box_offset_x) vert_length = StringOption( _("Length of vertical part of a line in pixel"), "100" ) vert_length.set_help(_("Parent and child boxes are connected " "with lines. This is the length of the vertical part of " "the lines in pixel") ) menu.add_option(category_size, "vert_length", vert_length) scale_x = StringOption( _("Number of pixel between left border and scale"), "10" ) scale_x.set_help(_("Number of pixel between left border and scale")) menu.add_option(category_size, "scale_x", scale_x)
def add_menu_options(self, menu): """ Add the options for the text birthday report """ category_name = _("Report Options") self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help( _("Select the filter to be applied to the report.")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter.")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) self._nf = stdoptions.add_name_format_option(menu, category_name) self._nf.connect('value-changed', self.__update_filters) stdoptions.add_private_data_option(menu, category_name) alive = BooleanOption(_("Include only living people"), True) alive.set_help(_("Include only living people in the report")) menu.add_option(category_name, "alive", alive) self.__update_filters() stdoptions.add_localization_option(menu, category_name) category_name = _("Content") year = NumberOption(_("Year of report"), time.localtime()[0], 1000, 3000) year.set_help(_("Year of report")) menu.add_option(category_name, "year", year) country = EnumeratedListOption(_("Country for holidays"), 0) holiday_table = libholiday.HolidayTable() countries = holiday_table.get_countries() countries.sort() if (len(countries) == 0 or (len(countries) > 0 and countries[0] != '')): countries.insert(0, '') count = 0 for c in holiday_table.get_countries(): country.add_item(count, c) count += 1 country.set_help(_("Select the country to see associated holidays")) menu.add_option(category_name, "country", country) start_dow = EnumeratedListOption(_("First day of week"), 1) long_days = date_displayer.long_days for count in range(1, 8): # conversion between gramps numbering (sun=1) and iso numbering (mon=1) of weekdays below start_dow.add_item((count+5) % 7 + 1, long_days[count].capitalize()) start_dow.set_help(_("Select the first day of the week for the report")) menu.add_option(category_name, "start_dow", start_dow) maiden_name = EnumeratedListOption(_("Birthday surname"), "own") maiden_name.add_item("spouse_first", _("Wives use husband's surname (from first family listed)")) maiden_name.add_item("spouse_last", _("Wives use husband's surname (from last family listed)")) maiden_name.add_item("own", _("Wives use their own surname")) maiden_name.set_help(_("Select married women's displayed surname")) menu.add_option(category_name, "maiden_name", maiden_name) birthdays = BooleanOption(_("Include birthdays"), True) birthdays.set_help(_("Include birthdays in the report")) menu.add_option(category_name, "birthdays", birthdays) anniversaries = BooleanOption(_("Include anniversaries"), True) anniversaries.set_help(_("Include anniversaries in the report")) menu.add_option(category_name, "anniversaries", anniversaries) option = BooleanOption(_("Include relationships to center person"), False) option.set_help(_("Include relationships to center person (slower)")) menu.add_option(category_name, "relationships", option) category_name = _("Text Options") titletext = StringOption(_("Title text"), _(_TITLE0)) titletext.set_help(_("Title of report")) menu.add_option(category_name, "titletext", titletext) text1 = StringOption(_("Text Area 1"), _(_TITLE1)) text1.set_help(_("First line of text at bottom of report")) menu.add_option(category_name, "text1", text1) text2 = StringOption(_("Text Area 2"), _(_TITLE2)) text2.set_help(_("Second line of text at bottom of report")) menu.add_option(category_name, "text2", text2) text3 = StringOption(_("Text Area 3"), URL_HOMEPAGE,) text3.set_help(_("Third line of text at bottom of report")) menu.add_option(category_name, "text3", text3)
def add_menu_options(self, menu): """ Add the options for the graphical calendar """ ########################## category_name = _("Report Options") add_option = partial(menu.add_option, category_name) ########################## self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help( _("Select filter to restrict people that appear on calendar")) add_option("filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Center Person")) self.__pid.set_help(_("The center person for the report")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) self._nf = stdoptions.add_name_format_option(menu, category_name) self._nf.connect('value-changed', self.__update_filters) self.__update_filters() stdoptions.add_private_data_option(menu, category_name) alive = BooleanOption(_("Include only living people"), True) alive.set_help(_("Include only living people in the calendar")) add_option("alive", alive) stdoptions.add_localization_option(menu, category_name) ########################## category_name = _("Content Options") add_option = partial(menu.add_option, category_name) ########################## year = NumberOption(_("Year of calendar"), time.localtime()[0], 1000, 3000) year.set_help(_("Year of calendar")) add_option("year", year) country = EnumeratedListOption(_("Country for holidays"), 0) holiday_table = libholiday.HolidayTable() countries = holiday_table.get_countries() countries.sort() if (len(countries) == 0 or (len(countries) > 0 and countries[0] != '')): countries.insert(0, '') count = 0 for c in countries: country.add_item(count, c) count += 1 country.set_help(_("Select the country to see associated holidays")) add_option("country", country) start_dow = EnumeratedListOption(_("First day of week"), 1) long_days = date_displayer.long_days for count in range(1, 8): # conversion between gramps numbering (sun=1) and iso numbering (mon=1) of weekdays below start_dow.add_item((count + 5) % 7 + 1, long_days[count].capitalize()) start_dow.set_help( _("Select the first day of the week for the calendar")) add_option("start_dow", start_dow) maiden_name = EnumeratedListOption(_("Birthday surname"), "own") maiden_name.add_item( "spouse_first", _("Wives use husband's surname (from first family listed)")) maiden_name.add_item( "spouse_last", _("Wives use husband's surname (from last family listed)")) maiden_name.add_item("own", _("Wives use their own surname")) maiden_name.set_help(_("Select married women's displayed surname")) add_option("maiden_name", maiden_name) birthdays = BooleanOption(_("Include birthdays"), True) birthdays.set_help(_("Include birthdays in the calendar")) add_option("birthdays", birthdays) anniversaries = BooleanOption(_("Include anniversaries"), True) anniversaries.set_help(_("Include anniversaries in the calendar")) add_option("anniversaries", anniversaries) ########################## category_name = _("Text Options") add_option = partial(menu.add_option, _("Text Options")) ########################## text1 = StringOption(_("Text Area 1"), _(_TITLE1)) text1.set_help(_("First line of text at bottom of calendar")) add_option("text1", text1) text2 = StringOption(_("Text Area 2"), _(_TITLE2)) text2.set_help(_("Second line of text at bottom of calendar")) add_option("text2", text2) text3 = StringOption(_("Text Area 3"), URL_HOMEPAGE) text3.set_help(_("Third line of text at bottom of calendar")) add_option("text3", text3)
def add_menu_options(self, menu): """ Add the options """ category_name = _("Options") self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help(_("Select filter to restrict people")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) self.__update_filters() source_text = StringOption(_("Source text"), _("Calculated Date Estimates")) source_text.set_help(_("Source to remove and/or add")) menu.add_option(category_name, "source_text", source_text) remove = BooleanOption(_("Remove previously added events, notes, and source"), True) remove.set_help(_("Remove calculated events, notes, and source; occurs immediately on Execute")) menu.add_option(category_name, "remove", remove) birth = EnumeratedListOption(_("Birth"), 0) birth.add_item(0, _("Do not add birth events")) birth.add_item(1, _("Add birth events without dates")) birth.add_item(2, _("Add birth events with dates")) birth.set_help( _("Add a birth events with or without estimated dates")) menu.add_option(category_name, "add_birth", birth) death = EnumeratedListOption(_("Death"), 0) death.add_item(0, _("Do not add death events")) death.add_item(1, _("Add death events without dates")) death.add_item(2, _("Add death events with dates")) death.set_help( _("Add death events with or without estimated dates")) menu.add_option(category_name, "add_death", death) # ----------------------------------------------------- num = NumberOption(_("Maximum age"), config.get('behavior.max-age-prob-alive'), 0, 200) num.set_help(_("Maximum age that one can live to")) menu.add_option(category_name, "MAX_AGE_PROB_ALIVE", num) num = NumberOption(_("Maximum sibling age difference"), config.get('behavior.max-sib-age-diff'), 0, 200) num.set_help(_("Maximum age difference between siblings")) menu.add_option(category_name, "MAX_SIB_AGE_DIFF", num) num = NumberOption(_("Average years between generations"), config.get('behavior.avg-generation-gap'), 0, 200) num.set_help(_("Average years between two generations")) menu.add_option(category_name, "AVG_GENERATION_GAP", num) dates = EnumeratedListOption(_("Estimated Dates"), 0) dates.add_item(0, _("Approximate (about)")) dates.add_item(1, _("Extremes (after and before)")) dates.set_help( _("Dates on events are either about or after/before")) menu.add_option(category_name, "dates", dates)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book')) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None #p from Filters import CustomFilters, GenericFilter from gramps.gen.filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showinlaw = BooleanOption(_("Show inlaw"), True) showinlaw.set_help(_("Whether to show inlaw persons")) menu.add_option(category_name, "showinlaw", showinlaw) showperson = BooleanOption(_("Show persons"), True) showperson.set_help( _("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson) incphotos = BooleanOption(_("Include Photos"), True) incphotos.set_help( _("Whether to show photos mentioned in the citation")) menu.add_option(category_name, "incphotos", incphotos)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('Report Title'), _('Title of the Report')) title.set_help(_("Title string for the report.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Report')) subtitle.set_help(_("Subtitle string for the report.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None from gramps.gen.filters import CustomFilters, GenericFilter self.__filter = FilterOption(_("Select using filter"), 0) self.__filter.set_help(_("Select sources using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) self.__filter.set_filters(filter_list) menu.add_option(category_name, "filter", self.__filter) showperson = BooleanOption(_("Show persons"), True) showperson.set_help( _("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson) locale_opt = stdoptions.add_localization_option(menu, category_name) stdoptions.add_date_format_option(menu, category_name, locale_opt)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book') ) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book') ) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year' : dateinfo[0], 'name' : rname } footer = StringOption(_('Footer'), footer_string ) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None #p- from Filters import CustomFilters, GenericFilter from gramps.gen.filters import CustomFilters, GenericFilter # opt = FilterOption(_("Select using filter"), 0) # opt.set_help(_("Select places using a filter")) # filter_list = [] # filter_list.append(GenericFilter()) # filter_list.extend(CustomFilters.get_filters('Source')) # opt.set_filters(filter_list) # menu.add_option(category_name, "filter", opt) # # showpersons = BooleanOption(_("Show persons"), True) # showpersons.set_help(_("Whether to show events and persons mentioned in the note")) # menu.add_option(category_name, "showpersons", showpersons) # # incphotos = BooleanOption(_("Include Photos"), True) # incphotos.set_help(_("Whether to show photos mentioned in the citation")) # menu.add_option(category_name, "incphotos", incphotos) category_name = _("Calc Options") # Reload filters to pick any new ones CustomFilters = None from gramps.gen.filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) # opt = FilterOption(_("Select Person filter"), 0) # opt.set_help(_("Select places using a person filter")) # filter_list = [] # filter_list.append(GenericFilter()) # filter_list.extend(CustomFilters.get_filters('Person')) # opt.set_filters(filter_list) # menu.add_option(category_name, "filter", opt) showallfamilies = BooleanOption(_("Show surnames of all famiies in clans"), True) showallfamilies.set_help(_("Whether to show the names of all families as surname")) menu.add_option(category_name, "showallfamilies", showallfamilies) placeformat = EnumeratedListOption(_("Place Format"), "Default") placeformat.set_items([ ("default", _("Default")), ("first", _("First")), ("firstplace", _("Firstplace")), ("firstplace-country", _("Firstplace-Country")), ("country", _("Country")), ("long", _("Long"))]) placeformat.set_help(_("If Placename is given long or short")) menu.add_option(category_name, "placeformat", placeformat)
def add_menu_options(self, menu): """ Add options to the menu for the ancestral collapsible tree report. """ category_name = _("Ancestral Collapsible Tree Options") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the report")) menu.add_option(category_name, "pid", pid) pid = menu.get_option_by_name('pid').get_value() center_person = self._dbase.get_person_from_gramps_id( menu.get_option_by_name('pid').get_value()) if center_person: name_str = global_name_display.display_formal(center_person) else: name_str = "" # We must figure out the value of the first option before we can # create the EnumeratedListOption fmt_list = global_name_display.get_name_format() name_format = EnumeratedListOption(_("Name format"), 0) name_format.add_item(0, _("Default")) for num, name, fmt_str, act in fmt_list: name_format.add_item(num, name) name_format.set_help(_("Select the format to display names")) menu.add_option(category_name, "name_format", name_format) self.maxgen = NumberOption(_("Include Generations"), 10, 1, 100) self.maxgen.set_help( _("The number of generations to include in the " + "report")) menu.add_option(category_name, "maxgen", self.maxgen) self.maxgen.connect('value-changed', self.validate_gen) male_bg = ColorOption(_("Male Background Color"), "#ffffff") male_bg.set_help(_("RGB-color for male box background.")) menu.add_option(category_name, "male_bg", male_bg) exp_male_bg = ColorOption(_("Male Expandable Background Color"), "#B4C4D9") exp_male_bg.set_help( _("RGB-color for male expandable box background.")) menu.add_option(category_name, "exp_male_bg", exp_male_bg) female_bg = ColorOption(_("Female Background"), "#ffffff") female_bg.set_help(_("RGB-color for female box background.")) menu.add_option(category_name, "female_bg", female_bg) exp_female_bg = ColorOption(_("Female Expandable Background"), "#F0D5D7") exp_female_bg.set_help( _("RGB-color for female expandable box " + "background.")) menu.add_option(category_name, "exp_female_bg", exp_female_bg) dest_path = DestinationOption(_("Destination"), config.get('paths.website-directory')) dest_path.set_help(_("The destination path for generated files.")) dest_path.set_directory_entry(True) menu.add_option(category_name, "dest_path", dest_path) dest_file = StringOption(_("Filename"), "AncestralCollapsible.html") dest_file.set_help(_("The destination file name for html content.")) menu.add_option(category_name, "dest_file", dest_file)
class SimpleBookTitleOptions(MenuReportOptions): """ Defines options and provides handling interface. """ def __init__(self, name, dbase): self.__db = dbase MenuReportOptions.__init__(self, name, dbase) def get_subject(self): """ Return a string that describes the subject of the report. """ return self.__title.get_value() def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") self.__title = StringOption(_('book|Title'), _('Title of the Book')) self.__title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", self.__title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) rname = self.__db.get_researcher().get_name() footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) imgid = MediaOption(_('Image')) imgid.set_help(_("Gramps ID of the media object to use as an image.")) menu.add_option(category_name, "imgid", imgid) imgsize = NumberOption(_('Image Size'), 0, 0, 20, 0.1) imgsize.set_help( _("Size of the image in cm. A value of 0 indicates " "that the image should be fit to the page.")) menu.add_option(category_name, "imgsize", imgsize) def make_default_style(self, default_style): """Make the default output style for the Simple Book Title report.""" font = FontStyle() font.set(face=FONT_SANS_SERIF, size=16, bold=1, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(1) para.set_alignment(PARA_ALIGN_CENTER) para.set(pad=0.5) para.set_description(_('The style used for the title.')) default_style.add_paragraph_style("SBT-Title", para) font = FontStyle() font.set(face=FONT_SANS_SERIF, size=14, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(2) para.set(pad=0.5) para.set_alignment(PARA_ALIGN_CENTER) para.set_description(_('The style used for the subtitle.')) default_style.add_paragraph_style("SBT-Subtitle", para) font = FontStyle() font.set(face=FONT_SANS_SERIF, size=10, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(2) para.set(pad=0.5) para.set_alignment(PARA_ALIGN_CENTER) para.set_description(_('The style used for the footer.')) default_style.add_paragraph_style("SBT-Footer", para)
def add_menu_options(self, menu): """ Add the options for the text birthday report """ category_name = _("Report Options") self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help( _("Select the filter to be applied to the report.")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter.")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) titletext = StringOption(_("Title text"), _(_TITLE0)) titletext.set_help(_("Title of report")) menu.add_option(category_name, "titletext", titletext) text1 = StringOption(_("Text Area 1"), _(_TITLE1)) text1.set_help(_("First line of text at bottom of report")) menu.add_option(category_name, "text1", text1) text2 = StringOption(_("Text Area 2"), _(_TITLE2)) text2.set_help(_("Second line of text at bottom of report")) menu.add_option(category_name, "text2", text2) text3 = StringOption(_("Text Area 3"), URL_HOMEPAGE,) text3.set_help(_("Third line of text at bottom of report")) menu.add_option(category_name, "text3", text3) category_name = _("Report Options (2)") self._nf = stdoptions.add_name_format_option(menu, category_name) self._nf.connect('value-changed', self.__update_filters) stdoptions.add_private_data_option(menu, category_name) alive = BooleanOption(_("Include only living people"), True) alive.set_help(_("Include only living people in the report")) menu.add_option(category_name, "alive", alive) deadtxt = StringOption(_("Dead Symbol"), _(_DEADTXT)) deadtxt.set_help(_("This will show after name to indicate that person is dead")) menu.add_option(category_name, "deadtxt", deadtxt) self.__update_filters() stdoptions.add_localization_option(menu, category_name) showyear = BooleanOption(_("Show event year"), True) showyear.set_help(_("Prints the year the event took place in the report")) menu.add_option(category_name, "showyear", showyear) category_name = _("Content") year = NumberOption(_("Year of report"), time.localtime()[0], 1000, 3000) year.set_help(_("Year of report")) menu.add_option(category_name, "year", year) country = EnumeratedListOption(_("Country for holidays"), 0) holiday_table = libholiday.HolidayTable() countries = holiday_table.get_countries() countries.sort() if (len(countries) == 0 or (len(countries) > 0 and countries[0] != '')): countries.insert(0, '') count = 0 for c in countries: country.add_item(count, c) count += 1 country.set_help(_("Select the country to see associated holidays")) menu.add_option(category_name, "country", country) maiden_name = EnumeratedListOption(_("Birthday surname"), "own") maiden_name.add_item( "spouse_first", _("Wives use husband's surname (from first family listed)")) maiden_name.add_item( "spouse_last", _("Wives use husband's surname (from last family listed)")) maiden_name.add_item("own", _("Wives use their own surname")) maiden_name.set_help(_("Select married women's displayed surname")) menu.add_option(category_name, "maiden_name", maiden_name) birthdays = BooleanOption(_("Include birthdays"), True) birthdays.set_help(_("Whether to include birthdays")) menu.add_option(category_name, "birthdays", birthdays) anniversaries = BooleanOption(_("Include anniversaries"), True) anniversaries.set_help(_("Whether to include anniversaries")) menu.add_option(category_name, "anniversaries", anniversaries) death_anniversaries = BooleanOption(_("Include death anniversaries"), True) death_anniversaries.set_help(_("Whether to include anniversaries of death")) menu.add_option(category_name, "death_anniversaries", death_anniversaries) show_relships = BooleanOption( _("Include relationship to center person"), False) show_relships.set_help( _("Whether to include relationships to the center person")) menu.add_option(category_name, "relationships", show_relships)
def add_menu_options(self, menu): """ Add options to the menu for the ancestral collapsible tree report. """ category_name = _("Ancestral Collapsible Tree Options") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the report")) menu.add_option(category_name, "pid", pid) pid = menu.get_option_by_name('pid').get_value() center_person = self._dbase.get_person_from_gramps_id( menu.get_option_by_name('pid').get_value()) if center_person : name_str = global_name_display.display_formal(center_person) else: name_str = "" # We must figure out the value of the first option before we can # create the EnumeratedListOption fmt_list = global_name_display.get_name_format() name_format = EnumeratedListOption(_("Name format"), 0) name_format.add_item(0, _("Default")) for num, name, fmt_str, act in fmt_list: name_format.add_item(num, name) name_format.set_help(_("Select the format to display names")) menu.add_option(category_name, "name_format", name_format) self.maxgen = NumberOption(_("Include Generations"), 10, 1, 100) self.maxgen.set_help(_("The number of generations to include in the " + "report")) menu.add_option(category_name, "maxgen", self.maxgen) self.maxgen.connect('value-changed', self.validate_gen) male_bg = ColorOption(_("Male Background Color"), "#ffffff") male_bg.set_help(_("RGB-color for male box background.")) menu.add_option(category_name, "male_bg", male_bg) exp_male_bg = ColorOption(_("Male Expandable Background Color"), "#B4C4D9") exp_male_bg.set_help(_("RGB-color for male expandable box background.")) menu.add_option(category_name, "exp_male_bg", exp_male_bg) female_bg = ColorOption(_("Female Background"), "#ffffff") female_bg.set_help(_("RGB-color for female box background.")) menu.add_option(category_name, "female_bg", female_bg) exp_female_bg = ColorOption(_("Female Expandable Background"), "#F0D5D7") exp_female_bg.set_help(_("RGB-color for female expandable box " + "background.")) menu.add_option(category_name, "exp_female_bg", exp_female_bg) dest_path = DestinationOption(_("Destination"), config.get('paths.website-directory')) dest_path.set_help(_("The destination path for generated files.")) dest_path.set_directory_entry(True) menu.add_option(category_name, "dest_path", dest_path) dest_file = StringOption(_("Filename"), "AncestralCollapsible.html") dest_file.set_help(_("The destination file name for html content.")) menu.add_option(category_name, "dest_file", dest_file)
class SimpleBookTitleOptions(MenuReportOptions): """ Defines options and provides handling interface. """ def __init__(self, name, dbase): self.__db = dbase MenuReportOptions.__init__(self, name, dbase) def get_subject(self): """ Return a string that describes the subject of the report. """ return self.__title.get_value() def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") self.__title = StringOption(_('book|Title'), _('Title of the Book')) self.__title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", self.__title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) rname = self.__db.get_researcher().get_name() footer_string = _('Copyright %(year)d %(name)s' ) % {'year' : dateinfo[0], 'name' : rname} footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) imgid = MediaOption(_('Image')) imgid.set_help( _("Gramps ID of the media object to use as an image.")) menu.add_option(category_name, "imgid", imgid) imgsize = NumberOption(_('Image Size'), 0, 0, 20, 0.1) imgsize.set_help(_("Size of the image in cm. A value of 0 indicates " "that the image should be fit to the page.")) menu.add_option(category_name, "imgsize", imgsize) def make_default_style(self, default_style): """Make the default output style for the Simple Book Title report.""" font = FontStyle() font.set(face=FONT_SANS_SERIF, size=16, bold=1, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(1) para.set_alignment(PARA_ALIGN_CENTER) para.set(pad=0.5) para.set_description(_('The style used for the title.')) default_style.add_paragraph_style("SBT-Title", para) font = FontStyle() font.set(face=FONT_SANS_SERIF, size=14, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(2) para.set(pad=0.5) para.set_alignment(PARA_ALIGN_CENTER) para.set_description(_('The style used for the subtitle.')) default_style.add_paragraph_style("SBT-Subtitle", para) font = FontStyle() font.set(face=FONT_SANS_SERIF, size=10, italic=1) para = ParagraphStyle() para.set_font(font) para.set_header_level(2) para.set(pad=0.5) para.set_alignment(PARA_ALIGN_CENTER) para.set_description(_('The style used for the footer.')) default_style.add_paragraph_style("SBT-Footer", para)
class AncestorTreeOptions(MenuReportOptions): """ Defines options and provides handling interface. """ def __init__(self, name, dbase): self.__db = dbase self.__pid = None self.box_Y_sf = None self.box_shadow_sf = None MenuReportOptions.__init__(self, name, dbase) def get_subject(self): """ Return a string that describes the subject of the report. """ gid = self.__pid.get_value() person = self.__db.get_person_from_gramps_id(gid) return _nd.display(person) def add_menu_options(self, menu): ################## category_name = _("Tree Options") self.__pid = PersonOption(_("Center Person")) self.__pid.set_help(_("The center person for the tree")) menu.add_option(category_name, "pid", self.__pid) siblings = BooleanOption( _('Include siblings of the center person'), False) siblings.set_help( _("Whether to only display the center person or all " "of his/her siblings too")) menu.add_option(category_name, "inc_siblings", siblings) self.max_gen = NumberOption(_("Generations"), 10, 1, 50) self.max_gen.set_help(_("The number of generations to include " "in the tree")) menu.add_option(category_name, "maxgen", self.max_gen) self.fillout = EnumeratedListOption(_("Display unknown\ngenerations"), 0) self.fillout.set_help(_("The number of generations of empty " "boxes that will be displayed")) menu.add_option(category_name, "fill_out", self.fillout) self.max_gen.connect('value-changed', self.__fillout_vals) self.__fillout_vals() compress = BooleanOption(_('Compress tree'), True) compress.set_help( _("Whether to remove any extra blank spaces set " "aside for people that are unknown")) menu.add_option(category_name, "compress_tree", compress) #better to 'Show siblings of\nthe center person #Spouse_disp = EnumeratedListOption(_("Show spouses of\nthe center " # "person"), 0) #Spouse_disp.add_item(0, _("No. Do not show Spouses")) #Spouse_disp.add_item(1, _("Yes, and use the Main Display Format")) #Spouse_disp.add_item(2, _("Yes, and use the Secondary " # "Display Format")) #Spouse_disp.set_help(_("Show spouses of the center person?")) #menu.add_option(category_name, "Spouse_disp", Spouse_disp) ################## category_name = _("Report Options") self.title = EnumeratedListOption(_("Report Title"), 0) self.title.add_item(0, _("Do not include a title")) self.title.add_item(1, _("Include Report Title")) self.title.set_help(_("Choose a title for the report")) menu.add_option(category_name, "report_title", self.title) border = BooleanOption(_('Include a border'), False) border.set_help(_("Whether to make a border around the report.")) menu.add_option(category_name, "inc_border", border) prnnum = BooleanOption(_('Include Page Numbers'), False) prnnum.set_help(_("Whether to print page numbers on each page.")) menu.add_option(category_name, "inc_pagenum", prnnum) self.scale = EnumeratedListOption(_("Scale tree to fit"), 0) self.scale.add_item(0, _("Do not scale tree")) self.scale.add_item(1, _("Scale tree to fit page width only")) self.scale.add_item(2, _("Scale tree to fit the size of the page")) self.scale.set_help( _("Whether to scale the tree to fit a specific paper size") ) menu.add_option(category_name, "scale_tree", self.scale) self.scale.connect('value-changed', self.__check_blank) if "BKI" not in self.name.split(","): self.__onepage = BooleanOption( _("Resize Page to Fit Tree size\n" "\n" "Note: Overrides options in the 'Paper Option' tab" ), False) self.__onepage.set_help( _("Whether to resize the page to fit the size \n" "of the tree. Note: the page will have a \n" "non standard size.\n" "\n" "With this option selected, the following will happen:\n" "\n" "With the 'Do not scale tree' option the page\n" " is resized to the height/width of the tree\n" "\n" "With 'Scale tree to fit page width only' the height of\n" " the page is resized to the height of the tree\n" "\n" "With 'Scale tree to fit the size of the page' the page\n" " is resized to remove any gap in either height or width" )) menu.add_option(category_name, "resize_page", self.__onepage) self.__onepage.connect('value-changed', self.__check_blank) else: self.__onepage = None self.__blank = BooleanOption(_('Include Blank Pages'), True) self.__blank.set_help(_("Whether to include pages that are blank.")) menu.add_option(category_name, "inc_blank", self.__blank) self.__check_blank() ################## category_name = _("Report Options (2)") stdoptions.add_name_format_option(menu, category_name) stdoptions.add_living_people_option(menu, category_name) stdoptions.add_private_data_option(menu, category_name) locale_opt = stdoptions.add_localization_option(menu, category_name) stdoptions.add_date_format_option(menu, category_name, locale_opt) ################## category_name = _("Display") disp = TextOption(_("Father\nDisplay Format"), ["$n", "%s $b" %_BORN, "-{%s $d}" %_DIED]) disp.set_help(_("Display format for the fathers box.")) menu.add_option(category_name, "father_disp", disp) #Will add when libsubstkeyword supports it. #missing = EnumeratedListOption(_("Replace missing\nplaces\\dates \ # with"), 0) #missing.add_item(0, _("Does not display anything")) #missing.add_item(1, _("Displays '_____'")) #missing.set_help(_("What will print when information is not known")) #menu.add_option(category_name, "miss_val", missing) disp_mom = TextOption(_("Mother\nDisplay Format"), ["$n", "%s $b" %_BORN, "%s $m" %_MARR, "-{%s $d}" %_DIED]) disp_mom.set_help(_("Display format for the mothers box.")) menu.add_option(category_name, "mother_disp", disp_mom) center_disp = EnumeratedListOption(_("Center person uses\n" "which format"), 0) center_disp.add_item(0, _("Use Fathers Display format")) center_disp.add_item(1, _("Use Mothers display format")) center_disp.set_help(_("The display format for the center person")) menu.add_option(category_name, "center_uses", center_disp) self.incmarr = BooleanOption(_('Include Marriage box'), False) self.incmarr.set_help( _("Whether to include a separate marital box in the report")) menu.add_option(category_name, "inc_marr", self.incmarr) self.incmarr.connect('value-changed', self._incmarr_changed) self.marrdisp = StringOption(_("Marriage\nDisplay Format"), "%s $m" % _MARR) self.marrdisp.set_help(_("Display format for the marital box.")) menu.add_option(category_name, "marr_disp", self.marrdisp) self._incmarr_changed() ################## category_name = _("Advanced") repldisp = TextOption( _("Replace Display Format:\n'Replace this'/' with this'"), []) repldisp.set_help(_("i.e.\nUnited States of America/U.S.A")) menu.add_option(category_name, "replace_list", repldisp) # TODO this code is never used and so I conclude it is for future use # self.__include_images = BooleanOption( # _('Include thumbnail images of people'), False) # self.__include_images.set_help( # _("Whether to include thumbnails of people.")) # menu.add_option(category_name, "includeImages", self.__include_images) self.usenote = BooleanOption(_('Include a note'), False) self.usenote.set_help(_("Whether to include a note on the report.")) menu.add_option(category_name, "inc_note", self.usenote) self.usenote.connect('value-changed', self._usenote_changed) self.notedisp = TextOption(_("Note"), []) self.notedisp.set_help(_("Add a note\n\n" "$T inserts today's date")) menu.add_option(category_name, "note_disp", self.notedisp) locales = NoteType(0, 1) self.notelocal = EnumeratedListOption(_("Note Location"), 0) for num, text in locales.note_locals(): self.notelocal.add_item(num, text) self.notelocal.set_help(_("Where to place the note.")) menu.add_option(category_name, "note_place", self.notelocal) self._usenote_changed() self.box_Y_sf = NumberOption(_("inter-box scale factor"), 1.00, 0.10, 2.00, 0.01) self.box_Y_sf.set_help( _("Make the inter-box spacing bigger or smaller")) menu.add_option(category_name, "box_Yscale", self.box_Y_sf) self.box_shadow_sf = NumberOption(_("box shadow scale factor"), 1.00, 0.00, 2.00, 0.01) # down to 0 self.box_shadow_sf.set_help(_("Make the box shadow bigger or smaller")) menu.add_option(category_name, "shadowscale", self.box_shadow_sf) def _incmarr_changed(self): """ If Marriage box is not enabled, disable Marriage Display Format box """ value = self.incmarr.get_value() self.marrdisp.set_available(value) def _usenote_changed(self): """ If Note box is not enabled, disable Note Location box """ value = self.usenote.get_value() self.notelocal.set_available(value) def __check_blank(self): if self.__onepage: value = not self.__onepage.get_value() else: value = True off = value and (self.scale.get_value() != 2) self.__blank.set_available(off) def __fillout_vals(self): max_gen = self.max_gen.get_value() old_val = self.fillout.get_value() item_list = [] item_list.append([0, _("No generations of empty boxes " "for unknown ancestors")]) if max_gen > 1: item_list.append([1, _("One Generation of empty boxes " "for unknown ancestors")]) item_list.extend( [itr, str(itr) + _(" Generations of empty boxes for unknown ancestors")] for itr in range(2, max_gen)) self.fillout.set_items(item_list) if old_val+2 > len(item_list): self.fillout.set_value(len(item_list) -2) def make_default_style(self, default_style): """Make the default output style for the Ancestor Tree.""" ## Paragraph Styles: font = FontStyle() font.set_size(9) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_description( _('The basic style used for the text display.')) default_style.add_paragraph_style("AC2-Normal", para_style) box_shadow = PT2CM(font.get_size()) * .6 font = FontStyle() font.set_size(9) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_description( _('The basic style used for the note display.')) default_style.add_paragraph_style("AC2-Note", para_style) font = FontStyle() font.set_size(16) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_alignment(PARA_ALIGN_CENTER) para_style.set_description(_('The style used for the title.')) default_style.add_paragraph_style("AC2-Title", para_style) ## Draw styles graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Normal") graph_style.set_shadow(1, box_shadow) #shadow set by text size graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-box", graph_style) graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Normal") #graph_style.set_shadow(0, PT2CM(9)) #shadow set by text size graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-fam-box", graph_style) graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Note") graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-note-box", graph_style) # TODO this seems meaningless, as only the text is displayed graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Title") graph_style.set_color((0, 0, 0)) graph_style.set_fill_color((255, 255, 255)) graph_style.set_line_width(0) graph_style.set_description(_("Cannot edit this reference")) default_style.add_draw_style("AC2-Title-box", graph_style) graph_style = GraphicsStyle() default_style.add_draw_style("AC2-line", graph_style)
def add_menu_options(self, menu): """ Add the options for the text birthday report """ category_name = _("Report Options") self.__filter = FilterOption(_("Filter"), 0) self.__filter.set_help( _("Select the filter to be applied to the report.")) menu.add_option(category_name, "filter", self.__filter) self.__filter.connect('value-changed', self.__filter_changed) self.__pid = PersonOption(_("Filter Person")) self.__pid.set_help(_("The center person for the filter.")) menu.add_option(category_name, "pid", self.__pid) self.__pid.connect('value-changed', self.__update_filters) titletext = StringOption(_("Title text"), _(_TITLE0)) titletext.set_help(_("Title of report")) menu.add_option(category_name, "titletext", titletext) text1 = StringOption(_("Text Area 1"), _(_TITLE1)) text1.set_help(_("First line of text at bottom of report")) menu.add_option(category_name, "text1", text1) text2 = StringOption(_("Text Area 2"), _(_TITLE2)) text2.set_help(_("Second line of text at bottom of report")) menu.add_option(category_name, "text2", text2) text3 = StringOption( _("Text Area 3"), URL_HOMEPAGE, ) text3.set_help(_("Third line of text at bottom of report")) menu.add_option(category_name, "text3", text3) category_name = _("Report Options (2)") self._nf = stdoptions.add_name_format_option(menu, category_name) self._nf.connect('value-changed', self.__update_filters) stdoptions.add_private_data_option(menu, category_name) alive = BooleanOption(_("Include only living people"), True) alive.set_help(_("Include only living people in the report")) menu.add_option(category_name, "alive", alive) self.__update_filters() stdoptions.add_localization_option(menu, category_name) category_name = _("Content") year = NumberOption(_("Year of report"), time.localtime()[0], 1000, 3000) year.set_help(_("Year of report")) menu.add_option(category_name, "year", year) country = EnumeratedListOption(_("Country for holidays"), 0) holiday_table = libholiday.HolidayTable() countries = holiday_table.get_countries() countries.sort() if (len(countries) == 0 or (len(countries) > 0 and countries[0] != '')): countries.insert(0, '') count = 0 for c in countries: country.add_item(count, c) count += 1 country.set_help(_("Select the country to see associated holidays")) menu.add_option(category_name, "country", country) maiden_name = EnumeratedListOption(_("Birthday surname"), "own") maiden_name.add_item( "spouse_first", _("Wives use husband's surname (from first family listed)")) maiden_name.add_item( "spouse_last", _("Wives use husband's surname (from last family listed)")) maiden_name.add_item("own", _("Wives use their own surname")) maiden_name.set_help(_("Select married women's displayed surname")) menu.add_option(category_name, "maiden_name", maiden_name) birthdays = BooleanOption(_("Include birthdays"), True) birthdays.set_help(_("Whether to include birthdays")) menu.add_option(category_name, "birthdays", birthdays) anniversaries = BooleanOption(_("Include anniversaries"), True) anniversaries.set_help(_("Whether to include anniversaries")) menu.add_option(category_name, "anniversaries", anniversaries) show_relships = BooleanOption( _("Include relationship to center person"), False) show_relships.set_help( _("Whether to include relationships to the center person")) menu.add_option(category_name, "relationships", show_relships)
def add_menu_options(self, menu): ################## category_name = _("Tree Options") self.__pid = PersonOption(_("Center Person")) self.__pid.set_help(_("The center person for the tree")) menu.add_option(category_name, "pid", self.__pid) stdoptions.add_name_format_option(menu, category_name) stdoptions.add_living_people_option(menu, category_name) stdoptions.add_private_data_option(menu, category_name) siblings = BooleanOption(_('Include siblings of the center person'), False) siblings.set_help( _("Whether to only display the center person or all " "of his/her siblings too")) menu.add_option(category_name, "inc_siblings", siblings) self.max_gen = NumberOption(_("Generations"), 10, 1, 50) self.max_gen.set_help( _("The number of generations to include " "in the tree")) menu.add_option(category_name, "maxgen", self.max_gen) self.fillout = EnumeratedListOption(_("Display unknown\ngenerations"), 0) self.fillout.set_help( _("The number of generations of empty " "boxes that will be displayed")) menu.add_option(category_name, "fill_out", self.fillout) self.max_gen.connect('value-changed', self.__fillout_vals) self.__fillout_vals() compress = BooleanOption(_('Compress tree'), True) compress.set_help( _("Whether to remove any extra blank spaces set " "aside for people that are unknown")) menu.add_option(category_name, "compress_tree", compress) #better to 'Show siblings of\nthe center person #Spouse_disp = EnumeratedListOption(_("Show spouses of\nthe center " # "person"), 0) #Spouse_disp.add_item(0, _("No. Do not show Spouses")) #Spouse_disp.add_item(1, _("Yes, and use the Main Display Format")) #Spouse_disp.add_item(2, _("Yes, and use the Secondary " # "Display Format")) #Spouse_disp.set_help(_("Show spouses of the center person?")) #menu.add_option(category_name, "Spouse_disp", Spouse_disp) ################## category_name = _("Report Options") self.title = EnumeratedListOption(_("Report Title"), 0) self.title.add_item(0, _("Do not include a title")) self.title.add_item(1, _("Include Report Title")) self.title.set_help(_("Choose a title for the report")) menu.add_option(category_name, "report_title", self.title) border = BooleanOption(_('Include a border'), False) border.set_help(_("Whether to make a border around the report.")) menu.add_option(category_name, "inc_border", border) prnnum = BooleanOption(_('Include Page Numbers'), False) prnnum.set_help(_("Whether to print page numbers on each page.")) menu.add_option(category_name, "inc_pagenum", prnnum) stdoptions.add_localization_option(menu, category_name) ################## category_name = _("Display") disp = TextOption( _("Father\nDisplay Format"), ["$n", "%s $b" % _BORN, "-{%s $d}" % _DIED]) disp.set_help(_("Display format for the fathers box.")) menu.add_option(category_name, "father_disp", disp) #Will add when libsubstkeyword supports it. #missing = EnumeratedListOption(_("Replace missing\nplaces\\dates \ # with"), 0) #missing.add_item(0, _("Does not display anything")) #missing.add_item(1, _("Displays '_____'")) #missing.set_help(_("What will print when information is not known")) #menu.add_option(category_name, "miss_val", missing) #category_name = _("Secondary") disp_mom = TextOption( _("Mother\nDisplay Format"), ["$n", "%s $b" % _BORN, "%s $m" % _MARR, "-{%s $d}" % _DIED]) disp_mom.set_help(_("Display format for the mothers box.")) menu.add_option(category_name, "mother_disp", disp_mom) center_disp = EnumeratedListOption( _("Center person uses\n" "which format"), 0) center_disp.add_item(0, _("Use Fathers Display format")) center_disp.add_item(1, _("Use Mothers display format")) center_disp.set_help( _("Which Display format to use the center person")) menu.add_option(category_name, "center_uses", center_disp) incmarr = BooleanOption(_('Include Marriage box'), False) incmarr.set_help( _("Whether to include a separate marital box in the report")) menu.add_option(category_name, "inc_marr", incmarr) marrdisp = StringOption(_("Marriage\nDisplay Format"), "%s $m" % _MARR) marrdisp.set_help(_("Display format for the marital box.")) menu.add_option(category_name, "marr_disp", marrdisp) ################## category_name = _("Size") self.scale = EnumeratedListOption(_("Scale tree to fit"), 0) self.scale.add_item(0, _("Do not scale tree")) self.scale.add_item(1, _("Scale tree to fit page width only")) self.scale.add_item(2, _("Scale tree to fit the size of the page")) self.scale.set_help( _("Whether to scale the tree to fit a specific paper size")) menu.add_option(category_name, "scale_tree", self.scale) self.scale.connect('value-changed', self.__check_blank) if "BKI" not in self.name.split(","): self.__onepage = BooleanOption( _("Resize Page to Fit Tree size\n" "\n" "Note: Overrides options in the 'Paper Option' tab"), False) self.__onepage.set_help( _("Whether to resize the page to fit the size \n" "of the tree. Note: the page will have a \n" "non standard size.\n" "\n" "With this option selected, the following will happen:\n" "\n" "With the 'Do not scale tree' option the page\n" " is resized to the height/width of the tree\n" "\n" "With 'Scale tree to fit page width only' the height of\n" " the page is resized to the height of the tree\n" "\n" "With 'Scale tree to fit the size of the page' the page\n" " is resized to remove any gap in either height or width")) menu.add_option(category_name, "resize_page", self.__onepage) self.__onepage.connect('value-changed', self.__check_blank) else: self.__onepage = None self.box_Y_sf = NumberOption(_("inter-box scale factor"), 1.00, 0.10, 2.00, 0.01) self.box_Y_sf.set_help( _("Make the inter-box spacing bigger or smaller")) menu.add_option(category_name, "box_Yscale", self.box_Y_sf) self.box_shadow_sf = NumberOption(_("box shadow scale factor"), 1.00, 0.00, 2.00, 0.01) # down to 0 self.box_shadow_sf.set_help(_("Make the box shadow bigger or smaller")) menu.add_option(category_name, "shadowscale", self.box_shadow_sf) ################## category_name = _("Replace") repldisp = TextOption( _("Replace Display Format:\n'Replace this'/' with this'"), []) repldisp.set_help(_("i.e.\nUnited States of America/U.S.A")) menu.add_option(category_name, "replace_list", repldisp) ################## category_name = _("Include") self.__blank = BooleanOption(_('Include Blank Pages'), True) self.__blank.set_help(_("Whether to include pages that are blank.")) menu.add_option(category_name, "inc_blank", self.__blank) self.__check_blank() # TODO this code is never used and so I conclude it is for future use # self.__include_images = BooleanOption( # _('Include thumbnail images of people'), False) # self.__include_images.set_help( # _("Whether to include thumbnails of people.")) # menu.add_option(category_name, "includeImages", self.__include_images) #category_name = _("Notes") self.usenote = BooleanOption(_('Include a note'), False) self.usenote.set_help(_("Whether to include a note on " "the report.")) menu.add_option(category_name, "inc_note", self.usenote) self.notedisp = TextOption(_("Note"), []) self.notedisp.set_help(_("Add a note\n\n" "$T inserts today's date")) menu.add_option(category_name, "note_disp", self.notedisp) locales = NoteType(0, 1) self.notelocal = EnumeratedListOption(_("Note Location"), 0) for num, text in locales.note_locals(): self.notelocal.add_item(num, text) self.notelocal.set_help(_("Where to place the note.")) menu.add_option(category_name, "note_place", self.notelocal)
class AncestorTreeOptions(MenuReportOptions): """ Defines options and provides handling interface. """ def __init__(self, name, dbase): self.__db = dbase self.__pid = None self.box_Y_sf = None self.box_shadow_sf = None MenuReportOptions.__init__(self, name, dbase) def get_subject(self): """ Return a string that describes the subject of the report. """ gid = self.__pid.get_value() person = self.__db.get_person_from_gramps_id(gid) return _nd.display(person) def add_menu_options(self, menu): ################## category_name = _("Tree Options") self.__pid = PersonOption(_("Center Person")) self.__pid.set_help(_("The center person for the tree")) menu.add_option(category_name, "pid", self.__pid) siblings = BooleanOption(_('Include siblings of the center person'), False) siblings.set_help( _("Whether to only display the center person or all " "of his/her siblings too")) menu.add_option(category_name, "inc_siblings", siblings) self.max_gen = NumberOption(_("Generations"), 10, 1, 50) self.max_gen.set_help( _("The number of generations to include " "in the tree")) menu.add_option(category_name, "maxgen", self.max_gen) self.fillout = EnumeratedListOption(_("Display unknown\ngenerations"), 0) self.fillout.set_help( _("The number of generations of empty " "boxes that will be displayed")) menu.add_option(category_name, "fill_out", self.fillout) self.max_gen.connect('value-changed', self.__fillout_vals) self.__fillout_vals() compress = BooleanOption(_('Compress tree'), True) compress.set_help( _("Whether to remove any extra blank spaces set " "aside for people that are unknown")) menu.add_option(category_name, "compress_tree", compress) #better to 'Show siblings of\nthe center person #Spouse_disp = EnumeratedListOption(_("Show spouses of\nthe center " # "person"), 0) #Spouse_disp.add_item(0, _("No. Do not show Spouses")) #Spouse_disp.add_item(1, _("Yes, and use the Main Display Format")) #Spouse_disp.add_item(2, _("Yes, and use the Secondary " # "Display Format")) #Spouse_disp.set_help(_("Show spouses of the center person?")) #menu.add_option(category_name, "Spouse_disp", Spouse_disp) ################## category_name = _("Report Options") self.title = EnumeratedListOption(_("Report Title"), 0) self.title.add_item(0, _("Do not include a title")) self.title.add_item(1, _("Include Report Title")) self.title.set_help(_("Choose a title for the report")) menu.add_option(category_name, "report_title", self.title) border = BooleanOption(_('Include a border'), False) border.set_help(_("Whether to make a border around the report.")) menu.add_option(category_name, "inc_border", border) prnnum = BooleanOption(_('Include Page Numbers'), False) prnnum.set_help(_("Whether to print page numbers on each page.")) menu.add_option(category_name, "inc_pagenum", prnnum) self.scale = EnumeratedListOption(_("Scale tree to fit"), 0) self.scale.add_item(0, _("Do not scale tree")) self.scale.add_item(1, _("Scale tree to fit page width only")) self.scale.add_item(2, _("Scale tree to fit the size of the page")) self.scale.set_help( _("Whether to scale the tree to fit a specific paper size")) menu.add_option(category_name, "scale_tree", self.scale) self.scale.connect('value-changed', self.__check_blank) if "BKI" not in self.name.split(","): self.__onepage = BooleanOption( _("Resize Page to Fit Tree size\n" "\n" "Note: Overrides options in the 'Paper Option' tab"), False) self.__onepage.set_help( _("Whether to resize the page to fit the size \n" "of the tree. Note: the page will have a \n" "non standard size.\n" "\n" "With this option selected, the following will happen:\n" "\n" "With the 'Do not scale tree' option the page\n" " is resized to the height/width of the tree\n" "\n" "With 'Scale tree to fit page width only' the height of\n" " the page is resized to the height of the tree\n" "\n" "With 'Scale tree to fit the size of the page' the page\n" " is resized to remove any gap in either height or width")) menu.add_option(category_name, "resize_page", self.__onepage) self.__onepage.connect('value-changed', self.__check_blank) else: self.__onepage = None self.__blank = BooleanOption(_('Include Blank Pages'), True) self.__blank.set_help(_("Whether to include pages that are blank.")) menu.add_option(category_name, "inc_blank", self.__blank) self.__check_blank() ################## category_name = _("Report Options (2)") stdoptions.add_name_format_option(menu, category_name) stdoptions.add_living_people_option(menu, category_name) stdoptions.add_private_data_option(menu, category_name) locale_opt = stdoptions.add_localization_option(menu, category_name) stdoptions.add_date_format_option(menu, category_name, locale_opt) ################## category_name = _("Display") disp = TextOption( _("Father\nDisplay Format"), ["$n", "%s $b" % _BORN, "-{%s $d}" % _DIED]) disp.set_help(_("Display format for the fathers box.")) menu.add_option(category_name, "father_disp", disp) #Will add when libsubstkeyword supports it. #missing = EnumeratedListOption(_("Replace missing\nplaces\\dates \ # with"), 0) #missing.add_item(0, _("Does not display anything")) #missing.add_item(1, _("Displays '_____'")) #missing.set_help(_("What will print when information is not known")) #menu.add_option(category_name, "miss_val", missing) disp_mom = TextOption( _("Mother\nDisplay Format"), ["$n", "%s $b" % _BORN, "%s $m" % _MARR, "-{%s $d}" % _DIED]) disp_mom.set_help(_("Display format for the mothers box.")) menu.add_option(category_name, "mother_disp", disp_mom) center_disp = EnumeratedListOption( _("Center person uses\n" "which format"), 0) center_disp.add_item(0, _("Use Fathers Display format")) center_disp.add_item(1, _("Use Mothers display format")) center_disp.set_help(_("The display format for the center person")) menu.add_option(category_name, "center_uses", center_disp) self.incmarr = BooleanOption(_('Include Marriage box'), False) self.incmarr.set_help( _("Whether to include a separate marital box in the report")) menu.add_option(category_name, "inc_marr", self.incmarr) self.incmarr.connect('value-changed', self._incmarr_changed) self.marrdisp = StringOption(_("Marriage\nDisplay Format"), "%s $m" % _MARR) self.marrdisp.set_help(_("Display format for the marital box.")) menu.add_option(category_name, "marr_disp", self.marrdisp) self._incmarr_changed() ################## category_name = _("Advanced") repldisp = TextOption( _("Replace Display Format:\n'Replace this'/' with this'"), []) repldisp.set_help(_("i.e.\nUnited States of America/U.S.A")) menu.add_option(category_name, "replace_list", repldisp) # TODO this code is never used and so I conclude it is for future use # self.__include_images = BooleanOption( # _('Include thumbnail images of people'), False) # self.__include_images.set_help( # _("Whether to include thumbnails of people.")) # menu.add_option(category_name, "includeImages", self.__include_images) self.usenote = BooleanOption(_('Include a note'), False) self.usenote.set_help(_("Whether to include a note on the report.")) menu.add_option(category_name, "inc_note", self.usenote) self.usenote.connect('value-changed', self._usenote_changed) self.notedisp = TextOption(_("Note"), []) self.notedisp.set_help(_("Add a note\n\n" "$T inserts today's date")) menu.add_option(category_name, "note_disp", self.notedisp) locales = NoteType(0, 1) self.notelocal = EnumeratedListOption(_("Note Location"), 0) for num, text in locales.note_locals(): self.notelocal.add_item(num, text) self.notelocal.set_help(_("Where to place the note.")) menu.add_option(category_name, "note_place", self.notelocal) self._usenote_changed() self.box_Y_sf = NumberOption(_("inter-box scale factor"), 1.00, 0.10, 2.00, 0.01) self.box_Y_sf.set_help( _("Make the inter-box spacing bigger or smaller")) menu.add_option(category_name, "box_Yscale", self.box_Y_sf) self.box_shadow_sf = NumberOption(_("box shadow scale factor"), 1.00, 0.00, 2.00, 0.01) # down to 0 self.box_shadow_sf.set_help(_("Make the box shadow bigger or smaller")) menu.add_option(category_name, "shadowscale", self.box_shadow_sf) def _incmarr_changed(self): """ If Marriage box is not enabled, disable Marriage Display Format box """ value = self.incmarr.get_value() self.marrdisp.set_available(value) def _usenote_changed(self): """ If Note box is not enabled, disable Note Location box """ value = self.usenote.get_value() self.notelocal.set_available(value) def __check_blank(self): if self.__onepage: value = not self.__onepage.get_value() else: value = True off = value and (self.scale.get_value() != 2) self.__blank.set_available(off) def __fillout_vals(self): max_gen = self.max_gen.get_value() old_val = self.fillout.get_value() item_list = [] item_list.append( [0, _("No generations of empty boxes " "for unknown ancestors")]) if max_gen > 1: item_list.append([ 1, _("One Generation of empty boxes " "for unknown ancestors") ]) item_list.extend([ itr, str(itr) + _(" Generations of empty boxes for unknown ancestors") ] for itr in range(2, max_gen)) self.fillout.set_items(item_list) if old_val + 2 > len(item_list): self.fillout.set_value(len(item_list) - 2) def make_default_style(self, default_style): """Make the default output style for the Ancestor Tree.""" ## Paragraph Styles: font = FontStyle() font.set_size(9) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_description( _('The basic style used for the text display.')) default_style.add_paragraph_style("AC2-Normal", para_style) box_shadow = PT2CM(font.get_size()) * .6 font = FontStyle() font.set_size(9) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_description( _('The basic style used for the note display.')) default_style.add_paragraph_style("AC2-Note", para_style) font = FontStyle() font.set_size(16) font.set_type_face(FONT_SANS_SERIF) para_style = ParagraphStyle() para_style.set_font(font) para_style.set_alignment(PARA_ALIGN_CENTER) para_style.set_description(_('The style used for the title.')) default_style.add_paragraph_style("AC2-Title", para_style) ## Draw styles graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Normal") graph_style.set_shadow(1, box_shadow) #shadow set by text size graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-box", graph_style) graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Normal") #graph_style.set_shadow(0, PT2CM(9)) #shadow set by text size graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-fam-box", graph_style) graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Note") graph_style.set_fill_color((255, 255, 255)) default_style.add_draw_style("AC2-note-box", graph_style) # TODO this seems meaningless, as only the text is displayed graph_style = GraphicsStyle() graph_style.set_paragraph_style("AC2-Title") graph_style.set_color((0, 0, 0)) graph_style.set_fill_color((255, 255, 255)) graph_style.set_line_width(0) graph_style.set_description(_("Cannot edit this reference")) default_style.add_draw_style("AC2-Title-box", graph_style) graph_style = GraphicsStyle() default_style.add_draw_style("AC2-line", graph_style)
def add_menu_options(self, menu): ################## category_name = _("Tree Options") pid = PersonOption(_("Center Person")) pid.set_help(_("The center person for the tree")) menu.add_option(category_name, "pid", pid) siblings = BooleanOption(_('Include siblings of the center person'), False) siblings.set_help(_("Whether to only display the center person or all " "of his/her siblings too")) menu.add_option(category_name, "inc_siblings", siblings) self.max_gen = NumberOption(_("Generations"), 10, 1, 50) self.max_gen.set_help(_("The number of generations to include " "in the tree")) menu.add_option(category_name, "maxgen", self.max_gen) self.fillout = EnumeratedListOption(_("Display unknown\ngenerations"), 0) self.fillout.set_help(_("The number of generations of empty " "boxes that will be displayed")) menu.add_option(category_name, "fill_out", self.fillout) self.max_gen.connect('value-changed', self.__fillout_vals) self.__fillout_vals() compress = BooleanOption(_('Compress tree'), True) compress.set_help(_("Whether to remove any extra blank spaces set " "aside for people that are unknown")) menu.add_option(category_name, "compress_tree", compress) #better to 'Show siblings of\nthe center person #Spouse_disp = EnumeratedListOption(_("Show spouses of\nthe center " # "person"), 0) #Spouse_disp.add_item( 0, _("No. Do not show Spouses")) #Spouse_disp.add_item( 1, _("Yes, and use the Main Display Format")) #Spouse_disp.add_item( 2, _("Yes, and use the Secondary " # "Display Format")) #Spouse_disp.set_help(_("Show spouses of the center person?")) #menu.add_option(category_name, "Spouse_disp", Spouse_disp) ################## category_name = _("Report Options") self.title = EnumeratedListOption(_("Report Title"), 0) self.title.add_item(0, _("Do not include a title")) self.title.add_item(1, _("Include Report Title")) self.title.set_help(_("Choose a title for the report")) menu.add_option(category_name, "report_title", self.title) border = BooleanOption(_('Include a border'), False) border.set_help(_("Whether to make a border around the report.")) menu.add_option(category_name, "inc_border", border) prnnum = BooleanOption(_('Include Page Numbers'), False) prnnum.set_help(_("Whether to print page numbers on each page.")) menu.add_option(category_name, "inc_pagenum", prnnum) stdoptions.add_private_data_option(menu, category_name) stdoptions.add_name_format_option(menu, category_name) stdoptions.add_localization_option(menu, category_name) ################## category_name = _("Display") disp = TextOption(_("Father\nDisplay Format"), ["$n", "%s $b" %_BORN, "-{%s $d}" %_DIED]) disp.set_help(_("Display format for the fathers box.")) menu.add_option(category_name, "father_disp", disp) #Will add when libsubstkeyword supports it. #missing = EnumeratedListOption(_("Replace missing\nplaces\\dates \ # with"), 0) #missing.add_item( 0, _("Does not display anything")) #missing.add_item( 1, _("Displays '_____'")) #missing.set_help(_("What will print when information is not known")) #menu.add_option(category_name, "miss_val", missing) #category_name = _("Secondary") dispMom = TextOption(_("Mother\nDisplay Format"), ["$n", "%s $b" %_BORN, "%s $m" %_MARR, "-{%s $d}" %_DIED] ) dispMom.set_help(_("Display format for the mothers box.")) menu.add_option(category_name, "mother_disp", dispMom) centerDisp = EnumeratedListOption(_("Center person uses\n" "which format"), 0) centerDisp.add_item(0, _("Use Fathers Display format")) centerDisp.add_item(1, _("Use Mothers display format")) centerDisp.set_help(_("Which Display format to use the center person")) menu.add_option(category_name, "center_uses", centerDisp) incmarr = BooleanOption(_('Include Marriage box'), False) incmarr.set_help( _("Whether to include a separate marital box in the report")) menu.add_option(category_name, "inc_marr", incmarr) marrdisp = StringOption(_("Marriage\nDisplay Format"), "%s $m" % _MARR) marrdisp.set_help(_("Display format for the marital box.")) menu.add_option(category_name, "marr_disp", marrdisp) ################## category_name = _("Size") self.scale = EnumeratedListOption(_("Scale tree to fit"), 0) self.scale.add_item(0, _("Do not scale tree")) self.scale.add_item(1, _("Scale tree to fit page width only")) self.scale.add_item(2, _("Scale tree to fit the size of the page")) self.scale.set_help( _("Whether to scale the tree to fit a specific paper size") ) menu.add_option(category_name, "scale_tree", self.scale) self.scale.connect('value-changed', self.__check_blank) if "BKI" not in self.name.split(","): self.__onepage = BooleanOption(_("Resize Page to Fit Tree size\n" "\n" "Note: Overrides options in the 'Paper Option' tab" ), False) self.__onepage.set_help( _("Whether to resize the page to fit the size \n" "of the tree. Note: the page will have a \n" "non standard size.\n" "\n" "With this option selected, the following will happen:\n" "\n" "With the 'Do not scale tree' option the page\n" " is resized to the height/width of the tree\n" "\n" "With 'Scale tree to fit page width only' the height of\n" " the page is resized to the height of the tree\n" "\n" "With 'Scale tree to fit the size of the page' the page\n" " is resized to remove any gap in either height or width" )) menu.add_option(category_name, "resize_page", self.__onepage) self.__onepage.connect('value-changed', self.__check_blank) else: self.__onepage = None self.box_Y_sf = NumberOption(_("inter-box scale factor"), 1.00, 0.10, 2.00, 0.01) self.box_Y_sf.set_help(_("Make the inter-box spacing bigger or smaller")) menu.add_option(category_name, "box_Yscale", self.box_Y_sf) self.box_shadow_sf = NumberOption(_("box shadow scale factor"), 1.00, 0.00, 2.00, 0.01) # down to 0 self.box_shadow_sf.set_help(_("Make the box shadow bigger or smaller")) menu.add_option(category_name, "shadowscale", self.box_shadow_sf) ################## category_name = _("Replace") repldisp = TextOption( _("Replace Display Format:\n'Replace this'/' with this'"), []) repldisp.set_help(_("i.e.\nUnited States of America/U.S.A")) menu.add_option(category_name, "replace_list", repldisp) ################## category_name = _("Include") self.__blank = BooleanOption(_('Include Blank Pages'), True) self.__blank.set_help(_("Whether to include pages that are blank.")) menu.add_option(category_name, "inc_blank", self.__blank) self.__check_blank() self.__include_images = BooleanOption( _('Include thumbnail images of people'), False) self.__include_images.set_help( _("Whether to include thumbnails of people.")) menu.add_option(category_name, "includeImages", self.__include_images) #category_name = _("Notes") self.usenote = BooleanOption(_('Include a note'), False) self.usenote.set_help(_("Whether to include a note on " "the report.")) menu.add_option(category_name, "inc_note", self.usenote) self.notedisp = TextOption(_("Note"), []) self.notedisp.set_help(_("Add a note\n\n" "$T inserts today's date")) menu.add_option(category_name, "note_disp", self.notedisp) locales = NoteType(0, 1) self.notelocal = EnumeratedListOption(_("Note Location"), 0) for num, text in locales.note_locals(): self.notelocal.add_item(num, text) self.notelocal.set_help(_("Where to place the note.")) menu.add_option(category_name, "note_place", self.notelocal)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book')) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None #p- from Filters import CustomFilters, GenericFilter from gramps.gen.filters import CustomFilters, GenericFilter # opt = FilterOption(_("Select using filter"), 0) # opt.set_help(_("Select places using a filter")) # filter_list = [] # filter_list.append(GenericFilter()) # filter_list.extend(CustomFilters.get_filters('Source')) # opt.set_filters(filter_list) # menu.add_option(category_name, "filter", opt) # # showpersons = BooleanOption(_("Show persons"), True) # showpersons.set_help(_("Whether to show events and persons mentioned in the note")) # menu.add_option(category_name, "showpersons", showpersons) # # incphotos = BooleanOption(_("Include Photos"), True) # incphotos.set_help(_("Whether to show photos mentioned in the citation")) # menu.add_option(category_name, "incphotos", incphotos) category_name = _("Calc Options") # Reload filters to pick any new ones CustomFilters = None #p- from Filters import CustomFilters, GenericFilter from gramps.gen.filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showallfamilies = BooleanOption( _("Show surnames of all famiies in clans"), True) showallfamilies.set_help( _("Whether to show the names of all families as surname")) menu.add_option(category_name, "showallfamilies", showallfamilies) # self.pl_format = menu.get_option_by_name('placeformat').get_value() #places = PlaceListOption(_("Select places individually")) #places.set_help(_("List of places to report on")) #menu.add_option(category_name, "places", places) stdoptions.add_place_format_option(menu, category_name)
def add_menu_options(self, menu): """Create menu options.""" # ------------------- # GENERAL options tab # ------------------- self.get_person_filters(menu) fltr = EnumeratedListOption(_("Filter"), 0) fltr.set_items(menu.filter_list) menu.add_option(_("General"), "fltr", fltr) pers_id = PersonOption(_("Person")) menu.add_option(_("General"), "pers_id", pers_id) filter_list2 = [(0, _("OpenStreetMap")), (1, _("Stamen Terrain")), (2, _("Stamen Toner")), (3, _("Stamen Watercolor")), (4, _("CartoDB Positron")), (5, _("CartoDB DarkMatter"))] tiles = EnumeratedListOption(_("Map tiles"), 0) tiles.set_items(filter_list2) menu.add_option(_("General"), "tiles", tiles) radius = NumberOption(_("Point size"), 15, 1, 50) radius.set_help(_("Set the size of the heatmap points.\nDefault: 15")) menu.add_option(_("General"), "radius", radius) path = DestinationOption(_("File path"), "") path.set_directory_entry(True) menu.add_option(_("General"), "path", path) txt = _("For the file name only english letters A-Z, a-z and " "numbers 0-9 as well as the characters space, underline and " "hypen are allowed. The file name also has to " "start and end with an alphanumeric character." "The file extention '.html' is added by the report.") file_name = StringOption(_("File name"), "") file_name.set_help(txt) menu.add_option(_("General"), "name", file_name) # ------------------- # ADVANCED options tab # ------------------- self.enable_start = BooleanOption(_("Enable custom start position"), False) self.enable_start.set_help( _("Enabling will force the map open at your custom " "start position and zoom.")) menu.add_option(_("Advanced"), "enable_start", self.enable_start) self.enable_start.connect('value-changed', self.update_start_options) self.start_lat = StringOption(_("Start latitude"), "50.0") self.start_lat.set_help( _("Set custom start position latitude\nDefault: 50.0")) menu.add_option(_("Advanced"), "start_lat", self.start_lat) self.start_lon = StringOption(_("Start longitude"), "10.0") self.start_lon.set_help( _("Set custom start position longitude\nDefault: 10.0")) menu.add_option(_("Advanced"), "start_lon", self.start_lon) self.start_zoom = NumberOption(_("Start zoom"), 5, 1, 18) self.start_zoom.set_help( _("Set the value for the starting zoom\nDefault: 5")) menu.add_option(_("Advanced"), "start_zoom", self.start_zoom) # ------------------- # LIMITS options tab # ------------------- self.enable_limits = BooleanOption(_("Enable map limits"), False) self.enable_limits.set_help( _("Enabling map limits forces the user to stay in a predefined part" " of the map.")) menu.add_option(_("Limits"), "enable_limits", self.enable_limits) self.enable_limits.connect('value-changed', self.update_limit_options) self.min_zoom = NumberOption(_("Min. zoom"), 1, 1, 18) self.min_zoom.set_help(_("Set minimal zoom value\nDefault: 1")) menu.add_option(_("Limits"), "min_zoom", self.min_zoom) self.max_zoom = NumberOption(_("Max. zoom"), 18, 1, 18) self.max_zoom.set_help(_("Set maximum zoom value.\nDefault: 18")) menu.add_option(_("Limits"), "max_zoom", self.max_zoom) self.lat1 = StringOption(_("Upper left corner latitude"), "") self.lat1.set_help(_("Set latitude for upper left corner map limit.")) menu.add_option(_("Limits"), "lat1", self.lat1) self.lon1 = StringOption(_("Upper left corner longitude"), "") self.lon1.set_help(_("Set longitude for upper left corner map limit.")) menu.add_option(_("Limits"), "lon1", self.lon1) self.lat2 = StringOption(_("Lower right corner latitude"), "") self.lat2.set_help(_("Set latitude for lower right corner map limit.")) menu.add_option(_("Limits"), "lat2", self.lat2) self.lon2 = StringOption(_("Lower right corner longitude"), "") self.lon2.set_help( _("Set longitude for lower right corner map limit.")) menu.add_option(_("Limits"), "lon2", self.lon2) self.render_border = BooleanOption(_("Render custom map limit border"), False) self.render_border.set_help( _("Enabling will render the map limit border")) menu.add_option(_("Limits"), "render_border", self.render_border)