* src/plugins/DetDescendantReport.py: Add style descriptions

for the paragraphs. Add first entry style. Change defaults to be
similar to the FTM style reports.
* src/plugins/DetAncestralReport.py: Add style descriptions
for the paragraphs. Add first entry style. Change defaults to be
similar to the FTM style reports.
* src/StyleEditor.py (draw, save_paragraph): Allow users
to adjust first line indent.
* src/styles.glade: Add first line indent entry.
* src/plugins/Check.py (delete_empty_family): Remove families
in which person is a parent, not only a child.
* src/gramps_main.py (post_load): Use display_frel and
display_fattr.
* src/MediaView.py (key_press): Add function.
* src/PlaceView.py (key_press): Add function.
* src/SourceView.py (key_press): Add function.
* src/plugins/WebPage.py: Add tab with index page options.

* src/po/hu.po: Update
* doc/gramps-manual/hu/filtref.xml: Update


svn: r2831
This commit is contained in:
Alex Roitman
2004-02-15 03:24:12 +00:00
parent 1b81ddc562
commit be7b042fda
13 changed files with 480 additions and 166 deletions

View File

@ -1,3 +1,26 @@
2004-02-14 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/DetDescendantReport.py: Add style descriptions
for the paragraphs. Add first entry style. Change defaults to be
similar to the FTM style reports.
* src/plugins/DetAncestralReport.py: Add style descriptions
for the paragraphs. Add first entry style. Change defaults to be
similar to the FTM style reports.
* src/StyleEditor.py (draw, save_paragraph): Allow users
to adjust first line indent.
* src/styles.glade: Add first line indent entry.
* src/plugins/Check.py (delete_empty_family): Remove families
in which person is a parent, not only a child.
* src/gramps_main.py (post_load): Use display_frel and
display_fattr.
* src/MediaView.py (key_press): Add function.
* src/PlaceView.py (key_press): Add function.
* src/SourceView.py (key_press): Add function.
* src/plugins/WebPage.py: Add tab with index page options.
2004-02-13 Egyeki Gergely <egeri@elte.hu>
* src/po/hu.po: Update
* doc/gramps-manual/hu/filtref.xml: Update
2004-02-14 Don Allingham <dallingham@users.sourceforge.net> 2004-02-14 Don Allingham <dallingham@users.sourceforge.net>
* src/Marriage.py: fix title and places * src/Marriage.py: fix title and places
* src/FamilyView.py: fix child relations and spouse's parents * src/FamilyView.py: fix child relations and spouse's parents

View File

@ -182,7 +182,7 @@
<para> Eredmény akkor és csak akkor lehet, ha <para> Eredmény akkor és csak akkor lehet, ha
a nem üres mezők értékei megegyeznek (akár részlegesen) egy személy a nem üres mezők értékei megegyeznek (akár részlegesen) egy személy
életének (azonos „időben” éltek) adataival. Csak egy érték használatához kapcsolatainak az adataival. Egy érték használatához
egy mező kitöltése és a többi üresen hagyása szűkséges. egy mező kitöltése és a többi üresen hagyása szűkséges.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>

View File

