Updated bug checks
svn: r1138
This commit is contained in:
parent
1f8ebeb12c
commit
f26621be69
32
gramps/TODO
32
gramps/TODO
@ -1,19 +1,14 @@
|
|||||||
* Allow for multiple notes. A tabbed interface would be really useful,
|
GRAMPS programming task list. These are tasks that would be nice if
|
||||||
since there are no titles for notes. Not all objects would necessarily
|
someone would take over.
|
||||||
need multiple notes. Determine which ones should and shouldn't.
|
|
||||||
|
Note that most of the development effort is targeted at GNOME 2.
|
||||||
|
|
||||||
* Drag and drop should display the icon we are dragging instead of just
|
* Drag and drop should display the icon we are dragging instead of just
|
||||||
the default icon. Nautilus does this very effectively, and GTK has
|
the default icon. Nautilus does this very effectively, and GTK has
|
||||||
support for this.
|
support for this.
|
||||||
* Provide an "import" of a gramps package. Not too difficult to do this,
|
* Provide an "import" of a gramps package. Not too difficult to do this,
|
||||||
since there is already a ReadTarFile class which will unpackage the
|
since there is already a ReadTarFile class which will unpackage the
|
||||||
file. Needs have an interface built around it.
|
file. Needs have an interface built around it.
|
||||||
* Catch uncaught exceptions at the top level, notifiy the user, and
|
|
||||||
store the results in a file that can be emailed. Have the start of
|
|
||||||
this with the gramps.err file, but most users don't realize that
|
|
||||||
this file has been created. Some type of notification is needed.
|
|
||||||
* Speed up the reading of the database. The python XML routines are not
|
|
||||||
as fast as I would like, and it can take a minute or so to read a
|
|
||||||
large database. This is way too slow.
|
|
||||||
* Finish the generic load of revision control interfaces to allow a
|
* Finish the generic load of revision control interfaces to allow a
|
||||||
revision control plugin system. Most of the work is already done.
|
revision control plugin system. Most of the work is already done.
|
||||||
* Extend the gramps package exporting to export to a ISO-9660 CD-ROM
|
* Extend the gramps package exporting to export to a ISO-9660 CD-ROM
|
||||||
@ -26,6 +21,19 @@
|
|||||||
call to generate the zip file using the hard coded path of /usr/bin/zip.
|
call to generate the zip file using the hard coded path of /usr/bin/zip.
|
||||||
Python 2.0 provides a zip interface, so this may need to hold off until
|
Python 2.0 provides a zip interface, so this may need to hold off until
|
||||||
the move is made to Python 2.0.
|
the move is made to Python 2.0.
|
||||||
* Sort all lists
|
|
||||||
* Startup tips.
|
* Startup tips.
|
||||||
* And a whole lot more....
|
* Captialize/Decapitalize names
|
||||||
|
* FIND by ID
|
||||||
|
* Better copy/paste handling
|
||||||
|
* Re-instate alternate names in the name list. This was dropped due to the
|
||||||
|
need to provide indexing tables to support ZODB.
|
||||||
|
* Provide an interface to GtkSpell, so that an integrated spelling checking
|
||||||
|
would be provided.
|
||||||
|
* Look at providing a backend interface to gnome-db, allowing real database
|
||||||
|
backends to be pluged into GRAMPS. Maybe replace the ZODB interface.
|
||||||
|
* Integrate gnome-print into GRAMPS. Currently an interface does not exist
|
||||||
|
to gnome-print in the gnome-python interface. This would allow print preview
|
||||||
|
and direct document printing.
|
||||||
|
* More report formats
|
||||||
|
* Look at integrating the layout engine from GraphViz, so that more complicated
|
||||||
|
layout schemes could be used.
|
||||||
|
2
gramps/configure
vendored
2
gramps/configure
vendored
@ -1567,7 +1567,7 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
RELEASE=pl1
|
RELEASE=pl2
|
||||||
|
|
||||||
VERSIONSTRING=$VERSION
|
VERSIONSTRING=$VERSION
|
||||||
if test x"$RELEASE" != "x"
|
if test x"$RELEASE" != "x"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
%define ver 0.8.0
|
%define ver 0.8.0
|
||||||
%define rel pl1
|
%define rel pl2
|
||||||
%define prefix /usr
|
%define prefix /usr
|
||||||
|
|
||||||
Summary: Genealogical Research and Analysis Management Programming System.
|
Summary: Genealogical Research and Analysis Management Programming System.
|
||||||
|
@ -205,8 +205,10 @@ class ChooseParents:
|
|||||||
self.father_list.sort()
|
self.father_list.sort()
|
||||||
self.mother_list.thaw()
|
self.mother_list.thaw()
|
||||||
self.father_list.thaw()
|
self.father_list.thaw()
|
||||||
self.father_list.moveto(self.father_list.selection[0],0)
|
if self.father_list.selection:
|
||||||
self.mother_list.moveto(self.mother_list.selection[0],0)
|
self.father_list.moveto(self.father_list.selection[0],0)
|
||||||
|
if self.mother_list.selection:
|
||||||
|
self.mother_list.moveto(self.mother_list.selection[0],0)
|
||||||
|
|
||||||
if self.type == "Partners":
|
if self.type == "Partners":
|
||||||
self.mlabel.set_label(_("Parent"))
|
self.mlabel.set_label(_("Parent"))
|
||||||
|
@ -3,6 +3,24 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2000 Donald N. Allingham
|
# Copyright (C) 2000 Donald N. Allingham
|
||||||
#
|
#
|
||||||
|
# Modified August 2002 by Gary Shao
|
||||||
|
#
|
||||||
|
# Changed reference to convert variable of Gramps const module to
|
||||||
|
# a string variable Convert. If Gramps system is present, this is
|
||||||
|
# set to the value of const.convert, else it is set to the fixed
|
||||||
|
# value "convert"
|
||||||
|
# NOTE: this means the module expects to be able to make a system
|
||||||
|
# call to a program called "convert" if the PIL module is not present.
|
||||||
|
# The convert program is part of the ImageMagick application, which
|
||||||
|
# should be installed prior to using this module if PIL is not
|
||||||
|
# available.
|
||||||
|
#
|
||||||
|
# Corrected a bug in the fmt_scale_data method of ImgManip class
|
||||||
|
# under the PIL case. Call to tostring method of image class
|
||||||
|
# requires that the format name be in lower case (it uses the
|
||||||
|
# format name internally to construct the name of the encoder
|
||||||
|
# function to call, which is in lower case).
|
||||||
|
#
|
||||||
# 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
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
@ -19,8 +37,15 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import const
|
|
||||||
import string
|
import string
|
||||||
|
import sys
|
||||||
|
|
||||||
|
try:
|
||||||
|
import const
|
||||||
|
except:
|
||||||
|
Convert = "convert"
|
||||||
|
else:
|
||||||
|
Convert = const.convert
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -33,12 +58,16 @@ try:
|
|||||||
PIL.Image.init()
|
PIL.Image.init()
|
||||||
no_pil = 0
|
no_pil = 0
|
||||||
except:
|
except:
|
||||||
import popen2
|
try:
|
||||||
import GDK
|
import popen2
|
||||||
import GTK
|
import GDK
|
||||||
import gtk
|
import GTK
|
||||||
import GdkImlib
|
import gtk
|
||||||
no_pil = 1
|
import GdkImlib
|
||||||
|
no_pil = 1
|
||||||
|
except:
|
||||||
|
raise "ImgLibException", "Error: No imaging library available"
|
||||||
|
|
||||||
|
|
||||||
class ImgManip:
|
class ImgManip:
|
||||||
def __init__(self,source):
|
def __init__(self,source):
|
||||||
@ -53,15 +82,15 @@ class ImgManip:
|
|||||||
def fmt_thumbnail(self,dest,width,height,cnv):
|
def fmt_thumbnail(self,dest,width,height,cnv):
|
||||||
w = int(width)
|
w = int(width)
|
||||||
h = int(height)
|
h = int(height)
|
||||||
cmd = "%s -geometry %dx%d '%s' '%s:%s'" % (const.convert,w,h,self.src,cnv,dest)
|
cmd = "%s -geometry %dx%d '%s' '%s:%s'" % (Convert,w,h,self.src,cnv,dest)
|
||||||
os.system(cmd)
|
os.system(cmd)
|
||||||
|
|
||||||
def fmt_convert(self,dest,cnv):
|
def fmt_convert(self,dest,cnv):
|
||||||
cmd = "%s '%s' '%s:%s'" % (const.convert,self.src,cnv,dest)
|
cmd = "%s '%s' '%s:%s'" % (Convert,self.src,cnv,dest)
|
||||||
os.system(cmd)
|
os.system(cmd)
|
||||||
|
|
||||||
def fmt_data(self,cnv):
|
def fmt_data(self,cnv):
|
||||||
cmd = "%s '%s' '%s:-'" % (const.convert,self.src,cnv)
|
cmd = "%s '%s' '%s:-'" % (Convert,self.src,cnv)
|
||||||
r,w = popen2.popen2(cmd)
|
r,w = popen2.popen2(cmd)
|
||||||
buf = r.read()
|
buf = r.read()
|
||||||
r.close()
|
r.close()
|
||||||
@ -69,7 +98,7 @@ class ImgManip:
|
|||||||
return buf
|
return buf
|
||||||
|
|
||||||
def fmt_scale_data(self,x,y,cnv):
|
def fmt_scale_data(self,x,y,cnv):
|
||||||
cmd = "%s -geometry %dx%d '%s' '%s:-'" % (const.convert,x,y,self.src,cnv)
|
cmd = "%s -geometry %dx%d '%s' '%s:-'" % (Convert,x,y,self.src,cnv)
|
||||||
r,w = popen2.popen2(cmd)
|
r,w = popen2.popen2(cmd)
|
||||||
buf = r.read()
|
buf = r.read()
|
||||||
r.close()
|
r.close()
|
||||||
@ -114,7 +143,8 @@ class ImgManip:
|
|||||||
if im.mode != 'RGB':
|
if im.mode != 'RGB':
|
||||||
im.draft('RGB',im.size)
|
im.draft('RGB',im.size)
|
||||||
im = im.convert("RGB")
|
im = im.convert("RGB")
|
||||||
return im.tostring(string.upper(pil),"RGB")
|
#return im.tostring(string.upper(pil),"RGB")
|
||||||
|
return im.tostring(pil,"RGB")
|
||||||
|
|
||||||
def jpg_thumbnail(self,dest,width,height):
|
def jpg_thumbnail(self,dest,width,height):
|
||||||
self.fmt_thumbnail(dest,width,height,"jpeg")
|
self.fmt_thumbnail(dest,width,height,"jpeg")
|
||||||
@ -155,8 +185,6 @@ class ImgManip:
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
img = ImgManip(sys.argv[1])
|
img = ImgManip(sys.argv[1])
|
||||||
img.jpg_thumbnail("foo.jpg",50,50)
|
img.jpg_thumbnail("foo.jpg",50,50)
|
||||||
img.png_thumbnail("foo.png",50,50)
|
img.png_thumbnail("foo.png",50,50)
|
||||||
|
@ -3,6 +3,37 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2000 Donald N. Allingham
|
# Copyright (C) 2000 Donald N. Allingham
|
||||||
#
|
#
|
||||||
|
# Modified September 2002 by Gary Shao
|
||||||
|
#
|
||||||
|
# Added line_break() method to TextDoc class to allow breaking a line
|
||||||
|
# in a paragraph (in those document generators that support it).
|
||||||
|
#
|
||||||
|
# Added start_listing() and end_listing() methods to TextDoc class to
|
||||||
|
# allow displaying text blocks without automatic filling and justification.
|
||||||
|
# Creating a new listing element seems called for because many document
|
||||||
|
# generator implementation have to use a different mechanism for text
|
||||||
|
# that is not going to be automatically filled and justified than that
|
||||||
|
# used for normal paragraphs. Examples are <pre> tags in HTML, using
|
||||||
|
# the Verbatim environment in LaTeX, and using the Preformatted class
|
||||||
|
# in reportlab for generating PDF.
|
||||||
|
#
|
||||||
|
# Added another option, FONT_MONOSPACE, for use as a font face. This
|
||||||
|
# calls for a fixed-width font (e.g. Courier). It is intended primarily
|
||||||
|
# for supporting the display of text where alignment by character position
|
||||||
|
# may be important, such as in code source or column-aligned data.
|
||||||
|
# Especially useful in styles for the new listing element discussed above.
|
||||||
|
#
|
||||||
|
# Added start_italic() and end_italic() methods to TextDoc class to
|
||||||
|
# complement the emphasis of text in a paragraph by bolding with the
|
||||||
|
# ability to italicize segments of text in a paragraph.
|
||||||
|
#
|
||||||
|
# Added the show_link() method to TextDoc to enable the creation of
|
||||||
|
# hyperlinks in HTML output. Only produces active links in HTML, while
|
||||||
|
# link will be represented as text in other generator output. (active
|
||||||
|
# links are technically possible in PDF documents, but the reportlab
|
||||||
|
# modules the PDF generator is based on does not support them at this
|
||||||
|
# time)
|
||||||
|
#
|
||||||
# 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
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
@ -51,6 +82,7 @@ except:
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
FONT_SANS_SERIF = 0
|
FONT_SANS_SERIF = 0
|
||||||
FONT_SERIF = 1
|
FONT_SERIF = 1
|
||||||
|
FONT_MONOSPACE = 2
|
||||||
|
|
||||||
PAPER_PORTRAIT = 0
|
PAPER_PORTRAIT = 0
|
||||||
PAPER_LANDSCAPE = 1
|
PAPER_LANDSCAPE = 1
|
||||||
@ -600,7 +632,7 @@ class ParagraphStyle:
|
|||||||
|
|
||||||
def set_alignment(self,align):
|
def set_alignment(self,align):
|
||||||
"""
|
"""
|
||||||
Sets the pargraph alignment.
|
Sets the paragraph alignment.
|
||||||
|
|
||||||
align - PARA_ALIGN_LEFT, PARA_ALIGN_RIGHT, PARA_ALIGN_CENTER, or
|
align - PARA_ALIGN_LEFT, PARA_ALIGN_RIGHT, PARA_ALIGN_CENTER, or
|
||||||
PARA_ALIGN_JUSTIFY
|
PARA_ALIGN_JUSTIFY
|
||||||
@ -797,7 +829,7 @@ class StyleSheet:
|
|||||||
Adds a paragraph style to the style sheet.
|
Adds a paragraph style to the style sheet.
|
||||||
|
|
||||||
name - name of the ParagraphStyle
|
name - name of the ParagraphStyle
|
||||||
style - PargraphStyle instance to be added.
|
style - ParagraphStyle instance to be added.
|
||||||
"""
|
"""
|
||||||
self.style_list[name] = ParagraphStyle(style)
|
self.style_list[name] = ParagraphStyle(style)
|
||||||
|
|
||||||
@ -1006,6 +1038,10 @@ class TextDoc:
|
|||||||
"Closes the document"
|
"Closes the document"
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def line_break(self):
|
||||||
|
"Forces a line break within a paragraph"
|
||||||
|
pass
|
||||||
|
|
||||||
def page_break(self):
|
def page_break(self):
|
||||||
"Forces a page break, creating a new page"
|
"Forces a page break, creating a new page"
|
||||||
pass
|
pass
|
||||||
@ -1016,12 +1052,23 @@ class TextDoc:
|
|||||||
def end_bold(self):
|
def end_bold(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def start_listing(self,style_name):
|
||||||
|
"""
|
||||||
|
Starts a new listing block, using the specified style name.
|
||||||
|
|
||||||
|
style_name - name of the ParagraphStyle to use for the block.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def end_listing(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def start_paragraph(self,style_name,leader=None):
|
def start_paragraph(self,style_name,leader=None):
|
||||||
"""
|
"""
|
||||||
Starts a new pargraph, using the specified style name.
|
Starts a new paragraph, using the specified style name.
|
||||||
|
|
||||||
style_name - name of the PargraphStyle to use for the paragraph.
|
style_name - name of the ParagraphStyle to use for the paragraph.
|
||||||
leader - Leading text for a pargraph. Typically ssed for numbering.
|
leader - Leading text for a paragraph. Typically used for numbering.
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ startup = 1
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
progName = "GRAMPS"
|
progName = "GRAMPS"
|
||||||
version = "0.8.0-pl1"
|
version = "0.8.0-pl2"
|
||||||
copyright = "© 2001-2002 Donald N. Allingham"
|
copyright = "© 2001-2002 Donald N. Allingham"
|
||||||
authors = ["Donald N. Allingham", "David Hampton","Donald A. Peterson"]
|
authors = ["Donald N. Allingham", "David Hampton","Donald A. Peterson"]
|
||||||
comments = _("GRAMPS (Genealogical Research and Analysis "
|
comments = _("GRAMPS (Genealogical Research and Analysis "
|
||||||
|
@ -72,14 +72,14 @@
|
|||||||
from TextDoc import *
|
from TextDoc import *
|
||||||
import ImgManip
|
import ImgManip
|
||||||
|
|
||||||
try:
|
#try:
|
||||||
import Plugins
|
# import Plugins
|
||||||
import intl
|
# import intl
|
||||||
_ = intl.gettext
|
# _ = intl.gettext
|
||||||
except:
|
#except:
|
||||||
withGramps = 0
|
# withGramps = 0
|
||||||
else:
|
#else:
|
||||||
withGramps = 1
|
# withGramps = 1
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -129,9 +129,11 @@ class RTFDoc(TextDoc):
|
|||||||
self.f.write('{\\f2\\fmodern\\fcharset0\\fprq0 Courier New;}}\n')
|
self.f.write('{\\f2\\fmodern\\fcharset0\\fprq0 Courier New;}}\n')
|
||||||
self.f.write('{\colortbl\n')
|
self.f.write('{\colortbl\n')
|
||||||
self.color_map = {}
|
self.color_map = {}
|
||||||
index = 1
|
index = 2
|
||||||
self.color_map[(0,0,0)] = 0
|
self.color_map[(0,0,0)] = 0
|
||||||
self.f.write('\\red0\\green0\\blue0;')
|
self.f.write('\\red0\\green0\\blue0;')
|
||||||
|
self.color_map[(0,0,255)] = 1
|
||||||
|
self.f.write('\\red0\\green0\\blue255;')
|
||||||
for style_name in self.style_list.keys():
|
for style_name in self.style_list.keys():
|
||||||
style = self.style_list[style_name]
|
style = self.style_list[style_name]
|
||||||
fgcolor = style.get_font().get_color()
|
fgcolor = style.get_font().get_color()
|
||||||
@ -587,22 +589,23 @@ class RTFDoc(TextDoc):
|
|||||||
#
|
#
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
def show_link(self, text, href):
|
def show_link(self, text, href):
|
||||||
self.write_text("%s (" % text)
|
#self.write_text("%s (" % text)
|
||||||
self.start_italic()
|
#self.start_italic()
|
||||||
self.write_text(href)
|
#self.write_text(href)
|
||||||
self.end_italic()
|
#self.end_italic()
|
||||||
self.write_text(") ")
|
#self.write_text(") ")
|
||||||
|
self.text = self.text + '{\\field{\\*\\fldinst{\ul\cf1 HYPERLINK "%s" }} {\\fldrslt{\ul\cf1 %s}}}' % (href, text)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Register the document generator with the system if in Gramps
|
# Register the document generator with the system if in Gramps
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
if withGramps:
|
#if withGramps:
|
||||||
Plugins.register_text_doc(
|
# Plugins.register_text_doc(
|
||||||
name=_("Rich Text Format (RTF)"),
|
# name=_("Rich Text Format (RTF)"),
|
||||||
classref=RTFDoc,
|
# classref=RTFDoc,
|
||||||
table=1,
|
# table=1,
|
||||||
paper=1,
|
# paper=1,
|
||||||
style=1
|
# style=1
|
||||||
)
|
# )
|
||||||
|
@ -922,7 +922,7 @@ class Gramps:
|
|||||||
if family.getFather() == None:
|
if family.getFather() == None:
|
||||||
for child in family.getChildList():
|
for child in family.getChildList():
|
||||||
child.removeAltFamily(family)
|
child.removeAltFamily(family)
|
||||||
self.db.removeFamily(family)
|
self.db.deleteFamily(family)
|
||||||
else:
|
else:
|
||||||
family.setMother(None)
|
family.setMother(None)
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ class DescendantReportDialog(TextReportDialog):
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
def report(database,person):
|
def report(database,person):
|
||||||
DescendantReportDialog(person,database)
|
DescendantReportDialog(database,person)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user