LDS support for marriages

svn: r634
This commit is contained in:
Don Allingham 2001-12-19 02:02:59 +00:00
parent 106666cd48
commit ac61d1b767
17 changed files with 662 additions and 342 deletions

111
gramps/configure vendored
View File

@ -560,10 +560,15 @@ else
echo "$ac_t""no" 1>&6
fi
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
if test "$PYTHON_VERSION" != "1.5"
then
# Extract the first word of "python1.5", so it can be a program name with args.
set dummy python1.5; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:567: checking for $ac_word" >&5
echo "configure:572: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON15'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -595,10 +600,16 @@ else
echo "$ac_t""no" 1>&6
fi
else
PYTHON15=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.0"
then
# Extract the first word of "python2.0", so it can be a program name with args.
set dummy python2.0; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:602: checking for $ac_word" >&5
echo "configure:613: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON20'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -630,10 +641,16 @@ else
echo "$ac_t""no" 1>&6
fi
else
PYTHON20=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.1"
then
# Extract the first word of "python2.1", so it can be a program name with args.
set dummy python2.1; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:637: checking for $ac_word" >&5
echo "configure:654: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON21'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -665,10 +682,16 @@ else
echo "$ac_t""no" 1>&6
fi
else
PYTHON21=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.2"
then
# Extract the first word of "python2.2", so it can be a program name with args.
set dummy python2.2; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:672: checking for $ac_word" >&5
echo "configure:695: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON22'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -700,10 +723,14 @@ else
echo "$ac_t""no" 1>&6
fi
else
PYTHON22=$PYTHON
fi
# Extract the first word of "zip", so it can be a program name with args.
set dummy zip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:707: checking for $ac_word" >&5
echo "configure:734: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_ZIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -736,8 +763,6 @@ else
fi
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
@ -775,7 +800,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:779: checking for a BSD compatible install" >&5
echo "configure:804: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -828,7 +853,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
echo "configure:832: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo "configure:857: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -858,7 +883,7 @@ fi
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:862: checking for $ac_word" >&5
echo "configure:887: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -888,7 +913,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:892: checking for $ac_word" >&5
echo "configure:917: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -939,7 +964,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:943: checking for $ac_word" >&5
echo "configure:968: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -971,7 +996,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
echo "configure:975: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
echo "configure:1000: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@ -982,12 +1007,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
#line 986 "configure"
#line 1011 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
if { (eval echo configure:991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@ -1013,12 +1038,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
echo "configure:1017: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "configure:1042: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
echo "configure:1022: checking whether we are using GNU C" >&5
echo "configure:1047: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -1027,7 +1052,7 @@ else
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@ -1046,7 +1071,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
echo "configure:1050: checking whether ${CC-cc} accepts -g" >&5
echo "configure:1075: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -1079,7 +1104,7 @@ fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:1083: checking how to run the C preprocessor" >&5
echo "configure:1108: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@ -1094,13 +1119,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1098 "configure"
#line 1123 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1111,13 +1136,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1115 "configure"
#line 1140 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1121: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1128,13 +1153,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
#line 1132 "configure"
#line 1157 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1138: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1160,17 +1185,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
echo "configure:1164: checking for libintl.h" >&5
echo "configure:1189: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1169 "configure"
#line 1194 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -1193,7 +1218,7 @@ fi
echo $ac_n "checking for textdomain in -lc""... $ac_c" 1>&6
echo "configure:1197: checking for textdomain in -lc" >&5
echo "configure:1222: checking for textdomain in -lc" >&5
ac_lib_var=`echo c'_'textdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -1201,7 +1226,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1205 "configure"
#line 1230 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -1212,7 +1237,7 @@ int main() {
textdomain()
; return 0; }
EOF
if { (eval echo configure:1216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -1231,7 +1256,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for textdomain in -lintl""... $ac_c" 1>&6
echo "configure:1235: checking for textdomain in -lintl" >&5
echo "configure:1260: checking for textdomain in -lintl" >&5
ac_lib_var=`echo intl'_'textdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -1239,7 +1264,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1243 "configure"
#line 1268 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -1250,7 +1275,7 @@ int main() {
textdomain()
; return 0; }
EOF
if { (eval echo configure:1254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -1279,7 +1304,7 @@ fi
# Extract the first word of "gnome-config", so it can be a program name with args.
set dummy gnome-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1283: checking for $ac_word" >&5
echo "configure:1308: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HAVE_GNOME_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -1310,7 +1335,7 @@ GNOMEHELP=`gnome-config --prefix`
echo $ac_n "checking Python bindings for sax/xml""... $ac_c" 1>&6
echo "configure:1314: checking Python bindings for sax/xml" >&5
echo "configure:1339: checking Python bindings for sax/xml" >&5
cat > conftest.py <<EOF
try:
@ -1343,7 +1368,7 @@ fi
echo "$ac_t""ok" 1>&6
echo $ac_n "checking Python bindings for gtk+""... $ac_c" 1>&6
echo "configure:1347: checking Python bindings for gtk+" >&5
echo "configure:1372: checking Python bindings for gtk+" >&5
cat > conftest.py <<EOF
try:
@ -1369,7 +1394,7 @@ fi
echo "$ac_t""ok" 1>&6
echo $ac_n "checking Python bindings for GNOME""... $ac_c" 1>&6
echo "configure:1373: checking Python bindings for GNOME" >&5
echo "configure:1398: checking Python bindings for GNOME" >&5
cat > conftest.py <<EOF
try:
@ -1395,7 +1420,7 @@ fi
echo "$ac_t""ok" 1>&6
echo $ac_n "checking Python/libglade bindings""... $ac_c" 1>&6
echo "configure:1399: checking Python/libglade bindings" >&5
echo "configure:1424: checking Python/libglade bindings" >&5
cat > conftest.py <<EOF
try:
@ -1421,7 +1446,7 @@ fi
echo "$ac_t""ok" 1>&6
echo $ac_n "checking Python/GNOME bindings for libglade""... $ac_c" 1>&6
echo "configure:1425: checking Python/GNOME bindings for libglade" >&5
echo "configure:1450: checking Python/GNOME bindings for libglade" >&5
cat > conftest.py <<EOF
try:
@ -1449,9 +1474,8 @@ echo "$ac_t""ok" 1>&6
echo $ac_n "checking for headers required to compile python extensions""... $ac_c" 1>&6
echo "configure:1453: checking for headers required to compile python extensions" >&5
echo "configure:1478: checking for headers required to compile python extensions" >&5
echo $PYTHON15
if test "$PYTHON15" != ""; then
py_prefix=`$PYTHON15 -c "import sys; print sys.prefix"`
py_exec_prefix=`$PYTHON15 -c "import sys; print sys.exec_prefix"`
@ -1489,7 +1513,6 @@ fi
if test "$PYTHON22" != ""; then
INTLLIBS="${INTLLIBS}intl22.so "
py_prefix=`$PYTHON22 -c "import sys; print sys.prefix"`
py_exec_prefix=`$PYTHON22 -c "import sys; print sys.exec_prefix"`
P22_INCLUDES="-I${py_prefix}/include/python2.2"

View File

@ -6,16 +6,41 @@ dnl Checks for programs.
PACKAGE=gramps
AC_PATH_PROG(PYTHON, python)
AC_PATH_PROG(PYTHON15, python1.5)
AC_PATH_PROG(PYTHON20, python2.0)
AC_PATH_PROG(PYTHON21, python2.1)
AC_PATH_PROG(PYTHON22, python2.2)
AC_PATH_PROG(ZIP, zip)
changequote(<<, >>)dnl
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"`
changequote([, ])dnl
if test "$PYTHON_VERSION" != "1.5"
then
AC_PATH_PROG(PYTHON15, python1.5)
else
PYTHON15=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.0"
then
AC_PATH_PROG(PYTHON20, python2.0)
else
PYTHON20=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.1"
then
AC_PATH_PROG(PYTHON21, python2.1)
else
PYTHON21=$PYTHON
fi
if test "$PYTHON_VERSION" != "2.2"
then
AC_PATH_PROG(PYTHON22, python2.2)
else
PYTHON22=$PYTHON
fi
AC_PATH_PROG(ZIP, zip)
AC_SUBST(PYTHON)
AC_SUBST(PYTHON_VERSION)
AC_SUBST(PACKAGE)
@ -180,7 +205,6 @@ dnl Checks for header files.
AC_MSG_CHECKING(for headers required to compile python extensions)
echo $PYTHON15
if test "$PYTHON15" != ""; then
py_prefix=`$PYTHON15 -c "import sys; print sys.prefix"`
py_exec_prefix=`$PYTHON15 -c "import sys; print sys.exec_prefix"`

View File

@ -7,4 +7,8 @@ export GRAMPSDIR=@datadir@/@PACKAGE@
export PYTHONPATH=$GRAMPSDIR
export GRAMPSI18N=@prefix@/share/locale
if [ -f /usr/X11R6/lib/libX11.so ] ; then
export LIB_PRELOAD=/usr/X11R6/lib/libX11.so
fi
@PYTHON@ $GRAMPSDIR/gramps.py $*

View File

@ -132,7 +132,7 @@ class EditPerson:
"on_ldsendow_src_clicked" : self.on_ldsendow_source_clicked,
"on_ldsseal_src_clicked" : self.on_ldsseal_source_clicked,
"on_name_source_clicked" : self.on_primary_name_source_clicked,
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
"on_photolist_button_press_event" : self.gallery.on_button_press_event,
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
"on_update_address_clicked" : self.on_update_addr_clicked,
"on_update_attr_clicked" : self.on_update_attr_clicked,
@ -395,11 +395,10 @@ class EditPerson:
self.redraw_url_list()
self.window.show()
def build_bap_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_baptism_index:
for val in const.lds_baptism:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_bap)
@ -412,7 +411,7 @@ class EditPerson:
def build_endow_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_baptism_index:
for val in const.lds_baptism:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_endow)
@ -425,7 +424,7 @@ class EditPerson:
def build_seal_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_csealing_index:
for val in const.lds_csealing:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_seal)
@ -713,7 +712,8 @@ class EditPerson:
gnome.url.show(text)
def on_cancel_edit(self,obj):
"""If the data has changed, give the user a chance to cancel the close window"""
"""If the data has changed, give the user a chance to cancel
the close window"""
if self.did_data_change():
q = _("Are you sure you want to abandon your changes?")
GnomeQuestionDialog(q,self.cancel_callback)
@ -754,15 +754,52 @@ class EditPerson:
if self.person.getId() != idval:
changed = 1
if suffix != name.getSuffix() or surname != name.getSurname():
if suffix != name.getSuffix():
changed = 1
if given != name.getFirstName() or nick != self.person.getNickName():
if surname != name.getSurname():
changed = 1
if given != name.getFirstName():
changed = 1
if nick != self.person.getNickName():
changed = 1
if title != name.getTitle():
changed = 1
if self.pname.getNote() != name.getNote():
changed = 1
if self.lds_not_loaded == 0 and self.check_lds():
changed == 1
bplace = string.strip(self.bplace.get_text())
dplace = string.strip(self.dplace.get_text())
p1 = utils.get_place_from_list(self.bpcombo)
if p1 == None and bplace != "":
changed = 1
self.birth.setPlace(p1)
p1 = utils.get_place_from_list(self.dpcombo)
if p1 == None and dplace != "":
changed = 1
self.death.setPlace(p1)
if not self.birth.are_equal(self.person.getBirth()):
changed = 1
if not self.death.are_equal(self.person.getDeath()):
changed = 1
if male and self.person.getGender() != Person.male:
changed = 1
elif female and self.person.getGender() != Person.female:
changed = 1
elif unknown and self.person.getGender() != Person.unknown:
changed = 1
if text != self.person.getNote() or self.lists_changed:
changed = 1
return changed
def check_lds(self):
date = self.ldsbap_date.get_text()
temple = self.ldsbap_temple.entry.get_text()
place = utils.get_place_from_list(self.ldsbapplace)
@ -772,20 +809,18 @@ class EditPerson:
else:
temple = ""
ord = self.person.getLdsBaptism()
if not ord:
if date or temple:
changed = 1
if date or temple or place or self.bap_stat:
return 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0:
changed = 1
elif ord.getPlace() != place:
changed = 1
elif ord.getStatus() != self.bap_stat:
changed = 1
elif ord.getTemple() != temple:
changed = 1
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getPlace() != place or \
ord.getStatus() != self.bap_stat or \
ord.getTemple() != temple:
return 1
date = self.ldsend_date.get_text()
temple = self.ldsend_temple.entry.get_text()
@ -796,20 +831,18 @@ class EditPerson:
else:
temple = ""
ord = self.person.getLdsEndowment()
if not ord:
if date or temple:
changed = 1
if date or temple or place or self.end_stat:
return 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0:
changed = 1
elif ord.getPlace() != place:
changed = 1
elif ord.getStatus() != self.end_stat:
changed = 1
elif ord.getTemple() != temple:
changed = 1
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getPlace() != place or \
ord.getStatus() != self.end_stat or \
ord.getTemple() != temple:
return 1
date = self.ldsseal_date.get_text()
temple = self.ldsseal_temple.entry.get_text()
@ -821,51 +854,19 @@ class EditPerson:
ord = self.person.getLdsSeal()
if not ord:
if date or temple or self.ldsfam:
changed = 1
if date or temple or self.ldsfam or self.seal_stat:
return 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0:
changed = 1
elif ord.getPlace() != place:
changed = 1
elif ord.getTemple() != temple:
changed = 1
elif ord.getStatus() != self.seal_stat:
changed = 1
elif ord.getFamily() != self.ldsfam:
changed = 1
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getPlace() != place or \
ord.getTemple() != temple or \
ord.getStatus() != self.seal_stat or \
ord.getFamily() != self.ldsfam:
return 1
bplace = string.strip(self.bplace.get_text())
dplace = string.strip(self.dplace.get_text())
p1 = utils.get_place_from_list(self.bpcombo)
if p1 == None and bplace != "":
changed = 1
self.birth.setPlace(p1)
p1 = utils.get_place_from_list(self.dpcombo)
if p1 == None and dplace != "":
changed = 1
self.death.setPlace(p1)
if not self.birth.are_equal(self.person.getBirth()):
changed = 1
if not self.death.are_equal(self.person.getDeath()):
changed = 1
if male and self.person.getGender() != Person.male:
changed = 1
elif female and self.person.getGender() != Person.female:
changed = 1
elif unknown and self.person.getGender() != Person.unknown:
changed = 1
if text != self.person.getNote() or self.lists_changed:
changed = 1
return changed
return 0
def on_event_delete_clicked(self,obj):
"""Delete the selected event"""

