* src/plugins/BookReport.py: Switch to saving/restoring/registering
items by the non-localized name. * src/plugins/GraphViz.py: Many various fixes. svn: r3911
This commit is contained in:
parent
b71df1c117
commit
c29f7d3122
@ -2,6 +2,10 @@
|
|||||||
* src/Report.py: Typos.
|
* src/Report.py: Typos.
|
||||||
* src/plugins/WebPage.py: Typos.
|
* src/plugins/WebPage.py: Typos.
|
||||||
|
|
||||||
|
* src/plugins/BookReport.py: Switch to saving/restoring/registering
|
||||||
|
items by the non-localized name.
|
||||||
|
* src/plugins/GraphViz.py: Many various fixes.
|
||||||
|
|
||||||
2005-01-13 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
2005-01-13 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||||
* src/plugins/Check.py: Typos.
|
* src/plugins/Check.py: Typos.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2004 Donald N. Allingham
|
# Copyright (C) 2003-2005 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
|
||||||
@ -94,14 +94,14 @@ class BookItem:
|
|||||||
|
|
||||||
Everything gets set to empty values except for the style_name"""
|
Everything gets set to empty values except for the style_name"""
|
||||||
|
|
||||||
self.name = ""
|
self.translated_name = ""
|
||||||
self.category = ""
|
self.category = ""
|
||||||
self.write_item = None
|
self.write_item = None
|
||||||
self.option_class = None
|
self.option_class = None
|
||||||
self.style_file = ""
|
self.style_file = ""
|
||||||
self.style_name = "default"
|
self.style_name = "default"
|
||||||
self.make_default_style = None
|
self.make_default_style = None
|
||||||
self.item_name = ""
|
self.name = ""
|
||||||
|
|
||||||
def get_registered_item(self,name):
|
def get_registered_item(self,name):
|
||||||
"""
|
"""
|
||||||
@ -112,12 +112,12 @@ class BookItem:
|
|||||||
|
|
||||||
self.clear()
|
self.clear()
|
||||||
for item in PluginMgr.bkitems_list:
|
for item in PluginMgr.bkitems_list:
|
||||||
if item[0] == name:
|
if item[4] == name:
|
||||||
self.name = item[0]
|
self.translated_name = item[0]
|
||||||
self.category = item[1]
|
self.category = item[1]
|
||||||
self.write_item = item[2]
|
self.write_item = item[2]
|
||||||
self.item_name = item[4]
|
self.name = item[4]
|
||||||
self.option_class = item[3](self.item_name)
|
self.option_class = item[3](self.name)
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
"""
|
"""
|
||||||
@ -125,6 +125,12 @@ class BookItem:
|
|||||||
"""
|
"""
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def get_translated_name(self):
|
||||||
|
"""
|
||||||
|
Returns the translated name of the item.
|
||||||
|
"""
|
||||||
|
return self.translated_name
|
||||||
|
|
||||||
def get_category(self):
|
def get_category(self):
|
||||||
"""
|
"""
|
||||||
Returns the category of the item.
|
Returns the category of the item.
|
||||||
@ -343,7 +349,8 @@ class BookList:
|
|||||||
dbname = book.get_dbname()
|
dbname = book.get_dbname()
|
||||||
f.write('<book name="%s" database="%s">\n' % (name,dbname) )
|
f.write('<book name="%s" database="%s">\n' % (name,dbname) )
|
||||||
for item in book.get_item_list():
|
for item in book.get_item_list():
|
||||||
f.write(' <item name="%s">\n' % item.get_name() )
|
f.write(' <item name="%s" trans_name="%s">\n' %
|
||||||
|
(item.get_name(),item.get_translated_name() ) )
|
||||||
option_handler = item.option_class.handler
|
option_handler = item.option_class.handler
|
||||||
for option_name in option_handler.options_dict.keys():
|
for option_name in option_handler.options_dict.keys():
|
||||||
option_value = option_handler.options_dict[option_name]
|
option_value = option_handler.options_dict[option_name]
|
||||||
@ -507,15 +514,15 @@ class BookListDisplay:
|
|||||||
if not len(names):
|
if not len(names):
|
||||||
return
|
return
|
||||||
for name in names:
|
for name in names:
|
||||||
iter = self.blist.add([name])
|
the_iter = self.blist.add([name])
|
||||||
if iter:
|
if the_iter:
|
||||||
self.blist.selection.select_iter(iter)
|
self.blist.selection.select_iter(the_iter)
|
||||||
|
|
||||||
def on_booklist_ok_clicked(self,obj):
|
def on_booklist_ok_clicked(self,obj):
|
||||||
"""Returns selected book. Saves the current list into xml file."""
|
"""Returns selected book. Saves the current list into xml file."""
|
||||||
store,iter = self.blist.get_selected()
|
store,the_iter = self.blist.get_selected()
|
||||||
if iter:
|
if the_iter:
|
||||||
data = self.blist.get_data(iter,[0])
|
data = self.blist.get_data(the_iter,[0])
|
||||||
self.selection = self.booklist.get_book(data[0])
|
self.selection = self.booklist.get_book(data[0])
|
||||||
if self.dosave:
|
if self.dosave:
|
||||||
self.booklist.save()
|
self.booklist.save()
|
||||||
@ -526,12 +533,12 @@ class BookListDisplay:
|
|||||||
|
|
||||||
This change is not final. OK button has to be clicked to save the list.
|
This change is not final. OK button has to be clicked to save the list.
|
||||||
"""
|
"""
|
||||||
store,iter = self.blist.get_selected()
|
store,the_iter = self.blist.get_selected()
|
||||||
if not iter:
|
if not the_iter:
|
||||||
return
|
return
|
||||||
data = self.blist.get_data(iter,[0])
|
data = self.blist.get_data(the_iter,[0])
|
||||||
self.booklist.delete_book(data[0])
|
self.booklist.delete_book(data[0])
|
||||||
self.blist.remove(iter)
|
self.blist.remove(the_iter)
|
||||||
self.top.run()
|
self.top.run()
|
||||||
|
|
||||||
def on_booklist_cancel_clicked(self,obj):
|
def on_booklist_cancel_clicked(self,obj):
|
||||||
@ -620,8 +627,8 @@ class BookReportSelector:
|
|||||||
book_label.set_use_underline(gtk.TRUE)
|
book_label.set_use_underline(gtk.TRUE)
|
||||||
book_label.set_use_markup(gtk.TRUE)
|
book_label.set_use_markup(gtk.TRUE)
|
||||||
|
|
||||||
av_titles = [(_('Name'),0,150),(_('Type'),1,50)]
|
av_titles = [(_('Name'),0,150),(_('Type'),1,50),('',-1,0)]
|
||||||
bk_titles = [(_('Item name'),-1,150),(_('Type'),-1,50),
|
bk_titles = [(_('Item name'),-1,150),(_('Type'),-1,50),('',-1,0),
|
||||||
(_('Center person'),-1,50)]
|
(_('Center person'),-1,50)]
|
||||||
|
|
||||||
self.av_ncols = len(av_titles)
|
self.av_ncols = len(av_titles)
|
||||||
@ -647,7 +654,7 @@ class BookReportSelector:
|
|||||||
return
|
return
|
||||||
|
|
||||||
for book_item in PluginMgr.bkitems_list:
|
for book_item in PluginMgr.bkitems_list:
|
||||||
data = [ book_item[0], book_item[1] ]
|
data = [ book_item[0], book_item[1], book_item[4] ]
|
||||||
new_iter = self.av_model.add(data)
|
new_iter = self.av_model.add(data)
|
||||||
|
|
||||||
self.av_model.connect_model()
|
self.av_model.connect_model()
|
||||||
@ -688,8 +695,8 @@ class BookReportSelector:
|
|||||||
item.set_style_name(saved_item.get_style_name())
|
item.set_style_name(saved_item.get_style_name())
|
||||||
self.book.append_item(item)
|
self.book.append_item(item)
|
||||||
|
|
||||||
data = [ item.get_name(), item.get_category() ]
|
data = [ item.get_translated_name(), item.get_category(), item.get_name() ]
|
||||||
if data[1] == _("Title"):
|
if data[2] == 'simple_book_title':
|
||||||
data.append(_("Not Applicable"))
|
data.append(_("Not Applicable"))
|
||||||
else:
|
else:
|
||||||
pname = self.db.get_person_from_gramps_id(person_id)
|
pname = self.db.get_person_from_gramps_id(person_id)
|
||||||
@ -702,16 +709,16 @@ class BookReportSelector:
|
|||||||
|
|
||||||
Use the selected available item to get the item's name in the registry.
|
Use the selected available item to get the item's name in the registry.
|
||||||
"""
|
"""
|
||||||
store,iter = self.av_model.get_selected()
|
store,the_iter = self.av_model.get_selected()
|
||||||
if not iter:
|
if not the_iter:
|
||||||
return
|
return
|
||||||
data = self.av_model.get_data(iter,range(self.av_ncols))
|
data = self.av_model.get_data(the_iter,range(self.av_ncols))
|
||||||
if data[1] == _("Title"):
|
if data[2] == 'simple_book_title':
|
||||||
data.append(_("Not Applicable"))
|
data.append(_("Not Applicable"))
|
||||||
else:
|
else:
|
||||||
data.append(self.person.get_primary_name().get_regular_name())
|
data.append(self.person.get_primary_name().get_regular_name())
|
||||||
self.bk_model.add(data)
|
self.bk_model.add(data)
|
||||||
item = BookItem(data[0])
|
item = BookItem(data[2])
|
||||||
person_id = item.option_class.handler.get_person_id()
|
person_id = item.option_class.handler.get_person_id()
|
||||||
if not person_id:
|
if not person_id:
|
||||||
person_id = self.person.get_gramps_id()
|
person_id = self.person.get_gramps_id()
|
||||||
@ -722,12 +729,12 @@ class BookReportSelector:
|
|||||||
"""
|
"""
|
||||||
Remove the item from the current list of selections.
|
Remove the item from the current list of selections.
|
||||||
"""
|
"""
|
||||||
store,iter = self.bk_model.get_selected()
|
store,the_iter = self.bk_model.get_selected()
|
||||||
if not iter:
|
if not the_iter:
|
||||||
return
|
return
|
||||||
row = self.bk_model.get_selected_row()
|
row = self.bk_model.get_selected_row()
|
||||||
self.book.pop_item(row)
|
self.book.pop_item(row)
|
||||||
self.bk_model.remove(iter)
|
self.bk_model.remove(the_iter)
|
||||||
|
|
||||||
def on_clear_clicked(self,obj):
|
def on_clear_clicked(self,obj):
|
||||||
"""
|
"""
|
||||||
@ -743,9 +750,9 @@ class BookReportSelector:
|
|||||||
row = self.bk_model.get_selected_row()
|
row = self.bk_model.get_selected_row()
|
||||||
if not row or row == -1:
|
if not row or row == -1:
|
||||||
return
|
return
|
||||||
store,iter = self.bk_model.get_selected()
|
store,the_iter = self.bk_model.get_selected()
|
||||||
data = self.bk_model.get_data(iter,range(self.bk_ncols))
|
data = self.bk_model.get_data(the_iter,range(self.bk_ncols))
|
||||||
self.bk_model.remove(iter)
|
self.bk_model.remove(the_iter)
|
||||||
self.bk_model.insert(row-1,data,None,1)
|
self.bk_model.insert(row-1,data,None,1)
|
||||||
item = self.book.pop_item(row)
|
item = self.book.pop_item(row)
|
||||||
self.book.insert_item(row-1,item)
|
self.book.insert_item(row-1,item)
|
||||||
@ -757,9 +764,9 @@ class BookReportSelector:
|
|||||||
row = self.bk_model.get_selected_row()
|
row = self.bk_model.get_selected_row()
|
||||||
if row + 1 >= self.bk_model.count or row == -1:
|
if row + 1 >= self.bk_model.count or row == -1:
|
||||||
return
|
return
|
||||||
store,iter = self.bk_model.get_selected()
|
store,the_iter = self.bk_model.get_selected()
|
||||||
data = self.bk_model.get_data(iter,range(self.bk_ncols))
|
data = self.bk_model.get_data(the_iter,range(self.bk_ncols))
|
||||||
self.bk_model.remove(iter)
|
self.bk_model.remove(the_iter)
|
||||||
self.bk_model.insert(row+1,data,None,1)
|
self.bk_model.insert(row+1,data,None,1)
|
||||||
item = self.book.pop_item(row)
|
item = self.book.pop_item(row)
|
||||||
self.book.insert_item(row+1,item)
|
self.book.insert_item(row+1,item)
|
||||||
@ -768,17 +775,18 @@ class BookReportSelector:
|
|||||||
"""
|
"""
|
||||||
Configure currently selected item.
|
Configure currently selected item.
|
||||||
"""
|
"""
|
||||||
store,iter = self.bk_model.get_selected()
|
store,the_iter = self.bk_model.get_selected()
|
||||||
if not iter:
|
if not the_iter:
|
||||||
return
|
return
|
||||||
data = self.bk_model.get_data(iter,range(self.bk_ncols))
|
data = self.bk_model.get_data(the_iter,range(self.bk_ncols))
|
||||||
row = self.bk_model.get_selected_row()
|
row = self.bk_model.get_selected_row()
|
||||||
item = self.book.get_item(row)
|
item = self.book.get_item(row)
|
||||||
option_class = item.option_class
|
option_class = item.option_class
|
||||||
item_dialog = BookItemDialog(self.db,option_class,item.item_name,data[0])
|
item_dialog = BookItemDialog(self.db,option_class,item.get_name(),
|
||||||
|
item.get_translated_name())
|
||||||
response = item_dialog.window.run()
|
response = item_dialog.window.run()
|
||||||
if response == True and item_dialog.person and data[1] != _("Title"):
|
if response == True and item_dialog.person and data[1] != _("Title"):
|
||||||
self.bk_model.model.set_value(iter,2,
|
self.bk_model.model.set_value(the_iter,2,
|
||||||
item_dialog.person.get_primary_name().get_regular_name())
|
item_dialog.person.get_primary_name().get_regular_name())
|
||||||
self.book.set_item(row,item)
|
self.book.set_item(row,item)
|
||||||
item_dialog.window.destroy()
|
item_dialog.window.destroy()
|
||||||
@ -806,8 +814,8 @@ class BookReportSelector:
|
|||||||
def build_bk_context_menu(self,event):
|
def build_bk_context_menu(self,event):
|
||||||
"""Builds the menu with item-centered and book-centered options."""
|
"""Builds the menu with item-centered and book-centered options."""
|
||||||
|
|
||||||
store,iter = self.bk_model.get_selected()
|
store,the_iter = self.bk_model.get_selected()
|
||||||
if iter:
|
if the_iter:
|
||||||
sensitivity = 1
|
sensitivity = 1
|
||||||
else:
|
else:
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
@ -837,8 +845,8 @@ class BookReportSelector:
|
|||||||
def build_av_context_menu(self,event):
|
def build_av_context_menu(self,event):
|
||||||
"""Builds the menu with the single Add option."""
|
"""Builds the menu with the single Add option."""
|
||||||
|
|
||||||
store,iter = self.av_model.get_selected()
|
store,the_iter = self.av_model.get_selected()
|
||||||
if iter:
|
if the_iter:
|
||||||
sensitivity = 1
|
sensitivity = 1
|
||||||
else:
|
else:
|
||||||
sensitivity = 0
|
sensitivity = 0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2004 Donald N. Allingham
|
# Copyright (C) 2000-2005 Donald N. Allingham
|
||||||
# Contributions by Lorenzo Cappelletti <lorenzo.cappelletti@email.it>
|
# Contributions by Lorenzo Cappelletti <lorenzo.cappelletti@email.it>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
@ -381,6 +381,7 @@ class GraphVizOptions(ReportOptions.ReportOptions):
|
|||||||
'marglr' : 0.5,
|
'marglr' : 0.5,
|
||||||
'pagesh' : 1,
|
'pagesh' : 1,
|
||||||
'pagesv' : 1,
|
'pagesv' : 1,
|
||||||
|
'gvof' : 'png',
|
||||||
}
|
}
|
||||||
|
|
||||||
self.options_help = {
|
self.options_help = {
|
||||||
@ -426,6 +427,9 @@ class GraphVizOptions(ReportOptions.ReportOptions):
|
|||||||
"Integer values"),
|
"Integer values"),
|
||||||
'pagesv' : ("=num","Number of pages in vertical direction.",
|
'pagesv' : ("=num","Number of pages in vertical direction.",
|
||||||
"Integer values"),
|
"Integer values"),
|
||||||
|
'gvof' : ("=str","Output format to convert dot file into.",
|
||||||
|
[ "%s\t%s" % (item[1],item[0]) for item in _formats ],
|
||||||
|
False),
|
||||||
}
|
}
|
||||||
|
|
||||||
def enable_options(self):
|
def enable_options(self):
|
||||||
@ -461,14 +465,13 @@ class GraphVizOptions(ReportOptions.ReportOptions):
|
|||||||
|
|
||||||
return [all,des,ans,com]
|
return [all,des,ans,com]
|
||||||
|
|
||||||
def make_doc_menu(self,dialog,active=None):
|
def make_doc_menu(self,dialog,active=None): pass
|
||||||
pass
|
|
||||||
|
|
||||||
def add_user_options(self,dialog):
|
def add_user_options(self,dialog):
|
||||||
if dot_found:
|
if self.handler.report_name == "rel_graph2":
|
||||||
dialog.make_doc_menu = self.make_doc_menu
|
dialog.make_doc_menu = self.make_doc_menu
|
||||||
dialog.format_menu = GraphicsFormatComboBox()
|
dialog.format_menu = GraphicsFormatComboBox()
|
||||||
dialog.format_menu.set()
|
dialog.format_menu.set(self.options_dict['gvof'])
|
||||||
|
|
||||||
self.arrowstyles = (
|
self.arrowstyles = (
|
||||||
(_("Descendants <- Ancestors"), 'd'),
|
(_("Descendants <- Ancestors"), 'd'),
|
||||||
@ -573,7 +576,7 @@ class GraphVizOptions(ReportOptions.ReportOptions):
|
|||||||
_("Families will show up as ellipses, linked "
|
_("Families will show up as ellipses, linked "
|
||||||
"to parents and children."))
|
"to parents and children."))
|
||||||
|
|
||||||
self.includeid_cb = gtk.CheckButton(msg)
|
self.includeid_cb = gtk.CheckButton(_("Include IDs"))
|
||||||
self.includeid_cb.set_active(self.options_dict['incid'])
|
self.includeid_cb.set_active(self.options_dict['incid'])
|
||||||
dialog.add_frame_option(_("GraphViz Options"), '',
|
dialog.add_frame_option(_("GraphViz Options"), '',
|
||||||
self.includeid_cb,
|
self.includeid_cb,
|
||||||
@ -636,8 +639,8 @@ class GraphVizOptions(ReportOptions.ReportOptions):
|
|||||||
self.options_dict['incid'] = int(self.includeid_cb.get_active())
|
self.options_dict['incid'] = int(self.includeid_cb.get_active())
|
||||||
self.options_dict['font'] = \
|
self.options_dict['font'] = \
|
||||||
self.font_options[self.font_box.get_active()][1]
|
self.font_options[self.font_box.get_active()][1]
|
||||||
if dot_found:
|
if self.handler.report_name == "rel_graph2":
|
||||||
self.handler.dot_format_str = dialog.format_menu.get_format_str()
|
self.options_dict['gvof'] = dialog.format_menu.get_format_str()
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -726,6 +729,8 @@ class FormatComboBox(gtk.ComboBox):
|
|||||||
def get_printable(self):
|
def get_printable(self):
|
||||||
return _("Generate print output")
|
return _("Generate print output")
|
||||||
|
|
||||||
|
def get_clname(self):
|
||||||
|
return 'dot'
|
||||||
|
|
||||||
class GraphicsFormatComboBox(gtk.ComboBox):
|
class GraphicsFormatComboBox(gtk.ComboBox):
|
||||||
"""
|
"""
|
||||||
@ -738,9 +743,14 @@ class GraphicsFormatComboBox(gtk.ComboBox):
|
|||||||
cell = gtk.CellRendererText()
|
cell = gtk.CellRendererText()
|
||||||
self.pack_start(cell,True)
|
self.pack_start(cell,True)
|
||||||
self.add_attribute(cell,'text',0)
|
self.add_attribute(cell,'text',0)
|
||||||
|
active_index = 0
|
||||||
|
index = 0
|
||||||
for item in _formats:
|
for item in _formats:
|
||||||
self.store.append(row=[item[0]])
|
self.store.append(row=[item[0]])
|
||||||
self.set_active(0)
|
if active == item[1]:
|
||||||
|
active_index = index
|
||||||
|
index = index + 1
|
||||||
|
self.set_active(active_index)
|
||||||
|
|
||||||
def get_label(self):
|
def get_label(self):
|
||||||
return _formats[self.get_active()][0]
|
return _formats[self.get_active()][0]
|
||||||
@ -763,6 +773,9 @@ class GraphicsFormatComboBox(gtk.ComboBox):
|
|||||||
def get_printable(self):
|
def get_printable(self):
|
||||||
return _("Generate print output")
|
return _("Generate print output")
|
||||||
|
|
||||||
|
def get_clname(self):
|
||||||
|
return 'print'
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Empty class to keep the BaseDoc-targeted format happy
|
# Empty class to keep the BaseDoc-targeted format happy
|
||||||
@ -804,7 +817,7 @@ class GraphVizGraphics(Report.Report):
|
|||||||
|
|
||||||
self.user_output = options_class.get_output()
|
self.user_output = options_class.get_output()
|
||||||
self.junk_output = os.path.expanduser("~/.gramps/junk")
|
self.junk_output = os.path.expanduser("~/.gramps/junk")
|
||||||
self.the_format = options_class.handler.dot_format_str
|
self.the_format = self.options_class.handler.options_dict['gvof']
|
||||||
self.the_font = self.options_class.handler.options_dict['font']
|
self.the_font = self.options_class.handler.options_dict['font']
|
||||||
|
|
||||||
def begin_report(self):
|
def begin_report(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user