Hello community, here is the log from the commit of package libodfgen for openSUSE:Factory checked in at 2013-12-16 07:07:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libodfgen (Old) and /work/SRC/openSUSE:Factory/.libodfgen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libodfgen" Changes: -------- --- /work/SRC/openSUSE:Factory/libodfgen/libodfgen.changes 2013-11-15 13:25:31.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libodfgen.new/libodfgen.changes 2013-12-16 07:07:54.000000000 +0100 @@ -1,0 +2,8 @@ +Sat Dec 14 16:12:42 UTC 2013 - [email protected] + +- Version bump to 0.0.4: + - fix handling of presentation tables + - fix handling of presentation notes + - fix handling of presentation comments + +------------------------------------------------------------------- Old: ---- libodfgen-0.0.3.tar.xz New: ---- libodfgen-0.0.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libodfgen.spec ++++++ --- /var/tmp/diff_new_pack.L1qw0A/_old 2013-12-16 07:07:55.000000000 +0100 +++ /var/tmp/diff_new_pack.L1qw0A/_new 2013-12-16 07:07:55.000000000 +0100 @@ -27,7 +27,7 @@ BuildRequires: libwpg-devel BuildRequires: pkgconfig BuildRequires: xz -Version: 0.0.3 +Version: 0.0.4 Release: 0 Summary: Library to generate ODF documents from libwpd's and libwpg's api calls License: LGPL-2.1+ and MPL-2.0+ ++++++ libodfgen-0.0.3.tar.xz -> libodfgen-0.0.4.tar.xz ++++++ ++++ 2062 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/ChangeLog new/libodfgen-0.0.4/ChangeLog --- old/libodfgen-0.0.3/ChangeLog 2013-10-30 12:14:48.000000000 +0100 +++ new/libodfgen-0.0.4/ChangeLog 2013-12-03 20:56:45.000000000 +0100 @@ -1,3 +1,74 @@ +2013-12-03 David Tardon <[email protected]> [9490b504f488d98f40138ea3bcad01f73fea744d] + + add to NEWS + + (cherry picked from commit 7fdad5e121c6e500ca87cce5d1123771cfa3f106) + +2013-12-03 David Tardon <[email protected]> [37541771318bd764874cf03a14aa6fbd9d075ab4] + + odp: move annotation namespace decl. to root element + + +2013-12-03 David Tardon <[email protected]> [da7a41d43ed5193c83e79ba9d63857a8e4ed15f8] + + odp: fix annotation namespace + + +2013-12-03 David Tardon <[email protected]> [d1084496b2f4101a74672cf30558505f14ae1619] + + odp: generate notes page just like libreoffice does + + +2013-12-03 David Tardon <[email protected]> [d554ad155675ed3d2d548fb15a59c580de1330fb] + + odp: declare presentation namespace + + +2013-12-03 David Tardon <[email protected]> [8fb5c61f5ecd9cf7968bd2eb76c103facb853fed] + + odp: close notes zone + + +2013-12-03 David Tardon <[email protected]> [8f36633505a2a644a9d70bba3f35c0216a1bd42c] + + libwpd and libetonyek are not runtime deps, hide them + + +2013-12-02 David Tardon <[email protected]> [00a598659754c6a88d07cb188796f020b6c5c2f7] + + prepare for a new release + + +2013-12-02 David Tardon <[email protected]> [cddeeb913dfbd936c251a55feb4b2a767e702c21] + + odp: do not emulate layers by groups + + +2013-12-02 David Tardon <[email protected]> [50c2dd950dbd446ba7dfee3af2031594da6230c2] + + odp: write out table styles in a way impress understands + + +2013-12-02 David Tardon <[email protected]> [96d76f18e3118c9baf66e2f3a8e87e07d671d346] + + odp: actually write out table styles + + +2013-12-02 David Tardon <[email protected]> [4553afad7dc2ca2cdf017dedef5cc657d64a9f15] + + odp: add missing namespace decl. + + +2013-12-02 David Tardon <[email protected]> [b059396eb16cdf530cc9f7f883fac2d811cd7b03] + + odg/odp tables must be inside a draw:frame + + +2013-10-30 David Tardon <[email protected]> [9008d84be1eb0b3def0df39b069a309d54aa73ab] + + use correct header for std::swap + + 2013-10-24 David Tardon <[email protected]> [453714dd3ebe8887fc3ad73467067f2a356b50fb] update NEWS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/NEWS new/libodfgen-0.0.4/NEWS --- old/libodfgen-0.0.3/NEWS 2013-10-24 14:06:44.000000000 +0200 +++ new/libodfgen-0.0.4/NEWS 2013-12-03 20:28:36.000000000 +0100 @@ -1,3 +1,9 @@ +libodfgen 0.0.4 + +- fix handling of presentation tables +- fix handling of presentation notes +- fix handling of presentation comments + libodfgen 0.0.3 - handle more table properties diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/configure.ac new/libodfgen-0.0.4/configure.ac --- old/libodfgen-0.0.3/configure.ac 2013-10-23 12:43:42.000000000 +0200 +++ new/libodfgen-0.0.4/configure.ac 2013-12-02 19:00:37.000000000 +0100 @@ -7,7 +7,7 @@ # ==================== m4_define([libodfgen_version_major],[0]) m4_define([libodfgen_version_minor],[0]) -m4_define([libodfgen_version_micro],[3]) +m4_define([libodfgen_version_micro],[4]) m4_define([libodfgen_version],[libodfgen_version_major.libodfgen_version_minor.libodfgen_version_micro]) # ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/libodfgen.pc.in new/libodfgen-0.0.4/libodfgen.pc.in --- old/libodfgen-0.0.3/libodfgen.pc.in 2013-10-22 21:34:45.000000000 +0200 +++ new/libodfgen-0.0.4/libodfgen.pc.in 2013-12-03 09:05:59.000000000 +0100 @@ -6,6 +6,7 @@ Name: libodfgen-@LIBODFGEN_MAJOR_VERSION@.@LIBODFGEN_MINOR_VERSION@ Description: Library to generate ODF documents from libwpd's and libwpg's api calls Version: @VERSION@ -Requires: libwpd-0.9 libwpg-0.2 libetonyek-0.0 +Requires: libwpd-0.9 +Requires.private: libwpg-0.2 libetonyek-0.0 Libs: -L${libdir} -lodfgen-@LIBODFGEN_MAJOR_VERSION@.@LIBODFGEN_MINOR_VERSION@ Cflags: -I${includedir}/libodfgen-@LIBODFGEN_MAJOR_VERSION@.@LIBODFGEN_MINOR_VERSION@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/m4/libtool.m4 new/libodfgen-0.0.4/m4/libtool.m4 --- old/libodfgen-0.0.3/m4/libtool.m4 2013-10-23 12:43:52.000000000 +0200 +++ new/libodfgen-0.0.4/m4/libtool.m4 2013-12-01 21:55:35.000000000 +0100 @@ -1312,7 +1312,7 @@ rm -rf conftest* ;; -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext @@ -1326,7 +1326,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; - ppc64-*linux*|powerpc64-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1345,7 +1348,10 @@ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - ppc*-*linux*|powerpc*-*linux*) + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/missing new/libodfgen-0.0.4/missing --- old/libodfgen-0.0.3/missing 2013-05-05 09:36:12.000000000 +0200 +++ new/libodfgen-0.0.4/missing 2013-12-01 21:54:14.000000000 +0100 @@ -1,10 +1,10 @@ #! /bin/sh -# Common stub for a few missing GNU programs while installing. +# Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-01-06.18; # UTC +scriptversion=2012-06-26.16; # UTC -# Copyright (C) 1996-2012 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <[email protected]>, 1996. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <[email protected]>, 1996. # 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 @@ -29,61 +29,33 @@ exit 1 fi -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, 'missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi +case $1 in -msg="missing on your system" + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal touch file 'aclocal.m4' - autoconf touch file 'configure' - autoheader touch file 'config.h.in' - autom4te touch the output file, or create a stub one - automake touch all 'Makefile.in' files - bison create 'y.tab.[ch]', if possible, from existing .[ch] - flex create 'lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create 'lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create 'y.tab.[ch]', if possible, from existing .[ch] + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. @@ -98,228 +70,141 @@ ;; -*) - echo 1>&2 "$0: Unknown '$1' option" + echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; +# Run the given program, remember its exit status. +"$@"; st=$? - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running '$TOOL --version' or '$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'acinclude.m4' or '${configure_ac}'. You might want - to install the Automake and Perl packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified '${configure_ac}'. You might want to install the - Autoconf and GNU m4 packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'acconfig.h' or '${configure_ac}'. You might want - to install the Autoconf and GNU m4 packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; +# If it succeeded, we are done. +test $st -eq 0 && exit 0 - automake*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. - You might want to install the Automake and Perl packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: '$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get '$1' as part of Autoconf from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: '$1' $msg. You should only need it if - you modified a '.y' file. You may need the Bison package - in order for those modifications to take effect. You can get - Bison from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a '.l' file. You may need the Flex package - in order for those modifications to take effect. You can get - Flex from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG=\${$#} - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - Help2man package in order for those modifications to take - effect. You can get Help2man from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: '$1' is $msg. You should only need it if - you modified a '.texi' or '.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy 'make' (AIX, - DU, IRIX). You might want to install the Texinfo package or - the GNU make package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: '$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the 'README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing '$1' program." - exit 1 - ;; -esac +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi -exit 0 +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'automa4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/src/GraphicFunctions.cxx new/libodfgen-0.0.4/src/GraphicFunctions.cxx --- old/libodfgen-0.0.3/src/GraphicFunctions.cxx 2013-10-22 13:37:18.000000000 +0200 +++ new/libodfgen-0.0.4/src/GraphicFunctions.cxx 2013-12-02 21:20:34.000000000 +0100 @@ -24,8 +24,8 @@ * Corel Corporation or Corel Corporation Limited." */ +#include <algorithm> #include <math.h> -#include <utility> #include "GraphicFunctions.hxx" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/src/OdpGenerator.cxx new/libodfgen-0.0.4/src/OdpGenerator.cxx --- old/libodfgen-0.0.3/src/OdpGenerator.cxx 2013-10-22 18:32:19.000000000 +0200 +++ new/libodfgen-0.0.4/src/OdpGenerator.cxx 2013-12-03 20:17:04.000000000 +0100 @@ -124,6 +124,63 @@ } +namespace +{ + +class GraphicTableCellStyle : public TableCellStyle +{ +public: + GraphicTableCellStyle(const WPXPropertyList &xPropList, const char *psName); + virtual ~GraphicTableCellStyle(); + +private: + virtual void writeCompat(OdfDocumentHandler *pHandler, const WPXPropertyList &propList) const; +}; + +GraphicTableCellStyle::GraphicTableCellStyle(const WPXPropertyList &xPropList, const char *const psName) + : TableCellStyle(xPropList, psName) +{ +} + +GraphicTableCellStyle::~GraphicTableCellStyle() +{ +} + +void GraphicTableCellStyle::writeCompat(OdfDocumentHandler *const pHandler, const WPXPropertyList &propList) const +{ + WPXPropertyList stylePropList; + WPXPropertyList::Iter i(propList); + + /* first set padding, so that mPropList can redefine, if + mPropList["fo:padding"] is defined */ + stylePropList.insert("fo:padding", "0.0382in"); + stylePropList.insert("draw:fill", "none"); + stylePropList.insert("draw:textarea-horizontal-align", "center"); + + for (i.rewind(); i.next();) + { + if (strcmp(i.key(), "fo:background-color") == 0) + { + stylePropList.insert("draw:fill", "solid"); + stylePropList.insert("draw:fill-color", i()->clone()); + } + else if (strcmp(i.key(), "style:vertical-align")==0) + stylePropList.insert("draw:textarea-vertical-align", i()->clone()); + } + + pHandler->startElement("style:graphic-properties", stylePropList); + pHandler->endElement("style:graphic-properties"); + + // HACK to get visible borders + WPXPropertyList paraPropList; + paraPropList.insert("fo:border", "0.03pt solid #000000"); + + pHandler->startElement("style:paragraph-properties", paraPropList); + pHandler->endElement("style:paragraph-properties"); +} + +} + class OdpGeneratorPrivate { public: @@ -132,6 +189,7 @@ /** update a graphic style element */ void _updateGraphicPropertiesElement(TagOpenElement &element, ::WPXPropertyList const &style, ::WPXPropertyListVector const &gradient); void _writeGraphicsStyle(); + void writeNotesStyles(); void _drawPolySomething(const ::WPXPropertyListVector &vertices, bool isClosed); void _drawPath(const WPXPropertyListVector &path); @@ -283,6 +341,69 @@ mFontManager.clean(); } +void OdpGeneratorPrivate::writeNotesStyles() +{ + { + WPXPropertyList styleProps; + styleProps.insert("style:name", "PresentationNotesPage"); + styleProps.insert("style:family", "drawing-page"); + + mpHandler->startElement("style:style", styleProps); + + WPXPropertyList pageProps; + pageProps.insert("presentation:display-header", "true"); + pageProps.insert("presentation:display-footer", "true"); + pageProps.insert("presentation:display-date-time", "true"); + pageProps.insert("presentation:display-page-number", "false"); + + mpHandler->startElement("style:drawing-page-properties", pageProps); + mpHandler->endElement("style:drawing-page-properties"); + + mpHandler->endElement("style:style"); + } + + { + WPXPropertyList styleProps; + styleProps.insert("style:name", "PresentationNotesFrame"); + styleProps.insert("style:family", "presentation"); + + mpHandler->startElement("style:style", styleProps); + + WPXPropertyList graphicProps; + graphicProps.insert("draw:fill", "none"); + graphicProps.insert("fo:min-height", "5in"); + + mpHandler->startElement("style:graphic-properties", graphicProps); + mpHandler->endElement("style:graphic-properties"); + + WPXPropertyList paraProps; + paraProps.insert("fo:margin-left", "0.24in"); + paraProps.insert("fo:margin-right", "0in"); + paraProps.insert("fo:text-indent", "0in"); + + mpHandler->startElement("style:para-properties", paraProps); + mpHandler->endElement("style:para-properties"); + + mpHandler->endElement("style:style"); + } + + { + WPXPropertyList styleProps; + styleProps.insert("style:name", "PresentationNotesTextBox"); + styleProps.insert("style:family", "graphic"); + + mpHandler->startElement("style:style", styleProps); + + WPXPropertyList graphicProps; + graphicProps.insert("draw:fill", "none"); + + mpHandler->startElement("style:graphic-properties", graphicProps); + mpHandler->endElement("style:graphic-properties"); + + mpHandler->endElement("style:style"); + } +} + void OdpGeneratorPrivate::openListLevel(TagOpenElement *pListLevelOpenElement) { if (!mListStates.top().mbListElementOpened.empty() && @@ -346,14 +467,18 @@ mpImpl->mpHandler->startDocument(); TagOpenElement tmpOfficeDocumentContent(mpImpl->getDocumentType().c_str()); tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0"); + tmpOfficeDocumentContent.addAttribute("xmlns:presentation", "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0"); + tmpOfficeDocumentContent.addAttribute("xmlns:table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/"); tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"); tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0"); + // WARNING: this is not ODF! tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office"); + tmpOfficeDocumentContent.addAttribute("xmlns:officeooo", "http://openoffice.org/2009/office"); tmpOfficeDocumentContent.addAttribute("office:version", "1.0"); if (mpImpl->mxStreamType == ODF_FLAT_XML) tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/vnd.oasis.opendocument.presentation"); @@ -454,6 +579,14 @@ } mpImpl->mParagraphManager.write(mpImpl->mpHandler); mpImpl->mSpanManager.write(mpImpl->mpHandler); + + // writing out the table styles + for (std::vector<TableStyle *>::const_iterator iterTableStyles = mpImpl->mTableStyles.begin(); iterTableStyles != mpImpl->mTableStyles.end(); ++iterTableStyles) + { + (*iterTableStyles)->write(mpImpl->mpHandler); + } + + mpImpl->writeNotesStyles(); } #ifdef MULTIPAGE_WORKAROUND if ((mpImpl->mxStreamType == ODF_FLAT_XML) || (mpImpl->mxStreamType == ODF_STYLES_XML)) @@ -664,12 +797,10 @@ void OdpGenerator::startLayer(const ::WPXPropertyList & /* propList */) { - mpImpl->mBodyElements.push_back(new TagOpenElement("draw:g")); } void OdpGenerator::endLayer() { - mpImpl->mBodyElements.push_back(new TagCloseElement("draw:g")); } void OdpGenerator::drawRectangle(const ::WPXPropertyList &propList) @@ -1835,6 +1966,21 @@ mpImpl->mpCurrentTableStyle = pTableStyle; + // table must be inside a frame + TagOpenElement *pFrameOpenElement = new TagOpenElement("draw:frame"); + + pFrameOpenElement->addAttribute("draw:style-name", "standard"); + if (propList["svg:x"]) + pFrameOpenElement->addAttribute("svg:x", propList["svg:x"]->getStr()); + if (propList["svg:y"]) + pFrameOpenElement->addAttribute("svg:y", propList["svg:y"]->getStr()); + if (propList["svg:width"]) + pFrameOpenElement->addAttribute("svg:width", propList["svg:width"]->getStr()); + if (propList["svg:height"]) + pFrameOpenElement->addAttribute("svg:height", propList["svg:height"]->getStr()); + + mpImpl->mBodyElements.push_back(pFrameOpenElement); + TagOpenElement *pTableOpenElement = new TagOpenElement("table:table"); pTableOpenElement->addAttribute("table:name", sTableName.cstr()); @@ -1910,7 +2056,7 @@ WPXString sTableCellStyleName; sTableCellStyleName.sprintf( "%s.Cell%i", mpImpl->mpCurrentTableStyle->getName().cstr(), mpImpl->mpCurrentTableStyle->getNumTableCellStyles()); - TableCellStyle *pTableCellStyle = new TableCellStyle(propList, sTableCellStyleName.cstr()); + TableCellStyle *pTableCellStyle = new GraphicTableCellStyle(propList, sTableCellStyleName.cstr()); mpImpl->mpCurrentTableStyle->addTableCellStyle(pTableCellStyle); TagOpenElement *pTableCellOpenElement = new TagOpenElement("table:table-cell"); @@ -1955,6 +2101,7 @@ if (!mpImpl->mState.mInComment) { mpImpl->mBodyElements.push_back(new TagCloseElement("table:table")); + mpImpl->mBodyElements.push_back(new TagCloseElement("draw:frame")); } } @@ -1969,8 +2116,6 @@ mpImpl->mState.mInComment = true; TagOpenElement *const commentElement = new TagOpenElement("officeooo:annotation"); - // WARNING: this is not ODF! - commentElement->addAttribute("xmlns:officeooo", "http://openoffice.org/2009/office"); // position & size if (propList["svg:x"]) @@ -1994,7 +2139,7 @@ } mpImpl->mState.mInComment = false; - mpImpl->mBodyElements.push_back(new TagCloseElement("office:annotation")); + mpImpl->mBodyElements.push_back(new TagCloseElement("officeooo:annotation")); } void OdpGenerator::startNotes(const ::WPXPropertyList &/*propList*/) @@ -2005,11 +2150,35 @@ return; } - mpImpl->mBodyElements.push_back(new TagOpenElement("presentation:notes")); + TagOpenElement *const notesElement = new TagOpenElement("presentation:notes"); + notesElement->addAttribute("draw:style-name", "PresentationNotesPage"); + + mpImpl->mBodyElements.push_back(notesElement); + + TagOpenElement *const thumbnailElement = new TagOpenElement("draw:page-thumbnail"); + thumbnailElement->addAttribute("draw:layer", "layout"); + thumbnailElement->addAttribute("presentation:class", "page"); + // TODO: should the dimensions be hardcoded? If not, where + // should they come from? + thumbnailElement->addAttribute("svg:width", "5.5in"); + thumbnailElement->addAttribute("svg:height", "4.12in"); + thumbnailElement->addAttribute("svg:x", "1.5in"); + thumbnailElement->addAttribute("svg:y", "0.84in"); + WPXString pageNumber; + pageNumber.sprintf("%i", mpImpl->miPageIndex); + thumbnailElement->addAttribute("draw:page-number", pageNumber); + + mpImpl->mBodyElements.push_back(thumbnailElement); + mpImpl->mBodyElements.push_back(new TagCloseElement("draw:page-thumbnail")); TagOpenElement *const frameElement = new TagOpenElement("draw:frame"); + frameElement->addAttribute("presentation:style-name", "PresentationNotesFrame"); frameElement->addAttribute("draw:layer", "layout"); frameElement->addAttribute("presentation:class", "notes"); + frameElement->addAttribute("svg:width", "6.8in"); + frameElement->addAttribute("svg:height", "4.95in"); + frameElement->addAttribute("svg:x", "0.85in"); + frameElement->addAttribute("svg:y", "5.22in"); mpImpl->mBodyElements.push_back(frameElement); @@ -2026,6 +2195,8 @@ return; } + mpImpl->mState.mInNotes = false; + mpImpl->mBodyElements.push_back(new TagCloseElement("draw:text-box")); mpImpl->mBodyElements.push_back(new TagCloseElement("draw:frame")); mpImpl->mBodyElements.push_back(new TagCloseElement("presentation:notes")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/src/TableStyle.cxx new/libodfgen-0.0.4/src/TableStyle.cxx --- old/libodfgen-0.0.3/src/TableStyle.cxx 2013-09-03 10:23:41.000000000 +0200 +++ new/libodfgen-0.0.4/src/TableStyle.cxx 2013-12-02 17:52:11.000000000 +0100 @@ -74,9 +74,15 @@ pHandler->startElement("style:table-cell-properties", stylePropList); pHandler->endElement("style:table-cell-properties"); + writeCompat(pHandler, mPropList); + pHandler->endElement("style:style"); } +void TableCellStyle::writeCompat(OdfDocumentHandler *, const WPXPropertyList &) const +{ +} + TableRowStyle::TableRowStyle(const WPXPropertyList &propList, const char *psName) : Style(psName), mPropList(propList) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libodfgen-0.0.3/src/TableStyle.hxx new/libodfgen-0.0.4/src/TableStyle.hxx --- old/libodfgen-0.0.3/src/TableStyle.hxx 2013-05-05 09:54:10.000000000 +0200 +++ new/libodfgen-0.0.4/src/TableStyle.hxx 2013-12-02 17:51:28.000000000 +0100 @@ -40,6 +40,8 @@ TableCellStyle(const WPXPropertyList &xPropList, const char *psName); virtual void write(OdfDocumentHandler *pHandler) const; private: + virtual void writeCompat(OdfDocumentHandler *pHandler, const WPXPropertyList &propList) const; +private: WPXPropertyList mPropList; }; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
