Updated bug checks

svn: r1138
This commit is contained in:
Don Allingham 2002-10-14 00:39:26 +00:00
parent 1f8ebeb12c
commit f26621be69
10 changed files with 148 additions and 60 deletions

View File

@ -1,19 +1,14 @@
* Allow for multiple notes. A tabbed interface would be really useful,
since there are no titles for notes. Not all objects would necessarily
need multiple notes. Determine which ones should and shouldn't.
GRAMPS programming task list. These are tasks that would be nice if
someone would take over.
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
the default icon. Nautilus does this very effectively, and GTK has
support for 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
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
revision control plugin system. Most of the work is already done.
* 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.
Python 2.0 provides a zip interface, so this may need to hold off until
the move is made to Python 2.0.
* Sort all lists
* 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
View File

@ -1567,7 +1567,7 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
RELEASE=pl1
RELEASE=pl2
VERSIONSTRING=$VERSION
if test x"$RELEASE" != "x"

View File

@ -1,5 +1,5 @@
%define ver 0.8.0
%define rel pl1
%define rel pl2
%define prefix /usr
Summary: Genealogical Research and Analysis Management Programming System.

View File

@ -205,8 +205,10 @@ class ChooseParents:
self.father_list.sort()
self.mother_list.thaw()
self.father_list.thaw()
self.father_list.moveto(self.father_list.selection[0],0)
self.mother_list.moveto(self.mother_list.selection[0],0)
if self.father_list.selection:
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":
self.mlabel.set_label(_("Parent"))

View File

@ -3,6 +3,24 @@
#
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
@ -19,8 +37,15 @@
#
import os
import const
import string
import sys
try:
import const
except:
Convert = "convert"
else:
Convert = const.convert
#-------------------------------------------------------------------------
#
@ -33,12 +58,16 @@ try:
PIL.Image.init()
no_pil = 0
except:
import popen2
import GDK
import GTK
import gtk
import GdkImlib
no_pil = 1
try:
import popen2
import GDK
import GTK
import gtk
import GdkImlib
no_pil = 1
except:
raise "ImgLibException", "Error: No imaging library available"
class ImgManip:
def __init__(self,source):
@ -53,15 +82,15 @@ class ImgManip:
def fmt_thumbnail(self,dest,width,height,cnv):
w = int(width)
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)
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)
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)
buf = r.read()
r.close()
@ -69,7 +98,7 @@ class ImgManip:
return buf
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)
buf = r.read()
r.close()
@ -114,7 +143,8 @@ class ImgManip:
if im.mode != 'RGB':
im.draft('RGB',im.size)
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):
self.fmt_thumbnail(dest,width,height,"jpeg")
@ -155,8 +185,6 @@ class ImgManip:
if __name__ == "__main__":
import sys
img = ImgManip(sys.argv[1])
img.jpg_thumbnail("foo.jpg",50,50)
img.png_thumbnail("foo.png",50,50)

View File

@ -3,6 +3,37 @@
#
# 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
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
@ -51,6 +82,7 @@ except:
#-------------------------------------------------------------------------
FONT_SANS_SERIF = 0
FONT_SERIF = 1
FONT_MONOSPACE = 2
PAPER_PORTRAIT = 0
PAPER_LANDSCAPE = 1
@ -600,7 +632,7 @@ class ParagraphStyle:
def set_alignment(self,align):
"""
Sets the pargraph alignment.
Sets the paragraph alignment.
align - PARA_ALIGN_LEFT, PARA_ALIGN_RIGHT, PARA_ALIGN_CENTER, or
PARA_ALIGN_JUSTIFY
@ -797,7 +829,7 @@ class StyleSheet:
Adds a paragraph style to the style sheet.
name - name of the ParagraphStyle
style - PargraphStyle instance to be added.
style - ParagraphStyle instance to be added.
"""
self.style_list[name] = ParagraphStyle(style)
@ -1006,6 +1038,10 @@ class TextDoc:
"Closes the document"
pass
def line_break(self):
"Forces a line break within a paragraph"
pass
def page_break(self):
"Forces a page break, creating a new page"
pass
@ -1016,12 +1052,23 @@ class TextDoc:
def end_bold(self):
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):
"""
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.
leader - Leading text for a pargraph. Typically ssed for numbering.
style_name - name of the ParagraphStyle to use for the paragraph.
leader - Leading text for a paragraph. Typically used for numbering.
"""
pass

View File

@ -92,7 +92,7 @@ startup = 1
#
#-------------------------------------------------------------------------
progName = "GRAMPS"
version = "0.8.0-pl1"
version = "0.8.0-pl2"
copyright = "© 2001-2002 Donald N. Allingham"
authors = ["Donald N. Allingham", "David Hampton","Donald A. Peterson"]
comments = _("GRAMPS (Genealogical Research and Analysis "

View File

@ -72,14 +72,14 @@
from TextDoc import *
import ImgManip
try:
import Plugins
import intl
_ = intl.gettext
except:
withGramps = 0
else:
withGramps = 1
#try:
# import Plugins
# import intl
# _ = intl.gettext
#except:
# withGramps = 0
#else:
# withGramps = 1
#------------------------------------------------------------------------
#
@ -129,9 +129,11 @@ class RTFDoc(TextDoc):
self.f.write('{\\f2\\fmodern\\fcharset0\\fprq0 Courier New;}}\n')
self.f.write('{\colortbl\n')
self.color_map = {}
index = 1
index = 2
self.color_map[(0,0,0)] = 0
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():
style = self.style_list[style_name]
fgcolor = style.get_font().get_color()
@ -587,22 +589,23 @@ class RTFDoc(TextDoc):
#
#--------------------------------------------------------------------
def show_link(self, text, href):
self.write_text("%s (" % text)
self.start_italic()
self.write_text(href)
self.end_italic()
self.write_text(") ")
#self.write_text("%s (" % text)
#self.start_italic()
#self.write_text(href)
#self.end_italic()
#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
#
#------------------------------------------------------------------------
if withGramps:
Plugins.register_text_doc(
name=_("Rich Text Format (RTF)"),
classref=RTFDoc,
table=1,
paper=1,
style=1
)
#if withGramps:
# Plugins.register_text_doc(
# name=_("Rich Text Format (RTF)"),
# classref=RTFDoc,
# table=1,
# paper=1,
# style=1
# )

View File

@ -922,7 +922,7 @@ class Gramps:
if family.getFather() == None:
for child in family.getChildList():
child.removeAltFamily(family)
self.db.removeFamily(family)
self.db.deleteFamily(family)
else:
family.setMother(None)

View File

@ -179,7 +179,7 @@ class DescendantReportDialog(TextReportDialog):
#
#------------------------------------------------------------------------
def report(database,person):
DescendantReportDialog(person,database)
DescendantReportDialog(database,person)
#------------------------------------------------------------------------
#