diff --git a/gramps/configure b/gramps/configure index f0f1b8e28..22c55bb26 100755 --- a/gramps/configure +++ b/gramps/configure @@ -560,10 +560,15 @@ else echo "$ac_t""no" 1>&6 fi -# Extract the first word of "python1.5", so it can be a program name with args. + +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 -# Extract the first word of "python2.0", so it can be a program name with args. +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 -# Extract the first word of "python2.1", so it can be a program name with args. +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 -# Extract the first word of "python2.2", so it can be a program name with args. +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 < 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 < 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 < 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 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 <&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 <&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 <&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 <&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 <&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 <&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 <&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" diff --git a/gramps/configure.in b/gramps/configure.in index 14fd324ad..681aaa418 100644 --- a/gramps/configure.in +++ b/gramps/configure.in @@ -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"` diff --git a/gramps/gramps.sh.in b/gramps/gramps.sh.in index 02393b445..9cf50d138 100644 --- a/gramps/gramps.sh.in +++ b/gramps/gramps.sh.in @@ -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 $* diff --git a/gramps/src/EditPerson.py b/gramps/src/EditPerson.py index ad26a87af..aa356b67b 100644 --- a/gramps/src/EditPerson.py +++ b/gramps/src/EditPerson.py @@ -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,38 +754,73 @@ 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) - + if const.lds_temple_codes.has_key(temple): temple = const.lds_temple_codes[temple] 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""" diff --git a/gramps/src/EditPlace.py b/gramps/src/EditPlace.py index 57304c07b..698c7e36a 100644 --- a/gramps/src/EditPlace.py +++ b/gramps/src/EditPlace.py @@ -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, diff --git a/gramps/src/EditSource.py b/gramps/src/EditSource.py index 329ce91ff..761fc4a0b 100644 --- a/gramps/src/EditSource.py +++ b/gramps/src/EditSource.py @@ -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, diff --git a/gramps/src/ImageSelect.py b/gramps/src/ImageSelect.py index cad4851d5..6dd00e102 100644 --- a/gramps/src/ImageSelect.py +++ b/gramps/src/ImageSelect.py @@ -72,7 +72,12 @@ 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 + #------------------------------------------------------------------------- # # create_add_dialog - Create the gnome dialog for selecting a new @@ -309,8 +314,7 @@ class Gallery(ImageSelect): try: id = photo.getId() name = RelImage.import_media_object(tfile,self.path,id) - if name != None and name != "": - photo.setPath(name) + photo.setPath(name) except: photo.setPath(tfile) w.drag_finish(context, 1, 0, time) @@ -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 diff --git a/gramps/src/Marriage.py b/gramps/src/Marriage.py index 6cddc2366..6514389ed 100644 --- a/gramps/src/Marriage.py +++ b/gramps/src/Marriage.py @@ -71,8 +71,8 @@ class Marriage: self.gallery = ImageSelect.Gallery(family, self.path, plwidget, db) self.top.signal_autoconnect({ "destroy_passed_object" : self.on_cancel_edit, - "on_up_clicked" : self.on_up_clicked, - "on_down_clicked" : self.on_down_clicked, + "on_up_clicked" : self.on_up_clicked, + "on_down_clicked" : self.on_down_clicked, "on_add_attr_clicked" : self.on_add_attr_clicked, "on_addphoto_clicked" : self.gallery.on_add_photo_clicked, "on_attr_list_select_row" : self.on_attr_list_select_row, @@ -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,7 +116,9 @@ 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 diff --git a/gramps/src/MediaView.py b/gramps/src/MediaView.py index 1a0c3738f..2665c0cb1 100644 --- a/gramps/src/MediaView.py +++ b/gramps/src/MediaView.py @@ -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,8 +332,7 @@ 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) + photo.setPath(name) except: photo.setPath(tfile) w.drag_finish(context, 1, 0, time) diff --git a/gramps/src/RelImage.py b/gramps/src/RelImage.py index cb0efbb4a..44fa77dd9 100644 --- a/gramps/src/RelImage.py +++ b/gramps/src/RelImage.py @@ -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,'.') diff --git a/gramps/src/RelLib.py b/gramps/src/RelLib.py index f10ed9f06..38c90aa5b 100644 --- a/gramps/src/RelLib.py +++ b/gramps/src/RelLib.py @@ -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""" - self.Children.remove(person) + 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): diff --git a/gramps/src/WriteXML.py b/gramps/src/WriteXML.py index 6fe697ea5..385c6cbce 100644 --- a/gramps/src/WriteXML.py +++ b/gramps/src/WriteXML.py @@ -469,8 +469,26 @@ def exportData(database, filename, callback): else: g = open(filename,"w") - write_xml_data(database, g, callback, 0) - g.close() + 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): diff --git a/gramps/src/const.py b/gramps/src/const.py index d877b4f66..a163b2003 100644 --- a/gramps/src/const.py +++ b/gramps/src/const.py @@ -698,20 +698,23 @@ lds_temple_to_abrev = { "WA" : "Washington, D.C.", } -lds_baptism_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 = [ "", "Child", "Cleared", @@ -724,7 +727,7 @@ lds_baptism_index = [ "Uncleared", ] -lds_csealing_index = [ +lds_csealing = [ "", "BIC", "Cleared", @@ -736,4 +739,18 @@ lds_csealing_index = [ "Submitted", "Uncleared", ] + +lds_ssealing = [ + "", + "Canceled", + "Cleared", + "Completed", + "DNS", + "Pre-1970", + "Qualified", + "DNS/CAN", + "Submitted", + "Uncleared", + ] + diff --git a/gramps/src/marriage.glade b/gramps/src/marriage.glade index 174695e81..69e69ed32 100644 --- a/gramps/src/marriage.glade +++ b/gramps/src/marriage.glade @@ -1521,161 +1521,282 @@ 0 - GtkLabel - label233 + GtkFrame + frame1 + 5 - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - - - - - GtkHSeparator - hseparator6 - - 5 - False - True - - - - - GtkTable - table11 - 2 - 2 - False - 0 - 0 + 0 + GTK_SHADOW_ETCHED_IN 0 - True + False True - GtkLabel - label234 - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 5 - 5 - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label235 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 5 - 5 - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkEntry - lds_date - True - True - True - 0 - - - 1 - 2 - 0 - 1 - 5 - 5 - True - False - False - False - True - False - - - - - GtkCombo - lds_temple - True - True - False - True - False - - - 1 - 2 - 1 - 2 - 5 - 5 - True - False - False - False - True - False - + GtkTable + table12 + 3 + 3 + False + 0 + 0 GtkEntry - GtkCombo:entry - combo-entry2 + lds_date True - - insert_text - on_combo_insert_text - lds_temple - Sat, 01 Dec 2001 04:27:40 GMT - True True 0 + + 1 + 2 + 0 + 1 + 5 + 3 + True + False + False + False + True + False + + + + + GtkCombo + lds_temple + True + True + False + True + False + + + 1 + 2 + 1 + 2 + 5 + 3 + True + False + False + False + True + False + + + + GtkEntry + GtkCombo:entry + combo-entry2 + True + + insert_text + on_combo_insert_text + lds_temple + Sat, 01 Dec 2001 04:27:40 GMT + + True + True + 0 + + + + + + GtkCombo + lds_place + False + True + False + True + False + + + 1 + 2 + 2 + 3 + 5 + 3 + True + False + False + False + True + False + + + + GtkEntry + GtkCombo:entry + combo-entry3 + True + True + True + 0 + + + + + + GtkOptionMenu + lds_status + True + + + 0 + + 2 + 3 + 0 + 1 + 5 + 3 + False + False + False + False + True + False + + + + + GtkButton + button114 + True + + clicked + on_lds_src_clicked + Wed, 19 Dec 2001 00:08:45 GMT + + + GTK_RELIEF_NORMAL + + 2 + 3 + 1 + 2 + 5 + 3 + False + False + False + False + True + False + + + + + GtkButton + button115 + True + + clicked + on_lds_note_clicked + Wed, 19 Dec 2001 00:08:37 GMT + + + GTK_RELIEF_NORMAL + + 2 + 3 + 2 + 3 + 5 + 3 + False + False + False + False + True + False + + + + + GtkLabel + label235 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 5 + 3 + + 0 + 1 + 1 + 2 + 5 + 3 + False + False + False + False + True + False + + + + + GtkLabel + label234 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 5 + 3 + + 0 + 1 + 0 + 1 + 5 + 3 + False + False + False + False + True + False + + + + + GtkLabel + label238 + + GTK_JUSTIFY_CENTER + False + 1 + 0.5 + 5 + 3 + + 0 + 1 + 2 + 3 + 5 + 3 + False + False + False + False + True + False + diff --git a/gramps/src/plugins/ReadGedcom.py b/gramps/src/plugins/ReadGedcom.py index 6660cd688..cac61fda4 100644 --- a/gramps/src/plugins/ReadGedcom.py +++ b/gramps/src/plugins/ReadGedcom.py @@ -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) diff --git a/gramps/src/plugins/RelCalc.py b/gramps/src/plugins/RelCalc.py index 838f19517..4a7be72e0 100644 --- a/gramps/src/plugins/RelCalc.py +++ b/gramps/src/plugins/RelCalc.py @@ -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: diff --git a/gramps/src/plugins/WriteGedcom.py b/gramps/src/plugins/WriteGedcom.py index 2919492c7..eb9974efa 100644 --- a/gramps/src/plugins/WriteGedcom.py +++ b/gramps/src/plugins/WriteGedcom.py @@ -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()