@ -1,7 +1,7 @@
# #
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2001-2003 Donald N. Allingham # Copyright (C) 2001-2004 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -120,6 +120,7 @@ class MediaView:
self.update = update self.update = update
self.list.connect('button-press-event',self.on_button_press_event) self.list.connect('button-press-event',self.on_button_press_event)
self.list.connect('key-press-event',self.key_press)
self.selection.connect('changed',self.on_select_row) self.selection.connect('changed',self.on_select_row)
if not (RelImage.is_pil() or RelImage.is_cnv() ): if not (RelImage.is_pil() or RelImage.is_cnv() ):
WarningDialog(_("Thumbnails not available") WarningDialog(_("Thumbnails not available")
@ -182,6 +183,13 @@ class MediaView:
return 1 return 1
return 0 return 0
def key_press(self,obj,event):
if event.keyval == gtk.gdk.keyval_from_name("Return") \
and not event.state:
self.on_edit_clicked(obj)
return 1
return 0
def build_context_menu(self,event): def build_context_menu(self,event):
menu = gtk.Menu() menu = gtk.Menu()
menu.set_title(_("Media Object")) menu.set_title(_("Media Object"))

View File

@ -98,6 +98,7 @@ class PlaceView:
self.list.set_model(self.model) self.list.set_model(self.model)
self.selection = self.list.get_selection() self.selection = self.list.get_selection()
self.list.connect('button-press-event',self.button_press) self.list.connect('button-press-event',self.button_press)
self.list.connect('key-press-event',self.key_press)
self.topWindow = self.glade.get_widget("gramps") self.topWindow = self.glade.get_widget("gramps")
def on_click(self,column): def on_click(self,column):
@ -170,6 +171,13 @@ class PlaceView:
return 1 return 1
return 0 return 0
def key_press(self,obj,event):
if event.keyval == gtk.gdk.keyval_from_name("Return") \
and not event.state:
self.on_edit_clicked(obj)
return 1
return 0
def build_context_menu(self,event): def build_context_menu(self,event):
"""Builds the menu with editing operations on the place's list""" """Builds the menu with editing operations on the place's list"""

View File

@ -1,7 +1,7 @@
# #
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2001-2003 Donald N. Allingham # Copyright (C) 2001-2004 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -121,6 +121,7 @@ class SourceView:
self.model.set(iter, 0, val[0], 1, val[1], 2, val[2], self.model.set(iter, 0, val[0], 1, val[1], 2, val[2],
3, val[3], 4, val[4]) 3, val[3], 4, val[4])
self.list.connect('button-press-event',self.button_press) self.list.connect('button-press-event',self.button_press)
self.list.connect('key-press-event',self.key_press)
self.list.set_model(self.model) self.list.set_model(self.model)
def button_press(self,obj,event): def button_press(self,obj,event):
@ -135,6 +136,13 @@ class SourceView:
return 1 return 1
return 0 return 0
def key_press(self,obj,event):
if event.keyval == gtk.gdk.keyval_from_name("Return") \
and not event.state:
self.on_edit_clicked(obj)
return 1
return 0
def build_context_menu(self,event): def build_context_menu(self,event):
"""Builds the menu with editing operations on the source's list""" """Builds the menu with editing operations on the source's list"""

View File

@ -1,7 +1,7 @@
# #
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2000-2003 Donald N. Allingham # Copyright (C) 2000-2004 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -18,6 +18,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# #
# $Id$
""" """
Paragraph/Font style editor Paragraph/Font style editor
""" """
@ -224,6 +226,7 @@ class StyleEditor:
self.top.get_widget("rmargin").set_text(locale.str(p.get_right_margin())) self.top.get_widget("rmargin").set_text(locale.str(p.get_right_margin()))
self.top.get_widget("lmargin").set_text(locale.str(p.get_left_margin())) self.top.get_widget("lmargin").set_text(locale.str(p.get_left_margin()))
self.top.get_widget("pad").set_text(locale.str(p.get_padding())) self.top.get_widget("pad").set_text(locale.str(p.get_padding()))
self.top.get_widget("indent").set_text(locale.str(p.get_first_indent()))
self.top.get_widget("tborder").set_active(p.get_top_border()) self.top.get_widget("tborder").set_active(p.get_top_border())
self.top.get_widget("lborder").set_active(p.get_left_border()) self.top.get_widget("lborder").set_active(p.get_left_border())
self.top.get_widget("rborder").set_active(p.get_right_border()) self.top.get_widget("rborder").set_active(p.get_right_border())
@ -270,6 +273,7 @@ class StyleEditor:
p.set_right_margin(Utils.gfloat(self.top.get_widget("rmargin").get_text())) p.set_right_margin(Utils.gfloat(self.top.get_widget("rmargin").get_text()))
p.set_left_margin(Utils.gfloat(self.top.get_widget("lmargin").get_text())) p.set_left_margin(Utils.gfloat(self.top.get_widget("lmargin").get_text()))
p.set_padding(Utils.gfloat(self.top.get_widget("pad").get_text())) p.set_padding(Utils.gfloat(self.top.get_widget("pad").get_text()))
p.set_first_indent(Utils.gfloat(self.top.get_widget("indent").get_text()))
p.set_top_border(self.top.get_widget("tborder").get_active()) p.set_top_border(self.top.get_widget("tborder").get_active())
p.set_left_border(self.top.get_widget("lborder").get_active()) p.set_left_border(self.top.get_widget("lborder").get_active())
p.set_right_border(self.top.get_widget("rborder").get_active()) p.set_right_border(self.top.get_widget("rborder").get_active())

View File

@ -1702,13 +1702,15 @@ class Gramps:
mylist = self.db.get_family_attribute_types() mylist = self.db.get_family_attribute_types()
for type in mylist: for type in mylist:
if type not in const.familyAttributes: ntype = const.display_fattr(type)
const.familyAttributes.append(type) if ntype not in const.familyAttributes:
const.familyAttributes.append(ntype)
mylist = self.db.get_family_relation_types() mylist = self.db.get_family_relation_types()
for type in mylist: for type in mylist:
if type not in const.familyRelations: ntype = const.display_frel(type)
const.familyRelations.append(type) if ntype not in const.familyRelations:
const.familyRelations.append(ntype)
except: except:
pass pass

View File

@ -216,6 +216,7 @@ class CheckIntegrity:
for key in self.db.get_person_keys(): for key in self.db.get_person_keys():
child = self.db.get_person(key) child = self.db.get_person(key)
child.remove_parent_family_id(family.get_id()) child.remove_parent_family_id(family.get_id())
child.remove_family_id(family.get_id())
self.db.delete_family(family.get_id()) self.db.delete_family(family.get_id())
def check_parent_relationships(self): def check_parent_relationships(self):

View File

@ -198,7 +198,7 @@ class DetAncestorReport(Report.Report):
def write_person(self, key, rptOptions): def write_person(self, key, rptOptions):
"""Output birth, death, parentage, marriage and notes information """ """Output birth, death, parentage, marriage and notes information """
self.doc.start_paragraph("DAR-Entry","%s." % str(key)) self.doc.start_paragraph("DAR-First-Entry","%s." % str(key))
person = self.map[key] person = self.map[key]
if rptOptions.addImages == reportOptions.Yes: if rptOptions.addImages == reportOptions.Yes:
@ -640,6 +640,7 @@ def _make_default_style(default_style):
para.set_font(font) para.set_font(font)
para.set_header_level(1) para.set_header_level(1)
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the title of the page.'))
default_style.add_style("DAR-Title",para) default_style.add_style("DAR-Title",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -648,6 +649,7 @@ def _make_default_style(default_style):
para.set_font(font) para.set_font(font)
para.set_header_level(2) para.set_header_level(2)
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the generation header.'))
default_style.add_style("DAR-Generation",para) default_style.add_style("DAR-Generation",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -655,15 +657,17 @@ def _make_default_style(default_style):
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set_font(font) para.set_font(font)
#para.set_header_level(3) #para.set_header_level(3)
para.set_left_margin(0.0) # in centimeters para.set_left_margin(1.0) # in centimeters
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the children list title.'))
default_style.add_style("DAR-ChildTitle",para) default_style.add_style("DAR-ChildTitle",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
font.set(face=BaseDoc.FONT_SANS_SERIF,size=9) font.set(face=BaseDoc.FONT_SANS_SERIF,size=9)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set_font(font) para.set_font(font)
para.set(first_indent=0.0,lmargin=0.0,pad=0.25) para.set(first_indent=0.0,lmargin=1.0,pad=0.25)
para.set_description(_('The style used for the children list.'))
default_style.add_style("DAR-ChildList",para) default_style.add_style("DAR-ChildList",para)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
@ -671,9 +675,15 @@ def _make_default_style(default_style):
default_style.add_style("DAR-NoteHeader",para) default_style.add_style("DAR-NoteHeader",para)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set(first_indent=0.5,lmargin=0.0,pad=0.25) para.set(first_indent=0.5,lmargin=1.0,pad=0.25)
para.set_description(_('The basic style used for the text display.'))
default_style.add_style("DAR-Entry",para) default_style.add_style("DAR-Entry",para)
para = BaseDoc.ParagraphStyle()
para.set(first_indent=-1.0,lmargin=1.0,pad=0.25)
para.set_description(_('The style used for the first personal entry.'))
default_style.add_style("DAR-First-Entry",para)
table = BaseDoc.TableStyle() table = BaseDoc.TableStyle()
table.set_width(1000) table.set_width(1000)
table.set_columns(3) table.set_columns(3)

View File

@ -205,7 +205,7 @@ class DetDescendantReport(Report.Report):
def write_person(self, key, rptOptions): def write_person(self, key, rptOptions):
"""Output birth, death, parentage, marriage and notes information """ """Output birth, death, parentage, marriage and notes information """
self.doc.start_paragraph("DDR-Entry","%s." % str(key)) self.doc.start_paragraph("DDR-First-Entry","%s." % str(key))
person = self.map[key] person = self.map[key]
if rptOptions.addImages == reportOptions.Yes: if rptOptions.addImages == reportOptions.Yes:
@ -648,6 +648,7 @@ def _make_default_style(default_style):
para.set_font(font) para.set_font(font)
para.set_header_level(1) para.set_header_level(1)
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the title of the page.'))
default_style.add_style("DDR-Title",para) default_style.add_style("DDR-Title",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -656,6 +657,7 @@ def _make_default_style(default_style):
para.set_font(font) para.set_font(font)
para.set_header_level(2) para.set_header_level(2)
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the generation header.'))
default_style.add_style("DDR-Generation",para) default_style.add_style("DDR-Generation",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
@ -663,25 +665,33 @@ def _make_default_style(default_style):
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set_font(font) para.set_font(font)
#para.set_header_level(3) #para.set_header_level(3)
para.set_left_margin(0.0) # in centimeters para.set_left_margin(1.0) # in centimeters
para.set(pad=0.5) para.set(pad=0.5)
para.set_description(_('The style used for the children list title.'))
default_style.add_style("DDR-ChildTitle",para) default_style.add_style("DDR-ChildTitle",para)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
font.set(face=BaseDoc.FONT_SANS_SERIF,size=9) font.set(face=BaseDoc.FONT_SANS_SERIF,size=9)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set_font(font) para.set_font(font)
para.set(first_indent=0.0,lmargin=0.0,pad=0.25) para.set(first_indent=0.0,lmargin=1.0,pad=0.25)
para.set_description(_('The style used for the children list.'))
default_style.add_style("DDR-ChildList",para) default_style.add_style("DDR-ChildList",para)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set(first_indent=0.0,lmargin=0.0,pad=0.25) para.set(first_indent=0.0,lmargin=1.0,pad=0.25)
para.set_description(_('The style used for the notes section header.'))
default_style.add_style("DDR-NoteHeader",para) default_style.add_style("DDR-NoteHeader",para)
para = BaseDoc.ParagraphStyle() para = BaseDoc.ParagraphStyle()
para.set(first_indent=0.5,lmargin=0.0,pad=0.25) para.set(first_indent=0.5,lmargin=0.0,pad=0.25)
default_style.add_style("DDR-Entry",para) default_style.add_style("DDR-Entry",para)
para = BaseDoc.ParagraphStyle()
para.set(first_indent=-1.0,lmargin=1.0,pad=0.25)
para.set_description(_('The style used for the first personal entry.'))
default_style.add_style("DDR-First-Entry",para)
table = BaseDoc.TableStyle() table = BaseDoc.TableStyle()
table.set_width(1000) table.set_width(1000)
table.set_columns(3) table.set_columns(3)

View File

@ -39,6 +39,7 @@ import shutil
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
import gtk import gtk
import gnome.ui
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -227,10 +228,10 @@ class IndividualPage:
person = self.db.find_person_from_id(person_id) person = self.db.find_person_from_id(person_id)
if self.list.has_key(person.get_id()): if self.list.has_key(person.get_id()):
self.doc.start_link("%s.%s" % (person.get_id(),self.ext)) self.doc.start_link("%s.%s" % (person.get_id(),self.ext))
self.doc.write_text(person.get_primary_name().get_regular_name()) self.doc.write_text(person.getPrimaryName().getRegularName())
self.doc.end_link() self.doc.end_link()
else: else:
self.doc.write_text(person.get_primary_name().get_regular_name()) self.doc.write_text(person.get_primary_name().get_regular_name())
self.doc.end_paragraph() self.doc.end_paragraph()
self.doc.end_cell() self.doc.end_cell()
@ -653,7 +654,8 @@ class IndividualPage:
class WebReport(Report.Report): class WebReport(Report.Report):
def __init__(self,db,person,target_path,max_gen,photos,filter,restrict, def __init__(self,db,person,target_path,max_gen,photos,filter,restrict,
private, srccomments, include_link, include_mini_tree, private, srccomments, include_link, include_mini_tree,
style, image_dir, template_name,use_id,id_link,gendex,ext): style, image_dir, template_name,use_id,id_link,gendex,ext,
include_alpha_links,separate_alpha,n_cols,ind_template_name):
self.db = db self.db = db
self.ext = ext self.ext = ext
self.use_id = use_id self.use_id = use_id
@ -672,6 +674,10 @@ class WebReport(Report.Report):
self.image_dir = image_dir self.image_dir = image_dir
self.use_gendex = gendex self.use_gendex = gendex
self.template_name = template_name self.template_name = template_name
self.include_alpha_links = include_alpha_links
self.separate_alpha = separate_alpha
self.n_cols = n_cols
self.ind_template_name = ind_template_name
def get_progressbar_data(self): def get_progressbar_data(self):
return (_("Generate HTML reports - GRAMPS"), _("Creating Web Pages")) return (_("Generate HTML reports - GRAMPS"), _("Creating Web Pages"))
@ -780,35 +786,99 @@ class WebReport(Report.Report):
else: else:
a[''] = 1 a[''] = 1
col_len = len(person_list) + len(a.keys()) section_number = 1
col_len = col_len/2 link_keys = a.keys()
link_keys.sort()
doc.write_raw('<table width="100%" border="0">') for n in link_keys:
doc.write_raw('<tr><td width="50%" valign="top">') a[n] = section_number
last = '' section_number = section_number + 1
end_col = 0
for person in person_list: if self.include_alpha_links:
name = person.get_primary_name().get_name() doc.start_paragraph('IndexLabelLinks')
if name and name[0] != last: if self.separate_alpha:
last = name[0] link_str = "index_%%03d.%s" % self.ext
doc.start_paragraph('IndexLabel')
doc.write_text(name[0])
doc.end_paragraph()
col_len = col_len - 1
doc.start_link("%s.%s" % (person.get_id(),self.ext))
doc.write_text(name)
doc.end_link()
if col_len <= 0 and end_col == 0:
doc.write_raw('</td><td valign="top">')
doc.start_paragraph('IndexLabel')
doc.write_text(_("%s (continued)") % name[0])
doc.end_paragraph()
end_col = 1
else: else:
doc.newline() link_str = "#%03d"
col_len = col_len - 1 for n in link_keys:
doc.write_raw('</td></tr></table>') doc.start_link(link_str % a[n])
doc.close() doc.write_text(n)
doc.end_link()
doc.write_text(' ')
doc.end_paragraph()
if self.separate_alpha:
doc.close()
for n in link_keys:
p_list = [ p for p in person_list if \
(p.get_primary_name().get_surname() \
and (p.get_primary_name().get_surname()[0] == n) ) ]
doc = HtmlLinkDoc(self.selected_style,None,template,None)
doc.set_extension(self.ext)
doc.set_title(_("Section %s") % n)
doc.open("%s/index_%03d.%s" % (html_dir,a[n],self.ext))
doc.start_paragraph("Title")
doc.write_text(_("Section %s") % n)
doc.end_paragraph()
n_rows = len(p_list)/self.n_cols
td_width = 100/self.n_cols
doc.write_raw('<table width="100%" border="0">')
doc.write_raw('<tr><td width="%d%%" valign="top">' % td_width)
col_len = n_rows
for person in p_list:
name = person.get_primary_name().get_surname()
doc.start_link("%s.%s" % (person.get_id(),self.ext))
doc.write_text(name)
doc.end_link()
if col_len <= 0:
doc.write_raw('</td><td width="%d%%" valign="top">' % td_width)
col_len = n_rows
else:
doc.newline()
col_len = col_len - 1
doc.write_raw('</td></tr></table>')
doc.close()
else:
n_rows = len(person_list) + len(link_keys)
n_rows = n_rows/self.n_cols
td_width = 100/self.n_cols
doc.write_raw('<table width="100%" border="0">')
doc.write_raw('<tr><td width="%d%%" valign="top">' % td_width)
col_len = n_rows
for n in link_keys:
p_list = [ p for p in person_list if \
(p.get_primary_name().get_surname() \
and (p.get_primary_name().get_surname()[0] == n) ) ]
doc.start_paragraph('IndexLabel')
if self.include_alpha_links:
doc.write_linktarget("%03d" % a[n])
doc.write_text(n)
doc.end_paragraph()
col_len = col_len - 1
for person in p_list:
name = person.get_primary_name().get_surname()
doc.start_link("%s.%s" % (person.get_id(),self.ext))
doc.write_text(name)
doc.end_link()
if col_len <= 0:
doc.write_raw('</td><td width="%d%%" valign="top">' % td_width)
doc.start_paragraph('IndexLabel')
doc.write_text(_("%s (continued)") % n)
doc.end_paragraph()
col_len = n_rows
else:
doc.newline()
col_len = col_len - 1
doc.write_raw('</td></tr></table>')
doc.close()
def write_report(self): def write_report(self):
dir_name = self.target_path dir_name = self.target_path
@ -879,7 +949,7 @@ class WebReport(Report.Report):
if len(ind_list) > 1: if len(ind_list) > 1:
self.dump_index(ind_list,self.selected_style, self.dump_index(ind_list,self.selected_style,
self.template_name,dir_name) self.ind_template_name,dir_name)
if self.use_gendex == 1: if self.use_gendex == 1:
self.dump_gendex(ind_list,dir_name) self.dump_gendex(ind_list,dir_name)
self.progress_bar_done() self.progress_bar_done()
@ -925,6 +995,8 @@ class WebReportDialog(Report.ReportDialog):
gendex_msg = _("Create a GENDEX index") gendex_msg = _("Create a GENDEX index")
imgdir_msg = _("Image subdirectory") imgdir_msg = _("Image subdirectory")
ext_msg = _("File extension") ext_msg = _("File extension")
alpha_links_msg = _("Links to alphabetical sections in index page")
sep_alpha_msg = _("Split alphabetical sections to separate pages")
tree_msg = _("Include short ancestor tree") tree_msg = _("Include short ancestor tree")
self.mini_tree = gtk.CheckButton(tree_msg) self.mini_tree = gtk.CheckButton(tree_msg)
@ -949,10 +1021,35 @@ class WebReportDialog(Report.ReportDialog):
self.ext.set_popdown_strings(['.html','.htm','.php','.php3', self.ext.set_popdown_strings(['.html','.htm','.php','.php3',
'.cgi']) '.cgi'])
self.use_alpha_links = gtk.CheckButton(alpha_links_msg)
self.use_sep_alpha = gtk.CheckButton(sep_alpha_msg)
self.use_sep_alpha.set_sensitive(0)
self.use_n_cols = gtk.SpinButton()
self.use_n_cols.set_value(2)
self.use_n_cols.set_digits(0)
self.use_n_cols.set_increments(1,2)
self.use_n_cols.set_range(1,5)
self.use_n_cols.set_numeric(gtk.TRUE)
self.ind_template = gtk.Combo()
template_list = [ Report._default_template ]
tlist = Report._template_map.keys()
tlist.sort()
for template in tlist:
if template != Report._user_template:
template_list.append(template)
template_list.append(Report._user_template)
self.ind_template.set_popdown_strings(template_list)
self.ind_template.entry.set_editable(0)
self.ind_user_template = gnome.ui.FileEntry("HTML_Template",_("Choose File"))
self.ind_user_template.set_sensitive(0)
self.add_option(imgdir_msg,self.imgdir) self.add_option(imgdir_msg,self.imgdir)
self.add_option('',self.mini_tree) self.add_option('',self.mini_tree)
self.add_option('',self.use_link) self.add_option('',self.use_link)
self.use_alpha_links.connect('toggled',self.on_use_alpha_links_toggled)
self.ind_template.entry.connect('changed',self.ind_template_changed)
title = _("Privacy") title = _("Privacy")
self.add_frame_option(title,None,self.no_private) self.add_frame_option(title,None,self.no_private)
self.add_frame_option(title,None,self.restrict_living) self.add_frame_option(title,None,self.restrict_living)
@ -960,6 +1057,13 @@ class WebReportDialog(Report.ReportDialog):
self.add_frame_option(title,None,self.no_living_images) self.add_frame_option(title,None,self.no_living_images)
self.add_frame_option(title,None,self.no_comments) self.add_frame_option(title,None,self.no_comments)
title = _('Index page')
self.add_frame_option(title,_('Template'),self.ind_template)
self.add_frame_option(title,_("User Template"),self.ind_user_template)
self.add_frame_option(title,None,self.use_alpha_links)
self.add_frame_option(title,None,self.use_sep_alpha)
self.add_frame_option(title,_('Number of columns'),self.use_n_cols)
title = _('Advanced') title = _('Advanced')
self.add_frame_option(title,'',self.include_id) self.add_frame_option(title,'',self.include_id)
self.add_frame_option(title,_('GRAMPS ID link URL'),self.linkpath) self.add_frame_option(title,_('GRAMPS ID link URL'),self.linkpath)
@ -1076,6 +1180,13 @@ class WebReportDialog(Report.ReportDialog):
p.set_description(_("The style used on the index page that labels each section.")) p.set_description(_("The style used on the index page that labels each section."))
self.default_style.add_style("IndexLabel",p) self.default_style.add_style("IndexLabel",p)
font = BaseDoc.FontStyle()
font.set(bold=1,face=BaseDoc.FONT_SANS_SERIF,size=14,italic=1)
p = BaseDoc.ParagraphStyle()
p.set(font=font,align=BaseDoc.PARA_ALIGN_CENTER)
p.set_description(_("The style used on the index page that labels links to each section."))
self.default_style.add_style("IndexLabelLinks",p)
font = BaseDoc.FontStyle() font = BaseDoc.FontStyle()
font.set(bold=1,face=BaseDoc.FONT_SANS_SERIF,size=12,italic=1) font.set(bold=1,face=BaseDoc.FONT_SANS_SERIF,size=12,italic=1)
p = BaseDoc.ParagraphStyle() p = BaseDoc.ParagraphStyle()
@ -1204,6 +1315,21 @@ class WebReportDialog(Report.ReportDialog):
else: else:
self.photos = 2 self.photos = 2
text = unicode(self.ind_template.entry.get_text())
if Report._template_map.has_key(text):
if text == Report._user_template:
self.ind_template_name = self.ind_user_template.get_full_path(0)
else:
self.ind_template_name = "%s/%s" % (const.template_dir,Report._template_map[text])
else:
self.ind_template_name = None
self.include_alpha_links = self.use_alpha_links.get_active()
if self.include_alpha_links:
self.separate_alpha = self.use_sep_alpha.get_active()
else:
self.separate_alpha = 0
self.n_cols = self.use_n_cols.get_value()
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Callback functions from the dialog # Callback functions from the dialog
@ -1219,6 +1345,26 @@ class WebReportDialog(Report.ReportDialog):
else: else:
self.no_living_images.set_sensitive(1) self.no_living_images.set_sensitive(1)
def on_use_alpha_links_toggled(self,obj):
"""Keep the 'split alpha sections to separate pages' checkbox in
line with the 'use alpha links' checkbox. If there are no alpha
links included, it makes no sense to worry about splitting or not
the alpha link target to separate pages."""
if obj.get_active():
self.use_sep_alpha.set_sensitive(1)
else:
self.use_sep_alpha.set_sensitive(0)
def ind_template_changed(self,obj):
text = unicode(obj.get_text())
if Report._template_map.has_key(text):
if Report._template_map[text]:
self.ind_user_template.set_sensitive(0)
else:
self.ind_user_template.set_sensitive(1)
else:
self.ind_user_template.set_sensitive(0)
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Functions related to creating the actual report document. # Functions related to creating the actual report document.
@ -1235,7 +1381,9 @@ class WebReportDialog(Report.ReportDialog):
self.selected_style, self.selected_style,
self.img_dir_text,self.template_name, self.img_dir_text,self.template_name,
self.use_id,self.id_link,self.use_gendex, self.use_id,self.id_link,self.use_gendex,
self.html_ext) self.html_ext,self.include_alpha_links,
self.separate_alpha,self.n_cols,
self.ind_template_name)
MyReport.write_report() MyReport.write_report()
except Errors.FilterError, msg: except Errors.FilterError, msg:
(m1,m2) = msg.messages() (m1,m2) = msg.messages()

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: hu\n" "Project-Id-Version: hu\n"
"POT-Creation-Date: Tue Feb 3 21:41:23 2004\n" "POT-Creation-Date: Tue Feb 3 21:41:23 2004\n"
"PO-Revision-Date: 2004-02-04 23:59+0100\n" "PO-Revision-Date: 2004-02-12 22:08+0100\n"
"Last-Translator: Egyeki Gergely <egeri@elte.hu>\n" "Last-Translator: Egyeki Gergely <egeri@elte.hu>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -2578,7 +2578,7 @@ msgstr "Házassági név"
#: const.py:466 #: const.py:466
msgid "Other Name" msgid "Other Name"
msgstr "Más név" msgstr "Egyéb név"
#: const.py:861 #: const.py:861
msgid "Child" msgid "Child"
@ -7128,7 +7128,7 @@ msgstr "Nem lehet létrehozni a könyvtárat : %s"
#: plugins/WebPage.py:902 #: plugins/WebPage.py:902
msgid "Include a link to the index page" msgid "Include a link to the index page"
msgstr "Index oldalra hivatkozás hozzáadása" msgstr "oldalra mutató link hozzáadása"
#: plugins/WebPage.py:903 plugins/pafexport.glade:276 #: plugins/WebPage.py:903 plugins/pafexport.glade:276
msgid "Do not include records marked private" msgid "Do not include records marked private"
@ -7168,7 +7168,7 @@ msgstr "Fájl kiterjesztés"
#: plugins/WebPage.py:913 #: plugins/WebPage.py:913
msgid "Include short ancestor tree" msgid "Include short ancestor tree"
msgstr "Rövidített ősökfa hozzáadása" msgstr "Kicsinyített családfa hozzáadása"
#: plugins/WebPage.py:940 #: plugins/WebPage.py:940
msgid "Privacy" msgid "Privacy"
@ -7196,11 +7196,11 @@ msgstr "Célkönyvtár"
#: plugins/WebPage.py:989 #: plugins/WebPage.py:989
msgid "Direct Descendants of %s" msgid "Direct Descendants of %s"
msgstr "%s egyenes leszármazottjai" msgstr "%s egyenes leszármazottai"
#: plugins/WebPage.py:993 #: plugins/WebPage.py:993
msgid "Descendant Families of %s" msgid "Descendant Families of %s"
msgstr "%s utódainak a családjai" msgstr "%s utódainak a családja"
#: plugins/WebPage.py:1031 #: plugins/WebPage.py:1031
msgid "The style used for the header that identifies facts and events." msgid "The style used for the header that identifies facts and events."

View File

@ -381,8 +381,6 @@
<property name="show_border">False</property> <property name="show_border">False</property>
<property name="tab_pos">GTK_POS_TOP</property> <property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property> <property name="scrollable">False</property>
<property name="tab_hborder">2</property>
<property name="tab_vborder">2</property>
<property name="enable_popup">False</property> <property name="enable_popup">False</property>
<child> <child>
@ -789,7 +787,7 @@
<widget class="GtkTable" id="table3"> <widget class="GtkTable" id="table3">
<property name="border_width">12</property> <property name="border_width">12</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">13</property> <property name="n_rows">15</property>
<property name="n_columns">6</property> <property name="n_columns">6</property>
<property name="homogeneous">False</property> <property name="homogeneous">False</property>
<property name="row_spacing">6</property> <property name="row_spacing">6</property>
@ -1053,27 +1051,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkCheckButton" id="lborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Le_ft</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkRadioButton" id="ralign"> <widget class="GtkRadioButton" id="ralign">
<property name="visible">True</property> <property name="visible">True</property>
@ -1140,69 +1117,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkCheckButton" id="rborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Ri_ght</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="bborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Bottom</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="tborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Top</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkLabel" id="label10"> <widget class="GtkLabel" id="label10">
<property name="visible">True</property> <property name="visible">True</property>
@ -1251,30 +1165,6 @@
</packing> </packing>
</child> </child>
<child>
<widget class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Borders&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">6</property>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child> <child>
<widget class="GtkLabel" id="bgcolor_code"> <widget class="GtkLabel" id="bgcolor_code">
<property name="visible">True</property> <property name="visible">True</property>
@ -1323,6 +1213,208 @@
<property name="y_options">fill</property> <property name="y_options">fill</property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Borders&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">6</property>
<property name="top_attach">13</property>
<property name="bottom_attach">14</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="lborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Le_ft</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="rborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Ri_ght</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="tborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Top</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">3</property>
<property name="right_attach">4</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="bborder">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Bottom</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label26">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;First line&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">6</property>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="indent">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">4</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label27">
<property name="visible">True</property>
<property name="label" translatable="yes">cm</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="left_attach">4</property>
<property name="right_attach">5</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label28">
<property name="visible">True</property>
<property name="label" translatable="yes">I_ndent:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">pad</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget> </widget>
<packing> <packing>
<property name="tab_expand">False</property> <property name="tab_expand">False</property>