summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.12.4/qt
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.12.4/qt')
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/CMakeLists.txt34
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.am48
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.in742
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-document.cc332
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-fontinfo.cc83
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link-qt3.h188
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link.cc267
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition-private.h28
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.cc95
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.h146
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page.cc361
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.cc147
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.h92
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/poppler-qt.h310
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/qt/test-poppler-qt.cpp122
15 files changed, 2995 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/CMakeLists.txt b/Build/source/libs/poppler/poppler-0.12.4/qt/CMakeLists.txt
new file mode 100644
index 00000000000..7f4d233f391
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/CMakeLists.txt
@@ -0,0 +1,34 @@
+add_definitions(${QT3_DEFINITIONS})
+
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${QT3_INCLUDE_DIR}
+)
+
+set(poppler_qt_SRCS
+ poppler-document.cc
+ poppler-fontinfo.cc
+ poppler-link.cc
+ poppler-page.cc
+ poppler-page-transition.cc
+ poppler-private.cc
+)
+add_library(poppler-qt SHARED ${poppler_qt_SRCS})
+set_target_properties(poppler-qt PROPERTIES VERSION 2.0.0 SOVERSION 2)
+target_link_libraries(poppler-qt poppler ${QT3_LIBRARIES})
+install(TARGETS poppler-qt RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
+
+install(FILES
+ poppler-qt.h
+ poppler-page-transition.h
+ poppler-link-qt3.h
+ DESTINATION include/poppler/qt3)
+
+
+set(test_poppler_qt_SOURCES
+ test-poppler-qt.cpp
+)
+poppler_add_test(test-poppler-qt BUILD_QT3_TESTS ${test_poppler_qt_SOURCES})
+target_link_libraries(test-poppler-qt poppler-qt)
+
+
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.am b/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.am
new file mode 100644
index 00000000000..df0115cedac
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.am
@@ -0,0 +1,48 @@
+INCLUDES = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/poppler \
+ $(cairo_includes) \
+ $(POPPLER_QT_CXXFLAGS) \
+ $(FREETYPE_CFLAGS) \
+ $(FONTCONFIG_CFLAGS)
+
+
+poppler_includedir = $(includedir)/poppler/qt3
+poppler_include_HEADERS = \
+ poppler-qt.h \
+ poppler-page-transition.h \
+ poppler-link-qt3.h
+
+lib_LTLIBRARIES = libpoppler-qt.la
+libpoppler_qt_la_SOURCES = \
+ poppler-document.cc \
+ poppler-fontinfo.cc \
+ poppler-link.cc \
+ poppler-page.cc \
+ poppler-page-transition.cc \
+ poppler-page-transition-private.h \
+ poppler-private.cc \
+ poppler-private.h
+
+libpoppler_qt_la_LIBADD = \
+ $(top_builddir)/poppler/libpoppler.la \
+ $(POPPLER_QT_LIBS) \
+ $(FREETYPE_LIBS) \
+ $(FONTCONFIG_LIBS)
+
+libpoppler_qt_la_LDFLAGS = -version-info 2:0:0 @create_shared_lib@
+
+if BUILD_SPLASH_OUTPUT
+
+noinst_PROGRAMS = test-poppler-qt
+
+endif
+
+test_poppler_qt_SOURCES = \
+ test-poppler-qt.cpp
+
+test_poppler_qt_LDADD = \
+ $(top_builddir)/poppler/libpoppler.la \
+ libpoppler-qt.la \
+ $(POPPLER_QT_LIBS) \
+ $(FREETYPE_LIBS)
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.in b/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.in
new file mode 100644
index 00000000000..5b8c7c6a76f
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/Makefile.in
@@ -0,0 +1,742 @@
+# Makefile.in generated by automake 1.11 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@BUILD_SPLASH_OUTPUT_TRUE@noinst_PROGRAMS = test-poppler-qt$(EXEEXT)
+subdir = qt
+DIST_COMMON = $(poppler_include_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
+ $(top_srcdir)/m4/define-dir.m4 $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/libjpeg.m4 $(top_srcdir)/m4/libpng.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/qt.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h \
+ $(top_builddir)/poppler/poppler-config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(poppler_includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libpoppler_qt_la_DEPENDENCIES = $(top_builddir)/poppler/libpoppler.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_libpoppler_qt_la_OBJECTS = poppler-document.lo poppler-fontinfo.lo \
+ poppler-link.lo poppler-page.lo poppler-page-transition.lo \
+ poppler-private.lo
+libpoppler_qt_la_OBJECTS = $(am_libpoppler_qt_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libpoppler_qt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(libpoppler_qt_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+PROGRAMS = $(noinst_PROGRAMS)
+am_test_poppler_qt_OBJECTS = test-poppler-qt.$(OBJEXT)
+test_poppler_qt_OBJECTS = $(am_test_poppler_qt_OBJECTS)
+test_poppler_qt_DEPENDENCIES = $(top_builddir)/poppler/libpoppler.la \
+ libpoppler-qt.la $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/poppler
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_$(V))
+am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+am__v_CXX_0 = @echo " CXX " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CXXLD = $(am__v_CXXLD_$(V))
+am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libpoppler_qt_la_SOURCES) $(test_poppler_qt_SOURCES)
+DIST_SOURCES = $(libpoppler_qt_la_SOURCES) $(test_poppler_qt_SOURCES)
+HEADERS = $(poppler_include_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ABIWORD_CFLAGS = @ABIWORD_CFLAGS@
+ABIWORD_LIBS = @ABIWORD_LIBS@
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_FEATURE = @CAIRO_FEATURE@
+CAIRO_LIBS = @CAIRO_LIBS@
+CAIRO_REQ = @CAIRO_REQ@
+CAIRO_VERSION = @CAIRO_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
+FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
+FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
+FREETYPE_CONFIG = @FREETYPE_CONFIG@
+FREETYPE_LIBS = @FREETYPE_LIBS@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_FEATURE = @GDK_FEATURE@
+GDK_LIBS = @GDK_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTK_TEST_CFLAGS = @GTK_TEST_CFLAGS@
+GTK_TEST_LIBS = @GTK_TEST_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LCMS_CFLAGS = @LCMS_CFLAGS@
+LCMS_LIBS = @LCMS_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBJPEG_LIBS = @LIBJPEG_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBOPENJPEG_LIBS = @LIBOPENJPEG_LIBS@
+LIBPNG_LIBS = @LIBPNG_LIBS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MOCQT4 = @MOCQT4@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PC_REQUIRES = @PC_REQUIRES@
+PC_REQUIRES_PRIVATE = @PC_REQUIRES_PRIVATE@
+PKG_CONFIG = @PKG_CONFIG@
+POPPLER_DATADIR = @POPPLER_DATADIR@
+POPPLER_GLIB_CFLAGS = @POPPLER_GLIB_CFLAGS@
+POPPLER_GLIB_DISABLE_DEPRECATED = @POPPLER_GLIB_DISABLE_DEPRECATED@
+POPPLER_GLIB_DISABLE_SINGLE_INCLUDES = @POPPLER_GLIB_DISABLE_SINGLE_INCLUDES@
+POPPLER_GLIB_LIBS = @POPPLER_GLIB_LIBS@
+POPPLER_MAJOR_VERSION = @POPPLER_MAJOR_VERSION@
+POPPLER_MICRO_VERSION = @POPPLER_MICRO_VERSION@
+POPPLER_MINOR_VERSION = @POPPLER_MINOR_VERSION@
+POPPLER_QT4_CFLAGS = @POPPLER_QT4_CFLAGS@
+POPPLER_QT4_CXXFLAGS = @POPPLER_QT4_CXXFLAGS@
+POPPLER_QT4_LIBS = @POPPLER_QT4_LIBS@
+POPPLER_QT4_TEST_CFLAGS = @POPPLER_QT4_TEST_CFLAGS@
+POPPLER_QT4_TEST_LIBS = @POPPLER_QT4_TEST_LIBS@
+POPPLER_QT_CXXFLAGS = @POPPLER_QT_CXXFLAGS@
+POPPLER_QT_LIBS = @POPPLER_QT_LIBS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_LIBS = @ZLIB_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+acx_pthread_config = @acx_pthread_config@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+auto_import_flags = @auto_import_flags@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+create_shared_lib = @create_shared_lib@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+win32_libs = @win32_libs@
+INCLUDES = \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/poppler \
+ $(cairo_includes) \
+ $(POPPLER_QT_CXXFLAGS) \
+ $(FREETYPE_CFLAGS) \
+ $(FONTCONFIG_CFLAGS)
+
+poppler_includedir = $(includedir)/poppler/qt3
+poppler_include_HEADERS = \
+ poppler-qt.h \
+ poppler-page-transition.h \
+ poppler-link-qt3.h
+
+lib_LTLIBRARIES = libpoppler-qt.la
+libpoppler_qt_la_SOURCES = \
+ poppler-document.cc \
+ poppler-fontinfo.cc \
+ poppler-link.cc \
+ poppler-page.cc \
+ poppler-page-transition.cc \
+ poppler-page-transition-private.h \
+ poppler-private.cc \
+ poppler-private.h
+
+libpoppler_qt_la_LIBADD = \
+ $(top_builddir)/poppler/libpoppler.la \
+ $(POPPLER_QT_LIBS) \
+ $(FREETYPE_LIBS) \
+ $(FONTCONFIG_LIBS)
+
+libpoppler_qt_la_LDFLAGS = -version-info 2:0:0 @create_shared_lib@
+test_poppler_qt_SOURCES = \
+ test-poppler-qt.cpp
+
+test_poppler_qt_LDADD = \
+ $(top_builddir)/poppler/libpoppler.la \
+ libpoppler-qt.la \
+ $(POPPLER_QT_LIBS) \
+ $(FREETYPE_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign qt/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign qt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libpoppler-qt.la: $(libpoppler_qt_la_OBJECTS) $(libpoppler_qt_la_DEPENDENCIES)
+ $(AM_V_CXXLD)$(libpoppler_qt_la_LINK) -rpath $(libdir) $(libpoppler_qt_la_OBJECTS) $(libpoppler_qt_la_LIBADD) $(LIBS)
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+test-poppler-qt$(EXEEXT): $(test_poppler_qt_OBJECTS) $(test_poppler_qt_DEPENDENCIES)
+ @rm -f test-poppler-qt$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(test_poppler_qt_OBJECTS) $(test_poppler_qt_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-document.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-fontinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-link.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-page-transition.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-page.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poppler-private.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-poppler-qt.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-poppler_includeHEADERS: $(poppler_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(poppler_includedir)" || $(MKDIR_P) "$(DESTDIR)$(poppler_includedir)"
+ @list='$(poppler_include_HEADERS)'; test -n "$(poppler_includedir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(poppler_includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(poppler_includedir)" || exit $$?; \
+ done
+
+uninstall-poppler_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(poppler_include_HEADERS)'; test -n "$(poppler_includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(poppler_includedir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(poppler_includedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(poppler_includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-poppler_includeHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES \
+ uninstall-poppler_includeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-libLTLIBRARIES install-man install-pdf \
+ install-pdf-am install-poppler_includeHEADERS install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-poppler_includeHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-document.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-document.cc
new file mode 100644
index 00000000000..bade1d12230
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-document.cc
@@ -0,0 +1,332 @@
+/* poppler-document.cc: qt interface to poppler
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005-2009, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2006, Stefan Kebekus <stefan.kebekus@math.uni-koeln.de>
+ * Copyright (C) 2006, Wilfried Huss <Wilfried.Huss@gmx.at>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <poppler-qt.h>
+#include <qfile.h>
+#include <GlobalParams.h>
+#include <Outline.h>
+#include <PDFDoc.h>
+#include <PSOutputDev.h>
+#include <Catalog.h>
+#include <ErrorCodes.h>
+#include <SplashOutputDev.h>
+#include <splash/SplashBitmap.h>
+#include <DateInfo.h>
+#include "poppler-private.h"
+
+namespace Poppler {
+
+Document *Document::load(const QString &filePath)
+{
+ if (!globalParams) {
+ globalParams = new GlobalParams();
+ }
+
+ DocumentData *doc = new DocumentData(new GooString(QFile::encodeName(filePath)), NULL);
+ Document *pdoc;
+ if (doc->doc.isOk() || doc->doc.getErrorCode() == errEncrypted) {
+ pdoc = new Document(doc);
+ if (doc->doc.getErrorCode() == errEncrypted)
+ pdoc->data->locked = true;
+ else
+ pdoc->data->locked = false;
+ pdoc->data->m_fontInfoScanner = new FontInfoScanner(&(doc->doc));
+ return pdoc;
+ }
+ else
+ return NULL;
+}
+
+Document::Document(DocumentData *dataA)
+{
+ data = dataA;
+}
+
+Document::~Document()
+{
+ delete data;
+}
+
+bool Document::isLocked() const
+{
+ return data->locked;
+}
+
+bool Document::unlock(const QCString &password)
+{
+ if (data->locked) {
+ /* racier then it needs to be */
+ GooString *filename = new GooString(data->doc.getFileName());
+ GooString *pwd = new GooString(password.data());
+ DocumentData *doc2 = new DocumentData(filename, pwd);
+ delete pwd;
+ if (!doc2->doc.isOk()) {
+ delete doc2;
+ } else {
+ delete data;
+ data = doc2;
+ data->locked = false;
+ data->m_fontInfoScanner = new FontInfoScanner(&(data->doc));
+ }
+ }
+ return data->locked;
+}
+
+Document::PageMode Document::getPageMode(void) const
+{
+ switch (data->doc.getCatalog()->getPageMode()) {
+ case Catalog::pageModeNone:
+ return UseNone;
+ case Catalog::pageModeOutlines:
+ return UseOutlines;
+ case Catalog::pageModeThumbs:
+ return UseThumbs;
+ case Catalog::pageModeFullScreen:
+ return FullScreen;
+ case Catalog::pageModeOC:
+ return UseOC;
+ default:
+ return UseNone;
+ }
+}
+
+int Document::getNumPages() const
+{
+ return data->doc.getNumPages();
+}
+
+QValueList<FontInfo> Document::fonts() const
+{
+ QValueList<FontInfo> ourList;
+ scanForFonts(getNumPages(), &ourList);
+ return ourList;
+}
+
+bool Document::scanForFonts( int numPages, QValueList<FontInfo> *fontList ) const
+{
+ GooList *items = data->m_fontInfoScanner->scan( numPages );
+
+ if ( NULL == items )
+ return false;
+
+ for ( int i = 0; i < items->getLength(); ++i ) {
+ QString fontName;
+ if (((::FontInfo*)items->get(i))->getName())
+ fontName = ((::FontInfo*)items->get(i))->getName()->getCString();
+
+ FontInfo font(fontName,
+ ((::FontInfo*)items->get(i))->getEmbedded(),
+ ((::FontInfo*)items->get(i))->getSubset(),
+ (Poppler::FontInfo::Type)((::FontInfo*)items->get(i))->getType());
+ fontList->append(font);
+ }
+ deleteGooList(items, ::FontInfo);
+ return true;
+}
+
+/* borrowed from kpdf */
+QString Document::getInfo( const QString & type ) const
+{
+ // [Albert] Code adapted from pdfinfo.cc on xpdf
+ Object info;
+ if ( data->locked )
+ return NULL;
+
+ data->doc.getDocInfo( &info );
+ if ( !info.isDict() )
+ return NULL;
+
+ QString result;
+ Object obj;
+ GooString *s1;
+ GBool isUnicode;
+ Unicode u;
+ int i;
+ Dict *infoDict = info.getDict();
+
+ if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() )
+ {
+ s1 = obj.getString();
+ if ( ( s1->getChar(0) & 0xff ) == 0xfe && ( s1->getChar(1) & 0xff ) == 0xff )
+ {
+ isUnicode = gTrue;
+ i = 2;
+ }
+ else
+ {
+ isUnicode = gFalse;
+ i = 0;
+ }
+ while ( i < obj.getString()->getLength() )
+ {
+ if ( isUnicode )
+ {
+ u = ( ( s1->getChar(i) & 0xff ) << 8 ) | ( s1->getChar(i+1) & 0xff );
+ i += 2;
+ }
+ else
+ {
+ u = s1->getChar(i) & 0xff;
+ ++i;
+ }
+ result += unicodeToQString( &u, 1 );
+ }
+ obj.free();
+ info.free();
+ return result;
+ }
+ obj.free();
+ info.free();
+ return NULL;
+}
+
+/* borrowed from kpdf */
+QDateTime Document::getDate( const QString & type ) const
+{
+ // [Albert] Code adapted from pdfinfo.cc on xpdf
+ if ( data->locked )
+ return QDateTime();
+
+ Object info;
+ data->doc.getDocInfo( &info );
+ if ( !info.isDict() ) {
+ info.free();
+ return QDateTime();
+ }
+
+ Object obj;
+ int year, mon, day, hour, min, sec, tz_hour, tz_minute;
+ char tz;
+ Dict *infoDict = info.getDict();
+ QString result;
+
+ if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() )
+ {
+ QString s = UnicodeParsedString(obj.getString());
+ // TODO do something with the timezone information
+ if ( parseDateString( s.latin1(), &year, &mon, &day, &hour, &min, &sec, &tz, &tz_hour, &tz_minute ) )
+ {
+ QDate d( year, mon, day ); //CHECK: it was mon-1, Jan->0 (??)
+ QTime t( hour, min, sec );
+ if ( d.isValid() && t.isValid() ) {
+ obj.free();
+ info.free();
+ return QDateTime( d, t );
+ }
+ }
+ }
+ obj.free();
+ info.free();
+ return QDateTime();
+}
+
+bool Document::isEncrypted() const
+{
+ return data->doc.isEncrypted();
+}
+
+bool Document::isLinearized() const
+{
+ return data->doc.isLinearized();
+}
+
+bool Document::okToPrint() const
+{
+ return data->doc.okToPrint();
+}
+
+bool Document::okToChange() const
+{
+ return data->doc.okToChange();
+}
+
+bool Document::okToCopy() const
+{
+ return data->doc.okToCopy();
+}
+
+bool Document::okToAddNotes() const
+{
+ return data->doc.okToAddNotes();
+}
+
+double Document::getPDFVersion() const
+{
+ return data->doc.getPDFMajorVersion () + data->doc.getPDFMinorVersion() / 10.0;
+}
+
+void Document::getPdfVersion(int *major, int *minor) const
+{
+ if (major)
+ *major = data->doc.getPDFMajorVersion();
+ if (minor)
+ *minor = data->doc.getPDFMinorVersion();
+}
+
+QDomDocument *Document::toc() const
+{
+ Outline * outline = data->doc.getOutline();
+ if ( !outline )
+ return NULL;
+
+ GooList * items = outline->getItems();
+ if ( !items || items->getLength() < 1 )
+ return NULL;
+
+ QDomDocument *toc = new QDomDocument();
+ if ( items->getLength() > 0 )
+ data->addTocChildren( toc, toc, items );
+
+ return toc;
+}
+
+LinkDestination *Document::linkDestination( const QString &name )
+{
+ GooString * namedDest = QStringToGooString( name );
+ LinkDestinationData ldd(NULL, namedDest, data);
+ LinkDestination *ld = new LinkDestination(ldd);
+ delete namedDest;
+ return ld;
+}
+
+bool Document::print(const QString &fileName, QValueList<int> pageList, double hDPI, double vDPI, int rotate)
+{
+ return print(fileName, pageList, hDPI, vDPI, rotate, -1, -1);
+}
+
+bool Document::print(const QString &file, QValueList<int> pageList, double hDPI, double vDPI, int rotate, int paperWidth, int paperHeight)
+{
+ PSOutputDev *psOut = new PSOutputDev(file.latin1(), data->doc.getXRef(), data->doc.getCatalog(), NULL, 1, data->doc.getNumPages(), psModePS, paperWidth, paperHeight);
+
+ if (psOut->isOk()) {
+ QValueList<int>::iterator it;
+ for (it = pageList.begin(); it != pageList.end(); ++it )
+ data->doc.displayPage(psOut, *it, hDPI, vDPI, rotate, gFalse, gTrue, gTrue);
+
+ delete psOut;
+ return true;
+ } else {
+ delete psOut;
+ return false;
+ }
+}
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-fontinfo.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-fontinfo.cc
new file mode 100644
index 00000000000..6eb9d26f161
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-fontinfo.cc
@@ -0,0 +1,83 @@
+/* poppler-qt.h: qt interface to poppler
+ * Copyright (C) 2005, Albert Astals Cid <aacid@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "poppler-qt.h"
+
+namespace Poppler {
+
+class FontInfoData
+{
+ public:
+ QString fontName;
+ bool isEmbedded;
+ bool isSubset;
+ FontInfo::Type type;
+};
+
+FontInfo::FontInfo( const QString &fontName, const bool isEmbedded, const bool isSubset, Type type )
+{
+ data = new FontInfoData();
+ data->fontName = fontName;
+ data->isEmbedded = isEmbedded;
+ data->isSubset = isSubset;
+ data->type = type;
+}
+
+FontInfo::FontInfo( const FontInfo &fi )
+{
+ data = new FontInfoData();
+ data->fontName = fi.data->fontName;
+ data->isEmbedded = fi.data->isEmbedded;
+ data->isSubset = fi.data->isSubset;
+ data->type = fi.data->type;
+}
+
+FontInfo::FontInfo()
+{
+ data = new FontInfoData();
+ data->isEmbedded = false;
+ data->isSubset = false;
+ data->type = unknown;
+}
+
+FontInfo::~FontInfo()
+{
+ delete data;
+}
+
+const QString &FontInfo::name() const
+{
+ return data->fontName;
+}
+
+bool FontInfo::isEmbedded() const
+{
+ return data->isEmbedded;
+}
+
+bool FontInfo::isSubset() const
+{
+ return data->isSubset;
+}
+
+FontInfo::Type FontInfo::type() const
+{
+ return data->type;
+}
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link-qt3.h b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link-qt3.h
new file mode 100644
index 00000000000..82127207ca9
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link-qt3.h
@@ -0,0 +1,188 @@
+/* poppler-link.h: qt interface to poppler
+ * Copyright (C) 2006, Albert Astals Cid <aacid@kde.org>
+ * Adapting code from
+ * Copyright (C) 2004 by Enrico Ros <eros.kde@email.it>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef _POPPLER_LINK_H_
+#define _POPPLER_LINK_H_
+
+#include <qstring.h>
+#include <qrect.h>
+
+namespace Poppler {
+
+class LinkDestinationData;
+
+class LinkDestination
+{
+ public:
+ enum Kind
+ {
+ destXYZ = 1,
+ destFit = 2,
+ destFitH = 3,
+ destFitV = 4,
+ destFitR = 5,
+ destFitB = 6,
+ destFitBH = 7,
+ destFitBV = 8
+ };
+
+ LinkDestination(const LinkDestinationData &data);
+ LinkDestination(const QString &description);
+
+ // Accessors.
+ Kind kind() const;
+ int pageNumber() const;
+ double left() const;
+ double bottom() const;
+ double right() const;
+ double top() const;
+ double zoom() const;
+ bool isChangeLeft() const;
+ bool isChangeTop() const;
+ bool isChangeZoom() const;
+
+ QString toString() const;
+
+ private:
+ Kind m_kind; // destination type
+ int m_pageNum; // page number
+ double m_left, m_bottom; // position
+ double m_right, m_top;
+ double m_zoom; // zoom factor
+ bool m_changeLeft, m_changeTop; // for destXYZ links, which position
+ bool m_changeZoom; // components to change
+};
+
+/**
+ * @short Encapsulates data that describes a link.
+ *
+ * This is the base class for links. It makes mandatory for inherited
+ * widgets to reimplement the 'linkType' method and return the type of
+ * the link described by the reimplemented class.
+ */
+class Link
+{
+ public:
+ Link( const QRect &linkArea );
+
+ // get link type (inherited classes mustreturn an unique identifier)
+ enum LinkType { None, Goto, Execute, Browse, Action, Movie };
+ virtual LinkType linkType() const;
+
+ // virtual destructor
+ virtual ~Link();
+
+ QRect linkArea() const;
+
+ private:
+ QRect m_linkArea;
+};
+
+
+/** Goto: a viewport and maybe a reference to an external filename **/
+class LinkGoto : public Link
+{
+ public:
+ LinkGoto( const QRect &linkArea, QString extFileName, const LinkDestination & destination );
+
+ // query for goto parameters
+ bool isExternal() const;
+ const QString & fileName() const;
+ const LinkDestination & destination() const;
+ LinkType linkType() const;
+
+ private:
+ QString m_extFileName;
+ LinkDestination m_destination;
+};
+
+/** Execute: filename and parameters to execute **/
+class LinkExecute : public Link
+{
+ public:
+ // query for filename / parameters
+ const QString & fileName() const;
+ const QString & parameters() const;
+
+ // create a Link_Execute
+ LinkExecute( const QRect &linkArea, const QString & file, const QString & params );
+ LinkType linkType() const;
+
+ private:
+ QString m_fileName;
+ QString m_parameters;
+};
+
+/** Browse: an URL to open, ranging from 'http://' to 'mailto:' etc.. **/
+class LinkBrowse : public Link
+{
+ public:
+ // query for URL
+ const QString & url() const;
+
+ // create a Link_Browse
+ LinkBrowse( const QRect &linkArea, const QString &url );
+ LinkType linkType() const;
+
+ private:
+ QString m_url;
+};
+
+/** Action: contains an action to perform on document / viewer **/
+class LinkAction : public Link
+{
+ public:
+ // define types of actions
+ enum ActionType { PageFirst = 1,
+ PagePrev = 2,
+ PageNext = 3,
+ PageLast = 4,
+ HistoryBack = 5,
+ HistoryForward = 6,
+ Quit = 7,
+ Presentation = 8,
+ EndPresentation = 9,
+ Find = 10,
+ GoToPage = 11,
+ Close = 12 };
+
+ // query for action type
+ ActionType actionType() const;
+
+ // create a Link_Action
+ LinkAction( const QRect &linkArea, ActionType actionType );
+ LinkType linkType() const;
+
+ private:
+ ActionType m_type;
+};
+
+/** Movie: Not yet defined -> think renaming to 'Media' link **/
+class LinkMovie : public Link
+// TODO this (Movie link)
+{
+ public:
+ LinkMovie( const QRect &linkArea );
+ LinkType linkType() const;
+};
+
+}
+
+#endif
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link.cc
new file mode 100644
index 00000000000..af6d6452713
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-link.cc
@@ -0,0 +1,267 @@
+/* poppler-link.cc: qt interface to poppler
+ * Copyright (C) 2006, 2008 Albert Astals Cid
+ * Adapting code from
+ * Copyright (C) 2004 by Enrico Ros <eros.kde@email.it>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <poppler-qt.h>
+#include <poppler-private.h>
+
+#include <qstringlist.h>
+
+#include <Link.h>
+
+namespace Poppler {
+
+ LinkDestination::LinkDestination(const LinkDestinationData &data)
+ {
+ bool deleteDest = false;
+ LinkDest *ld = data.ld;
+
+ if ( data.namedDest && !ld )
+ {
+ deleteDest = true;
+ ld = data.doc->doc.findDest( data.namedDest );
+ }
+
+ if (!ld) return;
+
+ if (ld->getKind() == ::destXYZ) m_kind = destXYZ;
+ else if (ld->getKind() == ::destFit) m_kind = destFit;
+ else if (ld->getKind() == ::destFitH) m_kind = destFitH;
+ else if (ld->getKind() == ::destFitV) m_kind = destFitV;
+ else if (ld->getKind() == ::destFitR) m_kind = destFitR;
+ else if (ld->getKind() == ::destFitB) m_kind = destFitB;
+ else if (ld->getKind() == ::destFitBH) m_kind = destFitBH;
+ else if (ld->getKind() == ::destFitBV) m_kind = destFitBV;
+
+ if ( !ld->isPageRef() ) m_pageNum = ld->getPageNum();
+ else
+ {
+ Ref ref = ld->getPageRef();
+ m_pageNum = data.doc->doc.findPage( ref.num, ref.gen );
+ }
+ double left = ld->getLeft();
+ double bottom = ld->getBottom();
+ double right = ld->getRight();
+ double top = ld->getTop();
+ m_zoom = ld->getZoom();
+ m_changeLeft = ld->getChangeLeft();
+ m_changeTop = ld->getChangeTop();
+ m_changeZoom = ld->getChangeZoom();
+
+ int leftAux = 0, topAux = 0, rightAux = 0, bottomAux = 0;
+
+#if defined(HAVE_SPLASH)
+ SplashOutputDev *sod = data.doc->getOutputDev();
+ sod->cvtUserToDev( left, top, &leftAux, &topAux );
+ sod->cvtUserToDev( right, bottom, &rightAux, &bottomAux );
+#endif
+
+ m_left = leftAux;
+ m_top = topAux;
+ m_right = rightAux;
+ m_bottom = bottomAux;
+
+ if (deleteDest) delete ld;
+ }
+
+ LinkDestination::LinkDestination(const QString &description)
+ {
+ QStringList tokens = QStringList::split(';', description);
+ m_kind = static_cast<Kind>(tokens[0].toInt());
+ m_pageNum = tokens[1].toInt();
+ m_left = tokens[2].toDouble();
+ m_bottom = tokens[3].toDouble();
+ m_right = tokens[4].toDouble();
+ m_top = tokens[5].toDouble();
+ m_zoom = tokens[6].toDouble();
+ m_changeLeft = static_cast<bool>(tokens[7].toInt());
+ m_changeTop = static_cast<bool>(tokens[8].toInt());
+ m_changeZoom = static_cast<bool>(tokens[9].toInt());
+ }
+
+ LinkDestination::Kind LinkDestination::kind() const
+ {
+ return m_kind;
+ }
+
+ int LinkDestination::pageNumber() const
+ {
+ return m_pageNum;
+ }
+
+ double LinkDestination::left() const
+ {
+ return m_left;
+ }
+
+ double LinkDestination::bottom() const
+ {
+ return m_bottom;
+ }
+
+ double LinkDestination::right() const
+ {
+ return m_right;
+ }
+
+ double LinkDestination::top() const
+ {
+ return m_top;
+ }
+
+ double LinkDestination::zoom() const
+ {
+ return m_zoom;
+ }
+
+ bool LinkDestination::isChangeLeft() const
+ {
+ return m_changeLeft;
+ }
+
+ bool LinkDestination::isChangeTop() const
+ {
+ return m_changeTop;
+ }
+
+ bool LinkDestination::isChangeZoom() const
+ {
+ return m_changeZoom;
+ }
+
+ QString LinkDestination::toString() const
+ {
+ QString s = QString::number( (Q_INT8)m_kind );
+ s += ";" + QString::number( m_pageNum );
+ s += ";" + QString::number( m_left );
+ s += ";" + QString::number( m_bottom );
+ s += ";" + QString::number( m_right );
+ s += ";" + QString::number( m_top );
+ s += ";" + QString::number( m_zoom );
+ s += ";" + QString::number( (Q_INT8)m_changeLeft );
+ s += ";" + QString::number( (Q_INT8)m_changeTop );
+ s += ";" + QString::number( (Q_INT8)m_changeZoom );
+ return s;
+ }
+
+
+ // Link
+ Link::~Link()
+ {
+ }
+
+ Link::Link(const QRect &linkArea) : m_linkArea(linkArea)
+ {
+ }
+
+ Link::LinkType Link::linkType() const
+ {
+ return None;
+ }
+
+ QRect Link::linkArea() const
+ {
+ return m_linkArea;
+ }
+
+ // LinkGoto
+ LinkGoto::LinkGoto( const QRect &linkArea, QString extFileName, const LinkDestination & destination ) : Link(linkArea), m_extFileName(extFileName), m_destination(destination)
+ {
+ }
+
+ bool LinkGoto::isExternal() const
+ {
+ return !m_extFileName.isEmpty();
+ }
+
+ const QString &LinkGoto::fileName() const
+ {
+ return m_extFileName;
+ }
+
+ const LinkDestination &LinkGoto::destination() const
+ {
+ return m_destination;
+ }
+
+ Link::LinkType LinkGoto::linkType() const
+ {
+ return Goto;
+ }
+
+ // LinkExecute
+ LinkExecute::LinkExecute( const QRect &linkArea, const QString & file, const QString & params ) : Link(linkArea), m_fileName(file), m_parameters(params)
+ {
+ }
+
+ const QString & LinkExecute::fileName() const
+ {
+ return m_fileName;
+ }
+ const QString & LinkExecute::parameters() const
+ {
+ return m_parameters;
+ }
+
+ Link::LinkType LinkExecute::linkType() const
+ {
+ return Execute;
+ }
+
+ // LinkBrowse
+ LinkBrowse::LinkBrowse( const QRect &linkArea, const QString &url ) : Link(linkArea), m_url(url)
+ {
+ }
+
+ const QString & LinkBrowse::url() const
+ {
+ return m_url;
+ }
+
+ Link::LinkType LinkBrowse::linkType() const
+ {
+ return Browse;
+ }
+
+ // LinkAction
+ LinkAction::LinkAction( const QRect &linkArea, ActionType actionType ) : Link(linkArea), m_type(actionType)
+ {
+ }
+
+ LinkAction::ActionType LinkAction::actionType() const
+ {
+ return m_type;
+ }
+
+ Link::LinkType LinkAction::linkType() const
+ {
+ return Action;
+ }
+
+ // LinkMovie
+ LinkMovie::LinkMovie( const QRect &linkArea ) : Link(linkArea)
+ {
+ }
+
+ Link::LinkType LinkMovie::linkType() const
+ {
+ return Movie;
+ }
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition-private.h b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition-private.h
new file mode 100644
index 00000000000..63febb09619
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition-private.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2005, Albert Astals Cid
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+class Object;
+
+namespace Poppler {
+
+class PageTransitionParams {
+ public:
+ Object *dictObj;
+};
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.cc
new file mode 100644
index 00000000000..cde8818d67b
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.cc
@@ -0,0 +1,95 @@
+/* PageTransition.cc
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "PageTransition.h"
+#include "poppler-page-transition.h"
+#include "poppler-page-transition-private.h"
+
+namespace Poppler {
+
+class PageTransitionData
+{
+ public:
+ PageTransitionData(Object *trans)
+ {
+ pt = new ::PageTransition(trans);
+ }
+
+ PageTransitionData(const PageTransitionData &ptd)
+ {
+ pt = new ::PageTransition(*ptd.pt);
+ }
+
+ ~PageTransitionData()
+ {
+ delete pt;
+ }
+
+ ::PageTransition *pt;
+};
+
+PageTransition::PageTransition(const PageTransitionParams &params)
+{
+ data = new PageTransitionData(params.dictObj);
+}
+
+PageTransition::PageTransition(const PageTransition &pt)
+{
+ data = new PageTransitionData(*pt.data);
+}
+
+PageTransition::~PageTransition()
+{
+ delete data;
+}
+
+PageTransition::Type PageTransition::type() const
+{
+ return (Poppler::PageTransition::Type)data->pt->getType();
+}
+
+int PageTransition::duration() const
+{
+ return data->pt->getDuration();
+}
+
+PageTransition::Alignment PageTransition::alignment() const
+{
+ return (Poppler::PageTransition::Alignment)data->pt->getAlignment();
+}
+
+PageTransition::Direction PageTransition::direction() const
+{
+ return (Poppler::PageTransition::Direction)data->pt->getDirection();
+}
+
+int PageTransition::angle() const
+{
+ return data->pt->getAngle();
+}
+
+double PageTransition::scale() const
+{
+ return data->pt->getScale();
+}
+bool PageTransition::isRectangular() const
+{
+ return data->pt->isRectangular();
+}
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.h b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.h
new file mode 100644
index 00000000000..53002ff9117
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page-transition.h
@@ -0,0 +1,146 @@
+/* PageTransition.h
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005, Brad Hards <bradh@frogmouth.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __PAGETRANSITION_X_H__
+#define __PAGETRANSITION_X_H__
+
+namespace Poppler {
+
+class PageTransitionParams;
+class PageTransitionData;
+
+/**
+ \brief Describes how a PDF file viewer shall perform the transition
+ from one page to another
+
+ In PDF files there is a way to specify if the viewer shall use
+ certain effects to perform the transition from one page to
+ another. This feature can be used, e.g., in a PDF-based beamer
+ presentation.
+
+ This utility class represents the transition effect, and can be
+ used to extract the information from a PDF object.
+*/
+
+
+class PageTransition {
+ public:
+
+ /** \brief transition effect that shall be used
+ */
+ // if changed remember to keep in sync with PageTransition.h enum
+ enum Type {
+ Replace = 0,
+ Split,
+ Blinds,
+ Box,
+ Wipe,
+ Dissolve,
+ Glitter,
+ Fly,
+ Push,
+ Cover,
+ Uncover,
+ Fade
+ };
+
+ /** \brief alignment of the transition effect that shall be used
+ */
+ // if changed remember to keep in sync with PageTransition.h enum
+ enum Alignment {
+ Horizontal = 0,
+ Vertical
+ };
+
+ /** \brief direction of the transition effect that shall be used
+ */
+ // if changed remember to keep in sync with PageTransition.h enum
+ enum Direction {
+ Inward = 0,
+ Outward
+ };
+
+ /** \brief Construct a new PageTransition object from a page dictionary.
+
+ Users of the library will rarely need to construct a
+ PageTransition object themselves. Instead, the method
+ Poppler::Page::transition() can be used to find out if a certain
+ transition effect is specified.
+
+ @warning In case or error, this method will print an error message to stderr,
+ and construct a default object.
+
+ @param params an object whose dictionary will be read and
+ parsed. This must be a valid object, whose dictionaries are
+ accessed by the constructor. The object is only accessed by this
+ constructor, and may be deleted after the constructor returns.
+ */
+ PageTransition(const PageTransitionParams &params);
+
+ /** \brief copy constructor */
+ PageTransition(const PageTransition &pt);
+
+ /**
+ Destructor
+ */
+ ~PageTransition();
+
+ /**
+ \brief Get type of the transition.
+ */
+ Type type() const;
+
+ /**
+ \brief Get duration of the transition in seconds.
+ */
+ int duration() const;
+
+ /**
+ \brief Get dimension in which the transition effect occurs.
+ */
+ Alignment alignment() const;
+
+ /**
+ \brief Get direction of motion of the transition effect.
+ */
+ Direction direction() const;
+
+ /**
+ \brief Get direction in which the transition effect moves.
+ */
+ int angle() const;
+
+ /**
+ \brief Get starting or ending scale.
+ */
+ double scale() const;
+
+ /**
+ \brief Returns true if the area to be flown is rectangular and
+ opaque.
+ */
+ bool isRectangular() const;
+
+ private:
+ PageTransitionData *data;
+};
+
+}
+
+#endif
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page.cc
new file mode 100644
index 00000000000..50c28aa6065
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-page.cc
@@ -0,0 +1,361 @@
+/* poppler-page.cc: qt interface to poppler
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005-2006, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2005, Tobias Koening <tokoe@kde.org>
+ * Copyright (C) 2005, Stefan Kebekus <stefan.kebekus@math.uni-koeln.de>
+ * Copyright (C) 2006, Wilfried Huss <Wilfried.Huss@gmx.at>
+ * Copyright (C) 2006, Jerry Epplin <jepplin@globalvelocity.com>
+ * Copyright (C) 2007, Pino Toscano <pino@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <poppler-qt.h>
+#include <qfile.h>
+#include <qimage.h>
+#include <config.h>
+#include <GlobalParams.h>
+#include <PDFDoc.h>
+#include <Catalog.h>
+#include <ErrorCodes.h>
+#include <TextOutputDev.h>
+#include <Link.h>
+#if defined(HAVE_SPLASH)
+#include <SplashOutputDev.h>
+#include <splash/SplashBitmap.h>
+#endif
+
+#include "poppler-private.h"
+#include "poppler-page-transition-private.h"
+
+namespace Poppler {
+
+class PageData {
+ public:
+ const Document *doc;
+ int index;
+ PageTransition *transition;
+};
+
+Page::Page(const Document *doc, int index) {
+ data = new PageData();
+ data->index = index;
+ data->doc = doc;
+ data->transition = 0;
+}
+
+Page::~Page()
+{
+ delete data->transition;
+ delete data;
+}
+
+void Page::renderToPixmap(QPixmap **q, int x, int y, int w, int h, bool doLinks) const
+{
+ renderToPixmap(q, x, y, w, h, 72.0, 72.0, doLinks);
+}
+
+void Page::renderToPixmap(QPixmap **q, int x, int y, int w, int h, double xres, double yres, bool doLinks) const
+{
+ QImage img = renderToImage(xres, yres, doLinks);
+ *q = new QPixmap( img );
+}
+
+QImage Page::renderToImage(double xres, double yres, bool doLinks) const
+{
+#if defined(HAVE_SPLASH)
+ SplashOutputDev *output_dev;
+ SplashBitmap *bitmap;
+ SplashColorPtr color_ptr;
+ output_dev = data->doc->data->getOutputDev();
+
+ data->doc->data->doc.displayPageSlice(output_dev, data->index + 1, xres, yres,
+ 0, false, true, false, -1, -1, -1, -1);
+ bitmap = output_dev->getBitmap ();
+ color_ptr = bitmap->getDataPtr ();
+ int bw = output_dev->getBitmap()->getWidth();
+ int bh = output_dev->getBitmap()->getHeight();
+ SplashColorPtr dataPtr = output_dev->getBitmap()->getDataPtr();
+
+ if (QImage::BigEndian == QImage::systemByteOrder())
+ {
+ uchar c;
+ int count = bw * bh * 4;
+ for (int k = 0; k < count; k += 4)
+ {
+ c = dataPtr[k];
+ dataPtr[k] = dataPtr[k+3];
+ dataPtr[k+3] = c;
+
+ c = dataPtr[k+1];
+ dataPtr[k+1] = dataPtr[k+2];
+ dataPtr[k+2] = c;
+ }
+ }
+
+ // construct a qimage SHARING the raw bitmap data in memory
+ QImage img( dataPtr, bw, bh, 32, 0, 0, QImage::IgnoreEndian );
+ img = img.copy();
+ // unload underlying xpdf bitmap
+ output_dev->startPage( 0, NULL );
+
+ return img;
+#else
+ (void)xres;
+ (void)xres;
+ (void)doLinks;
+
+ return QImage();
+#endif
+}
+
+QString Page::getText(const Rectangle &r) const
+{
+ TextOutputDev *output_dev;
+ GooString *s;
+ PDFRectangle *rect;
+ QString result;
+ ::Page *p;
+
+ output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
+ data->doc->data->doc.displayPageSlice(output_dev, data->index + 1, 72, 72,
+ 0, false, false, false, -1, -1, -1, -1);
+ p = data->doc->data->doc.getCatalog()->getPage(data->index + 1);
+ if (r.isNull())
+ {
+ rect = p->getCropBox();
+ s = output_dev->getText(rect->x1, rect->y1, rect->x2, rect->y2);
+ }
+ else
+ {
+ double height, y1, y2;
+ height = p->getCropHeight();
+ y1 = height - r.m_y2;
+ y2 = height - r.m_y1;
+ s = output_dev->getText(r.m_x1, y1, r.m_x2, y2);
+ }
+
+ result = QString::fromUtf8(s->getCString());
+
+ delete output_dev;
+ delete s;
+ return result;
+}
+
+QValueList<TextBox*> Page::textList() const
+{
+ TextOutputDev *output_dev;
+
+ QValueList<TextBox*> output_list;
+
+ output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
+
+ data->doc->data->doc.displayPageSlice(output_dev, data->index + 1, 72, 72,
+ 0, false, false, false, -1, -1, -1, -1);
+
+ TextWordList *word_list = output_dev->makeWordList();
+
+ if (!word_list) {
+ delete output_dev;
+ return output_list;
+ }
+
+ for (int i = 0; i < word_list->getLength(); i++) {
+ TextWord *word = word_list->get(i);
+ GooString *word_str = word->getText();
+ QString string = QString::fromUtf8(word_str->getCString());
+ delete word_str;
+ double xMin, yMin, xMax, yMax;
+ word->getBBox(&xMin, &yMin, &xMax, &yMax);
+
+ TextBox* text_box = new TextBox(string, Rectangle(xMin, yMin, xMax, yMax));
+
+ output_list.append(text_box);
+ }
+
+ delete word_list;
+ delete output_dev;
+
+ return output_list;
+}
+
+PageTransition *Page::getTransition() const
+{
+ if (!data->transition)
+ {
+ Object o;
+ PageTransitionParams params;
+ params.dictObj = data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans(&o);
+ data->transition = new PageTransition(params);
+ o.free();
+ }
+ return data->transition;
+}
+
+QSize Page::pageSize() const
+{
+ ::Page *p;
+
+ p = data->doc->data->doc.getCatalog()->getPage(data->index + 1);
+ if ( ( Page::Landscape == orientation() ) || (Page::Seascape == orientation() ) ) {
+ return QSize( (int)p->getCropHeight(), (int)p->getCropWidth() );
+ } else {
+ return QSize( (int)p->getCropWidth(), (int)p->getCropHeight() );
+ }
+}
+
+Page::Orientation Page::orientation() const
+{
+ ::Page *p = data->doc->data->doc.getCatalog()->getPage(data->index + 1);
+
+ int rotation = p->getRotate();
+ switch (rotation) {
+ case 90:
+ return Page::Landscape;
+ break;
+ case 180:
+ return Page::UpsideDown;
+ break;
+ case 270:
+ return Page::Seascape;
+ break;
+ default:
+ return Page::Portrait;
+ }
+}
+
+QValueList<Link*> Page::links() const
+{
+ QValueList<Link*> popplerLinks;
+
+#if defined(HAVE_SPLASH)
+ Links *xpdfLinks = data->doc->data->doc.getLinks(data->index + 1);
+ for (int i = 0; i < xpdfLinks->getNumLinks(); ++i)
+ {
+ ::Link *xpdfLink = xpdfLinks->getLink(i);
+
+ double left, top, right, bottom;
+ int leftAux, topAux, rightAux, bottomAux;
+ xpdfLink->getRect( &left, &top, &right, &bottom );
+ QRect linkArea;
+
+ data->doc->data->m_outputDev->cvtUserToDev( left, top, &leftAux, &topAux );
+ data->doc->data->m_outputDev->cvtUserToDev( right, bottom, &rightAux, &bottomAux );
+ linkArea.setLeft(leftAux);
+ linkArea.setTop(topAux);
+ linkArea.setRight(rightAux);
+ linkArea.setBottom(bottomAux);
+
+ if (!xpdfLink->isOk()) continue;
+
+ Link *popplerLink = NULL;
+ ::LinkAction *a = xpdfLink->getAction();
+ if ( a )
+ {
+ switch ( a->getKind() )
+ {
+ case actionGoTo:
+ {
+ LinkGoTo * g = (LinkGoTo *) a;
+ // create link: no ext file, namedDest, object pointer
+ popplerLink = new LinkGoto( linkArea, QString::null, LinkDestination( LinkDestinationData(g->getDest(), g->getNamedDest(), data->doc->data ) ) );
+ }
+ break;
+
+ case actionGoToR:
+ {
+ LinkGoToR * g = (LinkGoToR *) a;
+ // copy link file
+ const QString fileName = UnicodeParsedString( g->getFileName() );
+ // ceate link: fileName, namedDest, object pointer
+ popplerLink = new LinkGoto( linkArea, fileName, LinkDestination( LinkDestinationData(g->getDest(), g->getNamedDest(), data->doc->data ) ) );
+ }
+ break;
+
+ case actionLaunch:
+ {
+ LinkLaunch * e = (LinkLaunch *)a;
+ GooString * p = e->getParams();
+ popplerLink = new LinkExecute( linkArea, e->getFileName()->getCString(), p ? p->getCString() : 0 );
+ }
+ break;
+
+ case actionNamed:
+ {
+ const char * name = ((LinkNamed *)a)->getName()->getCString();
+ if ( !strcmp( name, "NextPage" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::PageNext );
+ else if ( !strcmp( name, "PrevPage" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::PagePrev );
+ else if ( !strcmp( name, "FirstPage" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::PageFirst );
+ else if ( !strcmp( name, "LastPage" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::PageLast );
+ else if ( !strcmp( name, "GoBack" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::HistoryBack );
+ else if ( !strcmp( name, "GoForward" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::HistoryForward );
+ else if ( !strcmp( name, "Quit" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::Quit );
+ else if ( !strcmp( name, "GoToPage" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::GoToPage );
+ else if ( !strcmp( name, "Find" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::Find );
+ else if ( !strcmp( name, "FullScreen" ) )
+ popplerLink = new LinkAction( linkArea, LinkAction::Presentation );
+ else if ( !strcmp( name, "Close" ) )
+ {
+ // acroread closes the document always, doesnt care whether
+ // its presentation mode or not
+ // popplerLink = new LinkAction( linkArea, LinkAction::EndPresentation );
+ popplerLink = new LinkAction( linkArea, LinkAction::Close );
+ }
+ else
+ {
+ // TODO
+ }
+ }
+ break;
+
+ case actionURI:
+ {
+ popplerLink = new LinkBrowse( linkArea, ((LinkURI *)a)->getURI()->getCString() );
+ }
+ break;
+
+ case actionMovie:
+ case actionSound:
+ case actionRendition:
+ case actionJavaScript:
+ break;
+
+ case actionUnknown:
+ break;
+ }
+ }
+
+ if (popplerLink)
+ {
+ popplerLinks.append(popplerLink);
+ }
+ }
+
+ delete xpdfLinks;
+#endif
+
+ return popplerLinks;
+}
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.cc b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.cc
new file mode 100644
index 00000000000..2388a1b5216
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.cc
@@ -0,0 +1,147 @@
+/* poppler-private.h: qt interface to poppler
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005-2008, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2006, Kristian Høgsberg <krh@bitplanet.net>
+ * Copyright (C) 2006, Wilfried Huss <Wilfried.Huss@gmx.at>
+ * Copyright (C) 2007, Pino Toscano <pino@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "poppler-private.h"
+#include "poppler-link-qt3.h"
+
+#include <qstring.h>
+
+#include <Outline.h>
+#include <Link.h>
+
+namespace Poppler {
+
+/* borrowed from kpdf */
+QString unicodeToQString(Unicode* u, int len)
+{
+ QString ret;
+ ret.setLength(len);
+ QChar* qch = (QChar*) ret.unicode();
+ for (;len;--len)
+ *qch++ = (QChar) *u++;
+ return ret;
+}
+
+QString UnicodeParsedString(GooString *s1)
+{
+ GBool isUnicode;
+ int i;
+ Unicode u;
+ QString result;
+ if ( ( s1->getChar(0) & 0xff ) == 0xfe && ( s1->getChar(1) & 0xff ) == 0xff )
+ {
+ isUnicode = gTrue;
+ i = 2;
+ }
+ else
+ {
+ isUnicode = gFalse;
+ i = 0;
+ }
+ while ( i < s1->getLength() )
+ {
+ if ( isUnicode )
+ {
+ u = ( ( s1->getChar(i) & 0xff ) << 8 ) | ( s1->getChar(i+1) & 0xff );
+ i += 2;
+ }
+ else
+ {
+ u = s1->getChar(i) & 0xff;
+ ++i;
+ }
+ result += unicodeToQString( &u, 1 );
+ }
+ return result;
+}
+
+GooString *QStringToGooString(const QString &s)
+{
+ int len = s.length();
+ char *cstring = (char *)gmallocn(s.length(), sizeof(char));
+ for (int i = 0; i < len; ++i)
+ cstring[i] = s.at(i).unicode();
+ GooString *ret = new GooString(cstring, len);
+ gfree(cstring);
+ return ret;
+}
+
+
+void DocumentData::addTocChildren( QDomDocument * docSyn, QDomNode * parent, GooList * items )
+{
+ int numItems = items->getLength();
+ for ( int i = 0; i < numItems; ++i )
+ {
+ // iterate over every object in 'items'
+ OutlineItem * outlineItem = (OutlineItem *)items->get( i );
+
+ // 1. create element using outlineItem's title as tagName
+ QString name;
+ Unicode * uniChar = outlineItem->getTitle();
+ int titleLength = outlineItem->getTitleLength();
+ name = unicodeToQString(uniChar, titleLength);
+ if ( name.isEmpty() )
+ continue;
+
+ QDomElement item = docSyn->createElement( name );
+ parent->appendChild( item );
+
+ // 2. find the page the link refers to
+ ::LinkAction * a = outlineItem->getAction();
+ if ( a && ( a->getKind() == actionGoTo || a->getKind() == actionGoToR ) )
+ {
+ // page number is contained/referenced in a LinkGoTo
+ LinkGoTo * g = static_cast< LinkGoTo * >( a );
+ LinkDest * destination = g->getDest();
+ if ( !destination && g->getNamedDest() )
+ {
+ // no 'destination' but an internal 'named reference'. we could
+ // get the destination for the page now, but it's VERY time consuming,
+ // so better storing the reference and provide the viewport on demand
+ GooString *s = g->getNamedDest();
+ QChar *charArray = new QChar[s->getLength()];
+ for (int i = 0; i < s->getLength(); ++i) charArray[i] = QChar(s->getCString()[i]);
+ QString aux(charArray, s->getLength());
+ item.setAttribute( "DestinationName", aux );
+ delete[] charArray;
+ }
+ else if ( destination && destination->isOk() )
+ {
+ LinkDestinationData ldd(destination, NULL, this);
+ item.setAttribute( "Destination", LinkDestination(ldd).toString() );
+ }
+ if ( a->getKind() == actionGoToR )
+ {
+ LinkGoToR * g2 = static_cast< LinkGoToR * >( a );
+ item.setAttribute( "ExternalFileName", g2->getFileName()->getCString() );
+ }
+ }
+
+ // 3. recursively descend over children
+ outlineItem->open();
+ GooList * children = outlineItem->getKids();
+ if ( children )
+ addTocChildren( docSyn, &item, children );
+ }
+}
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.h b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.h
new file mode 100644
index 00000000000..4351d686642
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-private.h
@@ -0,0 +1,92 @@
+/* poppler-private.h: qt interface to poppler
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005-2008, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2006, Kristian Høgsberg <krh@bitplanet.net>
+ * Copyright (C) 2006, Wilfried Huss <Wilfried.Huss@gmx.at>
+ * Copyright (C) 2007, Pino Toscano <pino@kde.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <qdom.h>
+
+#include <config.h>
+#include <Object.h>
+#include <PDFDoc.h>
+#include <FontInfo.h>
+#if defined(HAVE_SPLASH)
+#include <SplashOutputDev.h>
+#else
+class SplashOutputDev;
+#endif
+
+namespace Poppler {
+
+class DocumentData;
+
+QString unicodeToQString(Unicode* u, int len);
+
+QString UnicodeParsedString(GooString *s1);
+
+GooString *QStringToGooString(const QString &s);
+
+class LinkDestinationData {
+ public:
+ LinkDestinationData( LinkDest *l, GooString *nd, Poppler::DocumentData *pdfdoc ) : ld(l), namedDest(nd), doc(pdfdoc)
+ {
+ }
+
+ LinkDest *ld;
+ GooString *namedDest;
+ Poppler::DocumentData *doc;
+};
+
+class DocumentData {
+ public:
+ DocumentData(GooString *filePath, GooString *password) : doc(filePath,password), m_fontInfoScanner(0), m_outputDev(0) {}
+
+ ~DocumentData()
+ {
+#if defined(HAVE_SPLASH)
+ delete m_outputDev;
+#endif
+ delete m_fontInfoScanner;
+ }
+
+ SplashOutputDev *getOutputDev()
+ {
+#if defined(HAVE_SPLASH)
+ if (!m_outputDev)
+ {
+ SplashColor white;
+ white[0] = 255;
+ white[1] = 255;
+ white[2] = 255;
+ m_outputDev = new SplashOutputDev(splashModeXBGR8, 4, gFalse, white);
+ m_outputDev->startDoc(doc.getXRef());
+ }
+#endif
+ return m_outputDev;
+ }
+
+ void addTocChildren( QDomDocument * docSyn, QDomNode * parent, GooList * items );
+
+ class PDFDoc doc;
+ bool locked;
+ FontInfoScanner *m_fontInfoScanner;
+ SplashOutputDev *m_outputDev;
+};
+
+}
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-qt.h b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-qt.h
new file mode 100644
index 00000000000..a6b1e6ec14e
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/poppler-qt.h
@@ -0,0 +1,310 @@
+/* poppler-qt.h: qt interface to poppler
+ * Copyright (C) 2005, Net Integration Technologies, Inc.
+ * Copyright (C) 2005, Tobias Koening <tokoe@kde.org>
+ * Copyright (C) 2005-2007, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2005-2006, Stefan Kebekus <stefan.kebekus@math.uni-koeln.de>
+ * Copyright (C) 2006, Wilfried Huss <Wilfried.Huss@gmx.at>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __POPPLER_QT_H__
+#define __POPPLER_QT_H__
+
+#include "poppler-link-qt3.h"
+#include "poppler-page-transition.h"
+
+#include <qcstring.h>
+#include <qdatetime.h>
+#include <qdom.h>
+#include <qpixmap.h>
+
+namespace Poppler {
+
+class Document;
+class Page;
+
+/* A rectangle on a page, with coordinates in PDF points. */
+class Rectangle
+{
+ public:
+ Rectangle(double x1 = 0, double y1 = 0, double x2 = 0, double y2 = 0) :
+ m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2) {}
+ bool isNull() const { return m_x1 == 0 && m_y1 == 0 && m_x2 == 0 && m_y2 == 0; }
+
+ double m_x1;
+ double m_y1;
+ double m_x2;
+ double m_y2;
+};
+
+class TextBox
+{
+ public:
+ TextBox(const QString& text, const Rectangle &bBox) :
+ m_text(text), m_bBox(bBox) {};
+
+ QString getText() const { return m_text; };
+ Rectangle getBoundingBox() const { return m_bBox; };
+
+ private:
+ QString m_text;
+ Rectangle m_bBox;
+};
+
+
+/**
+ Container class for information about a font within a PDF document
+*/
+class FontInfoData;
+class FontInfo {
+public:
+ enum Type {
+ unknown,
+ Type1,
+ Type1C,
+ Type1COT,
+ Type3,
+ TrueType,
+ TrueTypeOT,
+ CIDType0,
+ CIDType0C,
+ CIDType0COT,
+ CIDTrueType,
+ CIDTrueTypeOT
+ };
+
+ /**
+ Create a new font information container
+ */
+ FontInfo( const QString &fontName, const bool isEmbedded,
+ const bool isSubset, Type type );
+
+ FontInfo();
+
+ FontInfo( const FontInfo &fi );
+
+ ~FontInfo();
+
+ /**
+ The name of the font. Can be QString::null if the font has no name
+ */
+ const QString &name() const;
+
+ /**
+ Whether the font is embedded in the file, or not
+
+ \return true if the font is embedded
+ */
+ bool isEmbedded() const;
+
+ /**
+ Whether the font provided is only a subset of the full
+ font or not. This only has meaning if the font is embedded.
+
+ \return true if the font is only a subset
+ */
+ bool isSubset() const;
+
+ /**
+ The type of font encoding
+ */
+ Type type() const;
+
+ const QString &typeName() const;
+
+private:
+ FontInfoData *data;
+};
+
+class PageData;
+class Page {
+ friend class Document;
+ public:
+ ~Page();
+ void renderToPixmap(QPixmap **q, int x, int y, int w, int h, double xres, double yres, bool doLinks = false) const;
+
+ /**
+ This is a convenience function that is equivalent to
+ renderToPixmap() with xres and yres set to 72.0. We keep it
+ only for binary compatibility
+
+ \sa renderToImage()
+ */
+ void renderToPixmap(QPixmap **q, int x, int y, int w, int h, bool doLinks = false) const;
+
+ /**
+ \brief Render the page to a QImage using the Splash renderer
+
+ This method can be used to render the page to a QImage. It
+ uses the "Splash" rendering engine.
+
+ \param xres horizontal resolution of the graphics device,
+ in dots per inch (defaults to 72 dpi)
+
+ \param yres vertical resolution of the graphics device, in
+ dots per inch (defaults to 72 dpi)
+
+ \returns a QImage of the page.
+
+ \sa renderToPixmap()
+ */
+ QImage renderToImage(double xres = 72.0, double yres = 72.0, bool doLinks = false) const;
+
+ /**
+ * Returns the size of the page in points
+ **/
+ QSize pageSize() const;
+
+ /**
+ * Returns the text that is inside the Rectangle r
+ * If r is a null Rectangle all text of the page is given
+ **/
+ QString getText(const Rectangle &r) const;
+
+ QValueList<TextBox*> textList() const;
+
+ /**
+ * Returns the transition of this page
+ **/
+ PageTransition *getTransition() const;
+
+ enum Orientation {
+ Landscape,
+ Portrait,
+ Seascape,
+ UpsideDown
+ };
+
+ /**
+ * The orientation of the page
+ **/
+ Orientation orientation() const;
+
+ /**
+ Gets the links of the page once it has been rendered if doLinks was true
+ */
+ QValueList<Link*> links() const;
+
+ private:
+ Page(const Document *doc, int index);
+ PageData *data;
+};
+
+class DocumentData;
+
+class Document {
+ friend class Page;
+
+public:
+ enum PageMode {
+ UseNone,
+ UseOutlines,
+ UseThumbs,
+ FullScreen,
+ UseOC
+ };
+
+ static Document *load(const QString & filePath);
+
+ Page *getPage(int index) const{ return new Page(this, index); }
+
+ int getNumPages() const;
+
+ PageMode getPageMode() const;
+
+ bool unlock(const QCString &password);
+
+ bool isLocked() const;
+
+ QDateTime getDate( const QString & data ) const;
+ QString getInfo( const QString & data ) const;
+ bool isEncrypted() const;
+ bool isLinearized() const;
+ bool okToPrint() const;
+ bool okToChange() const;
+ bool okToCopy() const;
+ bool okToAddNotes() const;
+ double getPDFVersion() const;
+ /**
+ The version of the PDF specification that the document
+ conforms to
+
+ \param major an optional pointer to a variable where store the
+ "major" number of the version
+ \param minor an optional pointer to a variable where store the
+ "minor" number of the version
+
+ \since 0.12
+ */
+ void getPdfVersion(int *major, int *minor) const;
+
+ bool print(const QString &fileName, QValueList<int> pageList, double hDPI, double vDPI, int rotate);
+
+ // If you are using QPrinter you can get paper size doing
+ // QPrinter dummy(QPrinter::PrinterResolution);
+ // dummy.setFullPage(true);
+ // dummy.setPageSize(thePageSizeYouWant);
+ // QPaintDeviceMetrics metrics(&dummy);
+ // int width = metrics.width();
+ // int height = metrics.height();
+ bool print(const QString &fileName, QValueList<int> pageList, double hDPI, double vDPI, int rotate, int paperWidth, int paperHeight);
+
+ /**
+ The fonts within the PDF document.
+
+ \note this can take a very long time to run with a large
+ document. You may wish to use the call below if you have more
+ than say 20 pages
+ */
+ QValueList<FontInfo> fonts() const;
+
+ /**
+ \overload
+
+ \param numPages the number of pages to scan
+ \param fontList pointer to the list where the font information
+ should be placed
+
+ \return false if the end of the document has been reached
+ */
+ bool scanForFonts( int numPages, QValueList<FontInfo> *fontList ) const;
+
+ /**
+ Gets the TOC of the Document, it is application responsabiliy to delete
+ it when no longer needed
+
+ * In the tree the tag name is the 'screen' name of the entry. A tag can have
+ * attributes. Here follows the list of tag attributes with meaning:
+ * - Destination: A string description of the referred destination
+ * - DestinationName: A 'named reference' to the viewport that must be converted
+ * using linkDestination( *destination_name* )
+ * - ExternalFileName: A link to a external filename
+
+ \returns NULL if the Document does not have TOC
+ */
+ QDomDocument *toc() const;
+
+ LinkDestination *linkDestination( const QString &name );
+
+ ~Document();
+
+private:
+ DocumentData *data;
+ Document(DocumentData *dataA);
+};
+
+}
+#endif
diff --git a/Build/source/libs/poppler/poppler-0.12.4/qt/test-poppler-qt.cpp b/Build/source/libs/poppler/poppler-0.12.4/qt/test-poppler-qt.cpp
new file mode 100644
index 00000000000..d97954b8ba7
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.12.4/qt/test-poppler-qt.cpp
@@ -0,0 +1,122 @@
+#include <qapplication.h>
+#include <qpainter.h>
+#include <qpixmap.h>
+#include <qwidget.h>
+#include <qlabel.h>
+#include <qmessagebox.h>
+#include <qfile.h>
+#include <ctype.h>
+#include <poppler-qt.h>
+#include <stdlib.h>
+
+class PDFDisplay : public QWidget // picture display widget
+{
+public:
+ PDFDisplay( Poppler::Document *d );
+ ~PDFDisplay();
+protected:
+ void paintEvent( QPaintEvent * );
+ void keyPressEvent( QKeyEvent * );
+private:
+ void display();
+
+ int currentPage;
+ QPixmap *pixmap;
+ Poppler::Document *doc;
+};
+
+PDFDisplay::PDFDisplay( Poppler::Document *d )
+{
+ doc = d;
+ pixmap = 0;
+ currentPage = 0;
+ display();
+}
+
+PDFDisplay::~PDFDisplay()
+{
+ delete doc;
+ delete pixmap;
+}
+
+void PDFDisplay::paintEvent( QPaintEvent *e )
+{
+ QPainter paint( this ); // paint widget
+ if (pixmap)
+ paint.drawPixmap(0, 0, *pixmap);
+}
+
+void PDFDisplay::keyPressEvent( QKeyEvent *e )
+{
+ if (e->key() == Qt::Key_Down)
+ {
+ if (currentPage + 1 < doc->getNumPages())
+ {
+ currentPage++;
+ display();
+ }
+ }
+ else if (e->key() == Qt::Key_Up)
+ {
+ if (currentPage > 0)
+ {
+ currentPage--;
+ display();
+ }
+ }
+}
+
+void PDFDisplay::display()
+{
+ if (doc) {
+ Poppler::Page *page = doc->getPage(currentPage);
+ if (page) {
+ delete pixmap;
+ page->renderToPixmap(&pixmap, -1, -1, -1, -1);
+ delete page;
+ update();
+ }
+ } else {
+ printf("doc not loaded\n");
+ }
+}
+
+int main( int argc, char **argv )
+{
+ QApplication a( argc, argv ); // QApplication required!
+
+ if ( argc < 2 || (argc == 3 && strcmp(argv[2], "-extract") != 0) || argc > 3)
+ {
+ // use argument as file name
+ printf("usage: test-poppler-qt filename [-extract]\n");
+ exit(1);
+ }
+
+ Poppler::Document *doc = Poppler::Document::load(argv[1]);
+ if (!doc)
+ {
+ printf("doc not loaded\n");
+ exit(1);
+ }
+
+ if (argc == 2)
+ {
+ PDFDisplay test( doc ); // create picture display
+ a.setMainWidget( &test); // set main widget
+ test.setCaption("Poppler-Qt Test");
+ test.show(); // show it
+
+ return a.exec(); // start event loop
+ }
+ else
+ {
+ Poppler::Page *page = doc->getPage(0);
+
+ QLabel *l = new QLabel(page->getText(Poppler::Rectangle()), 0);
+ l->show();
+ a.setMainWidget(l); // set main widget
+ delete page;
+ delete doc;
+ return a.exec();
+ }
+}