From 127777fe3298bcdfe45d74b36f77b8238ebb6937 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Tue, 27 May 2014 16:47:39 +0200 Subject: [PATCH] switch to librevenge-based import libs --- configure.ac | 19 ++--------------- src/extension/internal/wpg-input.cpp | 41 ++++++++++++------------------------ 2 files changed, 15 insertions(+), 45 deletions(-) diff --git a/configure.ac b/configure.ac index fcff879..4bce58c 100644 --- a/configure.ac +++ b/configure.ac @@ -676,23 +676,8 @@ dnl ****************************** with_libwpg=no -PKG_CHECK_MODULES(LIBWPG01, libwpg-0.1 libwpg-stream-0.1, with_libwpg01=yes, with_libwpg01=no) -if test "x$with_libwpg01" = "xyes"; then - AC_DEFINE(WITH_LIBWPG01,1,[Build in libwpg 0.1.x]) - with_libwpg=yes - AC_SUBST(LIBWPG_LIBS, $LIBWPG01_LIBS) - AC_SUBST(LIBWPG_CFLAGS, $LIBWPG01_CFLAGS) -fi -AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg01" = "xyes") - -PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no) -if test "x$with_libwpg02" = "xyes"; then - AC_DEFINE(WITH_LIBWPG02,1,[Build in libwpg 0.2.x]) - with_libwpg=yes - AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS) - AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS) -fi -AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes") +PKG_CHECK_MODULES(LIBWPG, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0, with_libwpg=yes, with_libwpg=no) +AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg" = "xyes") if test "x$with_libwpg" = "xyes"; then AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg]) diff --git a/src/extension/internal/wpg-input.cpp b/src/extension/internal/wpg-input.cpp index 5c5cb65..71c7b44 100644 --- a/src/extension/internal/wpg-input.cpp +++ b/src/extension/internal/wpg-input.cpp @@ -48,17 +48,8 @@ #include "extension/input.h" #include "document.h" -// Take a guess and fallback to 0.1.x if no configure has run -#if !defined(WITH_LIBWPG01) && !defined(WITH_LIBWPG02) -#define WITH_LIBWPG01 1 -#endif - #include "libwpg/libwpg.h" -#if WITH_LIBWPG01 -#include "libwpg/WPGStreamImplementation.h" -#elif WITH_LIBWPG02 -#include "libwpd-stream/libwpd-stream.h" -#endif +#include "librevenge-stream/librevenge-stream.h" using namespace libwpg; @@ -69,17 +60,9 @@ namespace Internal { SPDocument * WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) { -#if WITH_LIBWPG01 - WPXInputStream* input = new libwpg::WPGFileStream(uri); -#elif WITH_LIBWPG02 - WPXInputStream* input = new WPXFileStream(uri); -#endif - if (input->isOLEStream()) { -#if WITH_LIBWPG01 - WPXInputStream* olestream = input->getDocumentOLEStream(); -#elif WITH_LIBWPG02 - WPXInputStream* olestream = input->getDocumentOLEStream("PerfectOffice_MAIN"); -#endif + librevenge::RVNGInputStream* input = new librevenge::RVNGFileStream(uri); + if (input->isStructured()) { + librevenge::RVNGInputStream* olestream = input->getSubStreamByName("PerfectOffice_MAIN"); if (olestream) { delete input; input = olestream; @@ -94,15 +77,17 @@ WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) { return NULL; } -#if WITH_LIBWPG01 - libwpg::WPGString output; -#elif WITH_LIBWPG02 - WPXString output; -#endif - if (!libwpg::WPGraphics::generateSVG(input, output)) { + librevenge::RVNGStringVector vec; + librevenge::RVNGSVGDrawingGenerator generator(vec, ""); + + if (!libwpg::WPGraphics::parse(input, &generator) || vec.empty() || vec[0].empty()) + { delete input; return NULL; - } + } + + librevenge::RVNGString output("\n\n"); + output.append(vec[0]); //printf("I've got a doc: \n%s", painter.document.c_str()); -- 1.9.3