View File

@ -114,7 +114,7 @@ class EditPlace:
"destroy_passed_object" : utils.destroy_passed_object,
"on_source_clicked" : self.on_source_clicked,
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
"on_photolist_button_press_event" : self.gallery.on_button_press_event,
"on_switch_page" : self.on_switch_page,
"on_addphoto_clicked" : self.gallery.on_add_photo_clicked,
"on_deletephoto_clicked" : self.gallery.on_delete_photo_clicked,

View File

@ -76,7 +76,7 @@ class EditSource:
self.top_window.signal_autoconnect({
"destroy_passed_object" : utils.destroy_passed_object,
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
"on_photolist_button_press_event" : self.gallery.on_button_press_event,
"on_switch_page" : self.on_switch_page,
"on_addphoto_clicked" : self.gallery.on_add_photo_clicked,
"on_deletephoto_clicked" : self.gallery.on_delete_photo_clicked,

View File

@ -72,6 +72,11 @@ class ImageSelect:
def __init__(self, path, db):
self.path = path;
self.db = db
self.dataobj = None
def add_thumbnail(self, photo):
"should be overrridden"
pass
#-------------------------------------------------------------------------
#
@ -309,7 +314,6 @@ class Gallery(ImageSelect):
try:
id = photo.getId()
name = RelImage.import_media_object(tfile,self.path,id)
if name != None and name != "":
photo.setPath(name)
except:
photo.setPath(tfile)
@ -390,11 +394,11 @@ class Gallery(ImageSelect):
#-------------------------------------------------------------------------
#
# on_photolist_button_press_event - Look for right-clicks on a
# on_button_press_event - Look for right-clicks on a
# picture and create a popup menu of the available actions.
#
#-------------------------------------------------------------------------
def on_photolist_button_press_event(self, obj, event):
def on_button_press_event(self, obj, event):
icon = self.selectedIcon
if icon == -1:
return

View File

@ -80,13 +80,15 @@ class Marriage:
"on_close_marriage_editor" : self.on_close_marriage_editor,
"on_delete_attr_clicked" : self.on_delete_attr_clicked,
"on_delete_event" : self.on_delete_event,
"on_lds_src_clicked" : self.lds_src_clicked,
"on_lds_note_clicked" : self.lds_note_clicked,
"on_deletephoto_clicked" : self.gallery.on_delete_photo_clicked,
"on_edit_properties_clicked": self.gallery.popup_change_description,
"on_marriageAddBtn_clicked" : self.on_add_clicked,
"on_marriageDeleteBtn_clicked" : self.on_delete_clicked,
"on_marriageEventList_select_row" : self.on_select_row,
"on_marriageUpdateBtn_clicked" : self.on_update_clicked,
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
"on_photolist_button_press_event" : self.gallery.on_button_press_event,
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
"on_update_attr_clicked" : self.on_update_attr_clicked,
})
@ -114,6 +116,8 @@ class Marriage:
self.attr_details_field = self.get_widget("attr_details")
self.lds_date = self.get_widget("lds_date")
self.lds_temple = self.get_widget("lds_temple")
self.lds_status = self.get_widget("lds_status")
self.lds_place = self.get_widget("lds_place")
self.event_list.set_column_visibility(3,Config.show_detail)
self.attr_list.set_column_visibility(2,Config.show_detail)
@ -125,23 +129,32 @@ class Marriage:
# set initial data
self.gallery.load_images()
self.type_field.set_popdown_strings(const.familyRelations)
frel = const.display_frel(family.getRelationship())
self.type_field.entry.set_text(frel)
self.gid.set_text(family.getId())
self.gid.set_editable(Config.id_edit)
ord = family.getLdsSeal()
self.lds_temple.set_popdown_strings(_temple_names)
plist = self.db.getPlaceMap().values()
ord = self.family.getLdsSeal()
if ord:
utils.attach_places(plist,self.lds_place,ord.getPlace())
self.lds_date.set_text(ord.getDate())
if ord.getTemple() != "":
name = const.lds_temple_to_abrev[ord.getTemple()]
else:
name = ""
self.lds_temple.entry.set_text(name)
self.seal_stat = ord.getStatus()
else:
utils.attach_places(plist,self.lds_place,None)
self.lds_temple.entry.set_text("")
self.seal_stat = 0
self.build_seal_menu()
self.event_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,GDK.ACTION_COPY)
self.event_list.drag_source_set(GDK.BUTTON1_MASK, pycode_tgts, GDK.ACTION_COPY)
@ -166,6 +179,38 @@ class Marriage:
self.redraw_attr_list()
top_window.show()
def build_seal_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_ssealing:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_seal)
menuitem.show()
menu.append(menuitem)
index = index + 1
self.lds_status.set_menu(menu)
self.lds_status.set_history(self.seal_stat)
def set_lds_seal(self,obj):
self.seal_stat = obj.get_data("val")
def lds_src_clicked(self,obj):
import Sources
ord = self.family.getLdsSeal()
if ord == None:
ord = LdsOrd()
self.person.setLdsSeal(ord)
Sources.SourceSelector(ord.getSourceRefList(),self,src_changed)
def lds_note_clicked(self,obj):
import NoteEdit
ord = self.family.getLdsSeal()
if ord == None:
ord = LdsOrd()
self.person.setLdsSeal(ord)
NoteEdit.NoteEditor(ord)
def on_up_clicked(self,obj):
if len(obj.selection) == 0:
return
@ -271,16 +316,20 @@ class Marriage:
temple = const.lds_temple_codes[temple]
else:
temple = ""
place = utils.get_place_from_list(self.lds_place)
ord = self.family.getLdsSeal()
if not ord:
if date or temple:
if date or temple or place or self.seal_stat:
changed = 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0:
changed = 1
elif ord.getTemple() != temple:
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getTemple() != temple or \
ord.getPlace() != place or \
ord.getStatus() != self.seal_stat:
changed = 1
return changed
@ -341,12 +390,16 @@ class Marriage:
temple = const.lds_temple_codes[temple]
else:
temple = ""
place = utils.get_place_from_list(self.lds_place)
ord = self.family.getLdsSeal()
if not ord:
if date or temple:
if date or temple or place or self.seal_stat:
ord = LdsOrd()
ord.setDate(date)
ord.setTemple(temple)
ord.setStatus(self.seal_stat)
ord.setPlace(place)
self.family.setLdsSeal(ord)
utils.modified()
else:
@ -358,6 +411,12 @@ class Marriage:
if ord.getTemple() != temple:
ord.setTemple(temple)
utils.modified()
if ord.getStatus() != self.seal_stat:
ord.setStatus(self.seal_stat)
utils.modified()
if ord.getPlace() != place:
ord.setPlace(place)
utils.modified()
utils.destroy_passed_object(self.get_widget("marriageEditor"))
@ -463,3 +522,5 @@ def cancel_callback(a):
if a==0:
utils.destroy_passed_object(quit)
def src_changed(parent):
parent.lists_changed = 1

View File

@ -172,7 +172,9 @@ class MediaView:
os.execvp(const.editor,[const.editor, self.obj.getPath()])
def popup_convert_to_private(self, obj):
name = RelImage.import_media_object(self.obj.getPath(),self.db.getSavePath(),self.obj.getId())
path = self.db.getSavePath()
id = self.obj.getId()
name = RelImage.import_media_object(self.obj.getPath(),path,id)
self.obj.setPath(name)
self.obj.setLocal(1)
@ -330,7 +332,6 @@ class MediaView:
id = photo.getId()
path = self.db.getSavePath()
name = RelImage.import_media_object(tfile,path,id)
if name != None and name != "":
photo.setPath(name)
except:
photo.setPath(tfile)

View File

@ -75,15 +75,17 @@ def import_media_object(filename,path,base):
os.mkdir(thumb)
except IOError,msg:
GnomeErrorDialog(_("Could not create %s") % thumb + "\n" + str(msg))
return ""
except:
GnomeErrorDialog(_("Could not create %s") % thumb)
return ""
try:
path = "%s/%s" % (thumb,base)
mk_thumb(filename,path,const.thumbScale)
shutil.copy(filename,name)
except:
return None
return ""
else:
bname = os.path.basename(filename)
l = string.split(bname,'.')

View File

@ -152,6 +152,25 @@ class LdsOrd(SourceNote):
def getTemple(self):
return self.temple
def are_equal(self,other):
"""returns 1 if the spdcified ordinance is the same as the instance"""
if other == None:
return 0
if (self.famc != other.famc or
self.place != other.place or
self.temple != other.temple or
compare_dates(self.getDateObj(),other.getDateObj()) or
len(self.getSourceRefList()) != len(other.getSourceRefList())):
return 0
index = 0
olist = other.getSourceRefList()
for a in self.getSourceRefList():
if not a.are_equal(olist[index]):
return 0
index = index + 1
return 1
class DataObj(SourceNote):
"""Base class for data elements, providing source, note, and privacy data"""
@ -981,12 +1000,8 @@ class Person:
def removeFamily(self,family):
"""removes the specified Family instance from the list
of marriages/partnerships"""
index = 0
for fam in self.FamilyList:
if fam == family:
del self.FamilyList[index]
return
index = index + 1
if family in self.FamilyList:
self.FamilyList.remove(family)
def addAddress(self,address):
"""adds the Address instance to the list of addresses"""
@ -994,12 +1009,8 @@ class Person:
def removeAddress(self,address):
"""removes the Address instance from the list of addresses"""
index = 0
for addr in self.addressList:
if addr == address:
del self.addressList[index]
return
index = index + 1
for address in self.addressList:
self.addressList.remove(address)
def getAddressList(self):
"""returns the list of addresses"""
@ -1015,12 +1026,8 @@ class Person:
def removeAttribute(self,attribute):
"""removes the specified Attribute instance from the attribute list"""
index = 0
for attr in self.attributeList:
if attr == attribute:
del self.attributeList[index]
return
index = index + 1
for attribute in self.attributeList:
self.attributeList.remove(attribute)
def getAttributeList(self):
"""returns the attribute list"""
@ -1042,12 +1049,8 @@ class Person:
def removeAltFamily(self,family):
"""removes a Family instance from the alternate family list"""
index = 0
for fam in self.AltFamilyList:
if fam[0] == family:
del self.AltFamilyList[index]
return
index = index + 1
for family in self.AltFamilyList:
self.AltFamilyList.remove(family)
def setMainFamily(self,family):
"""sets the main Family of the Person, the Family in which the
@ -1297,12 +1300,8 @@ class Family:
def removeAttribute(self,attribute):
"""removes the specified Attribute instance from the attribute list"""
index = 0
for attr in self.attributeList:
if attr == attribute:
del self.attributeList[index]
return
index = index + 1
for attribute in self.attributeList:
self.attributeList.remove(attribute)
def getAttributeList(self) :
"""returns the attribute list"""
@ -1380,17 +1379,17 @@ class Family:
if person.ancestor:
if self.Father:
self.Father.setAncestor(1)
if (self.Mother):
if self.Mother:
self.Mother.setAncestor(1)
def removeChild(self,person):
"""removes the specified Person from the child list"""
if person in self.Children:
self.Children.remove(person)
if person.ancestor:
if self.Father:
self.Father.setAncestor(0)
if (self.Mother):
if self.Mother:
self.Mother.setAncestor(0)
def getChildList(self):

View File

@ -469,7 +469,25 @@ def exportData(database, filename, callback):
else:
g = open(filename,"w")
try:
write_xml_data(database, g, callback, 0)
except:
from gnome.ui import GnomeErrorDialog
import traceback
from intl import gettext
_ = gettext
traceback.print_exc()
fname = os.path.expanduser("~/gramps.err")
errfile = open(fname,"w")
traceback.print_exc(file=errfile)
errfile.close()
GnomeErrorDialog(_("Failure writing %s, original file restored") % filename)
shutil.copy(filename + ".bak", filename)
if not g.closed:
g.close()
def write_xml_data(database, g, callback, sp):

View File

@ -698,20 +698,23 @@ lds_temple_to_abrev = {
"WA" : "Washington, D.C.",
}
lds_baptism_status = {
"<No Status>" : 0,
"Child" : 1,
"Cleared" : 2,
"Completed" : 3,
"Infant" : 4,
"Pre-1970" : 5,
"Qualified" : 6,
"Stillborn" : 7,
"Submitted" : 8,
"Uncleared" : 9,
lds_status = {
"BIC" : 1,
"CANCELED" : 1,
"CHILD" : 1,
"CLEARED" : 2,
"COMPLETED" : 3,
"DNS" : 4,
"INFANT" : 4,
"PRE-1970" : 5,
"QUALIFIED" : 6,
"DNS/CAN" : 7,
"STILLBORN" : 7,
"SUBMITTED" : 8,
"UNCLEARED" : 9,
}
lds_baptism_index = [
lds_baptism = [
"<No Status>",
"Child",
"Cleared",
@ -724,7 +727,7 @@ lds_baptism_index = [
"Uncleared",
]
lds_csealing_index = [
lds_csealing = [
"<No Status>",
"BIC",
"Cleared",
@ -737,3 +740,17 @@ lds_csealing_index = [
"Uncleared",
]
lds_ssealing = [
"<No Status>",
"Canceled",
"Cleared",
"Completed",
"DNS",
"Pre-1970",
"Qualified",
"DNS/CAN",
"Submitted",
"Uncleared",
]

View File

@ -1521,97 +1521,26 @@
<spacing>0</spacing>
<widget>
<class>GtkLabel</class>
<name>label233</name>
<class>GtkFrame</class>
<name>frame1</name>
<border_width>5</border_width>
<label>Spouse Sealing</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
<label_xalign>0</label_xalign>
<shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
<child>
<padding>5</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkHSeparator</class>
<name>hseparator6</name>
<child>
<padding>5</padding>
<padding>0</padding>
<expand>False</expand>
<fill>True</fill>
</child>
</widget>
<widget>
<class>GtkTable</class>
<name>table11</name>
<rows>2</rows>
<columns>2</columns>
<name>table12</name>
<rows>3</rows>
<columns>3</columns>
<homogeneous>False</homogeneous>
<row_spacing>0</row_spacing>
<column_spacing>0</column_spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkLabel</class>
<name>label234</name>
<label>Date</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>1</xalign>
<yalign>0.5</yalign>
<xpad>5</xpad>
<ypad>5</ypad>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkLabel</class>
<name>label235</name>
<label>Temple</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0</xalign>
<yalign>0.5</yalign>
<xpad>5</xpad>
<ypad>5</ypad>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkEntry</class>
@ -1627,7 +1556,7 @@
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>5</xpad>
<ypad>5</ypad>
<ypad>3</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
@ -1652,7 +1581,7 @@
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>5</xpad>
<ypad>5</ypad>
<ypad>3</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
@ -1678,6 +1607,198 @@
<text></text>
</widget>
</widget>
<widget>
<class>GtkCombo</class>
<name>lds_place</name>
<value_in_list>False</value_in_list>
<ok_if_empty>True</ok_if_empty>
<case_sensitive>False</case_sensitive>
<use_arrows>True</use_arrows>
<use_arrows_always>False</use_arrows_always>
<items></items>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>2</top_attach>
<bottom_attach>3</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>True</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
<widget>
<class>GtkEntry</class>
<child_name>GtkCombo:entry</child_name>
<name>combo-entry3</name>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text></text>
</widget>
</widget>
<widget>
<class>GtkOptionMenu</class>
<name>lds_status</name>
<can_focus>True</can_focus>
<items>
</items>
<initial_choice>0</initial_choice>
<child>
<left_attach>2</left_attach>
<right_attach>3</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkButton</class>
<name>button114</name>
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
<handler>on_lds_src_clicked</handler>
<last_modification_time>Wed, 19 Dec 2001 00:08:45 GMT</last_modification_time>
</signal>
<label>Sources</label>
<relief>GTK_RELIEF_NORMAL</relief>
<child>
<left_attach>2</left_attach>
<right_attach>3</right_attach>
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkButton</class>
<name>button115</name>
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
<handler>on_lds_note_clicked</handler>
<last_modification_time>Wed, 19 Dec 2001 00:08:37 GMT</last_modification_time>
</signal>
<label>Note</label>
<relief>GTK_RELIEF_NORMAL</relief>
<child>
<left_attach>2</left_attach>
<right_attach>3</right_attach>
<top_attach>2</top_attach>
<bottom_attach>3</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkLabel</class>
<name>label235</name>
<label>Temple</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>1</xalign>
<yalign>0.5</yalign>
<xpad>5</xpad>
<ypad>3</ypad>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>1</top_attach>
<bottom_attach>2</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkLabel</class>
<name>label234</name>
<label>Date</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>1</xalign>
<yalign>0.5</yalign>
<xpad>5</xpad>
<ypad>3</ypad>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkLabel</class>
<name>label238</name>
<label>Place</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>1</xalign>
<yalign>0.5</yalign>
<xpad>5</xpad>
<ypad>3</ypad>
<child>
<left_attach>0</left_attach>
<right_attach>1</right_attach>
<top_attach>2</top_attach>
<bottom_attach>3</bottom_attach>
<xpad>5</xpad>
<ypad>3</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
</widget>
</widget>
</widget>

View File

@ -920,8 +920,45 @@ class GedcomParser:
ord.setDateObj(self.extract_date(matches[2]))
elif matches[1] == "FAMC":
ord.setFamily(self.db.findFamily(matches[2],self.fmap))
elif matches[1] in ["PLAC", "STAT", "SOUR", "NOTE" ]:
elif matches[1] == "PLAC":
if self.placemap.has_key(val):
place = self.placemap[val]
else:
place = Place()
place.set_title(matches[2])
self.db.addPlace(place)
self.placemap[val] = place
ord.setPlace(place)
self.ignore_sub_junk(level+1)
elif matches[1] == "SOUR":
source_ref = SourceRef()
if matches[2] and matches[2][0] != "@":
self.localref = self.localref + 1
ref = "gsr%d" % self.localref
s = self.db.findSource(ref,self.smap)
source_ref.setBase(s)
s.setTitle('Imported Source #%d' % self.localref)
s.setNote(matches[2] + self.parse_continue_data(level+1))
self.ignore_sub_junk(2)
else:
source_ref.setBase(self.db.findSource(matches[2],self.smap))
self.parse_source_reference(source_ref,level+1)
ord.addSourceRef(source_ref)
elif matches[1] == "NOTE":
if matches[2] and matches[2][0] != "@":
note = matches[2] + self.parse_continue_data(level+1)
ord.setNote(note)
self.ignore_sub_junk(2)
else:
if self.nmap.has_key(matches[2]):
ord.setNoteObj(self.nmap[matches[2]])
else:
noteobj = Note()
self.nmap[matches[2]] = noteobj
ord.setNoteObj(noteobj)
elif matches[1] == "STAT":
if const.lds_status.has_key(matches[2]):
ord.setStatus(const.lds_status[matches[2]])
else:
self.barf(level+1)

View File

@ -315,7 +315,7 @@ class RelCalc:
text = msg % (firstName,secondName)
elif firstRel == 0:
if secondRel == 0:
text = "%s and $s are the same person." % (firstName,secondName)
text = "%s and %s are the same person." % (firstName,secondName)
elif other_person.getGender() == RelLib.Person.male:
text = get_father(firstName,secondName,secondRel)
else:

View File

@ -584,7 +584,7 @@ class GedcomWriter:
mother_alive = person.probablyAlive()
if not self.restrict or ( not father_alive and not mother_alive ):
self.write_ord("SLGS",family.getLdsSeal(),1)
self.write_ord("SLGS",family.getLdsSeal(),1,const.lds_ssealing)
for event in family.getEventList():
if self.private and event.getPrivacy():
@ -686,9 +686,9 @@ class GedcomWriter:
ad = 0
self.write_ord("BAPL",person.getLdsBaptism(),1)
self.write_ord("ENDL",person.getLdsBaptism(),1)
self.write_ord("SLGC",person.getLdsSeal(),1)
self.write_ord("BAPL",person.getLdsBaptism(),1,const.lds_baptism)
self.write_ord("ENDL",person.getLdsEndowment(),1,const.lds_baptism)
self.write_ord("SLGC",person.getLdsSeal(),1,const.lds_csealing)
for event in person.getEventList():
if self.private and event.getPrivacy():
@ -893,15 +893,23 @@ class GedcomWriter:
for srcref in event.getSourceRefList():
self.write_source_ref(2,srcref)
def write_ord(self,name,ord,index):
def write_ord(self,name,ord,index,statlist):
if ord == None:
return
self.g.write('%d %s\n' % (index,name))
self.print_date("%d DATE" % (index + 1), ord.getDateObj())
if ord.getTemple() != "":
self.g.write('%d TEMP %s\n' % (index+1,ord.getTemple()))
if ord.getFamily():
self.g.write('%d FAMC @%s@\n' % (index+1,self.fid(ord.getFamily().getId())))
if ord.getTemple() != "":
self.g.write('%d TEMP %s\n' % (index+1,ord.getTemple()))
if ord.getPlaceName() != "":
self.g.write("2 PLAC %s\n" % self.cnvtxt(ord.getPlaceName()))
if ord.getStatus() != 0:
self.g.write("2 STAT %S\n" % self.cnvtxt(statlist[ord.getStatus()]))
if ord.getNote() != "":
self.write_long_text("NOTE",index+1,ord.getNote())
for srcref in ord.getSourceRefList():
self.write_source_ref(index+1,srcref)
def print_date(self,prefix,date):
start = date.get_start_date()