From 415856bdd4f48ab4f2732996f0bae58595092bbe Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 5 Apr 2011 14:26:38 +0000 Subject: Tue Apr 5 14:26:38 UTC 2011 --- community/epdfview/0001-r329.patch | 79 ++++++++++++++++++ community/epdfview/0002-r354.patch | 77 +++++++++++++++++ community/epdfview/0003-r357.patch | 134 ++++++++++++++++++++++++++++++ community/epdfview/PKGBUILD | 53 ++++++++++++ community/epdfview/epdfview.desktop.patch | 11 +++ community/epdfview/epdfview.install | 12 +++ community/epdfview/m_Linearized.patch | 24 ++++++ 7 files changed, 390 insertions(+) create mode 100644 community/epdfview/0001-r329.patch create mode 100644 community/epdfview/0002-r354.patch create mode 100644 community/epdfview/0003-r357.patch create mode 100644 community/epdfview/PKGBUILD create mode 100644 community/epdfview/epdfview.desktop.patch create mode 100644 community/epdfview/epdfview.install create mode 100644 community/epdfview/m_Linearized.patch (limited to 'community/epdfview') diff --git a/community/epdfview/0001-r329.patch b/community/epdfview/0001-r329.patch new file mode 100644 index 000000000..ae6e4a3a1 --- /dev/null +++ b/community/epdfview/0001-r329.patch @@ -0,0 +1,79 @@ +From dc6c25e8f1a7a3845fa7d14b9dfbd22deb9dd6ef Mon Sep 17 00:00:00 2001 +From: jordi +Date: Fri, 20 Mar 2009 08:06:32 +0000 +Subject: [PATCH 1/3] I had to change the return valud of MainView's scroll-event handler, since Gtk+ expects a gboolean that tells whether to propagate the event. Since we didn't return any value, depending on the compilation flags the mouse wheel didn't work at all. + +This closes #118. + +git-svn-id: svn://svn.emma-soft.com/epdfview@329 cb4bfb15-1111-0410-82e2-95233c8f1c7e +--- + trunk/src/gtk/MainView.cxx | 21 ++++++++++++++------- + trunk/src/gtk/PageView.cxx | 7 ------- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/trunk/src/gtk/MainView.cxx b/trunk/src/gtk/MainView.cxx +index b983bff..4a52cd3 100644 +--- a/trunk/src/gtk/MainView.cxx ++++ b/trunk/src/gtk/MainView.cxx +@@ -77,7 +77,7 @@ static void main_window_zoom_in_cb (GtkWidget *, gpointer); + static void main_window_zoom_out_cb (GtkWidget *, gpointer); + static void main_window_zoom_width_cb (GtkToggleAction *, gpointer); + static void main_window_set_page_mode (GtkRadioAction *, GtkRadioAction *, gpointer); +-static void main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data); ++static gboolean main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data); + + #if defined (HAVE_CUPS) + static void main_window_print_cb (GtkWidget *, gpointer); +@@ -1479,18 +1479,25 @@ main_window_set_page_mode (GtkRadioAction *action, GtkRadioAction *current, gpoi + pter->setPageMode (mode); + } + +-void ++gboolean + main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data) + { + g_assert ( NULL != data && "The data parameter is NULL."); + + MainPter *pter = (MainPter *)data; + // Only zoom when the CTRL-Button is down... +- if ( !(event->state & GDK_CONTROL_MASK) ) return; +- if ( event->direction == GDK_SCROLL_UP ) { +- pter->zoomInActivated (); +- } else if ( event->direction == GDK_SCROLL_DOWN ) { +- pter->zoomOutActivated (); ++ if ( GDK_CONTROL_MASK == (event->state & GDK_CONTROL_MASK) ) ++ { ++ if ( event->direction == GDK_SCROLL_UP ) ++ { ++ pter->zoomInActivated (); ++ } ++ else if ( event->direction == GDK_SCROLL_DOWN ) ++ { ++ pter->zoomOutActivated (); ++ } ++ return TRUE; + } ++ return FALSE; + } + +diff --git a/trunk/src/gtk/PageView.cxx b/trunk/src/gtk/PageView.cxx +index 0546561..adaa823 100644 +--- a/trunk/src/gtk/PageView.cxx ++++ b/trunk/src/gtk/PageView.cxx +@@ -527,13 +527,6 @@ page_view_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data) + { + g_assert ( NULL != data && "The data parameter is NULL."); + +- // don't scroll when the CRTL-Button is down, because then the page should +- // actually be zoomed and not scrolled. Zooming is handelt by the MainView +- // class. +- if ( event->state & GDK_CONTROL_MASK ) +- { +- return FALSE; +- } + PagePter *pter = (PagePter *)data; + GtkAdjustment *adjustment = + gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (widget)); +-- +1.7.4 + diff --git a/community/epdfview/0002-r354.patch b/community/epdfview/0002-r354.patch new file mode 100644 index 000000000..771b93a01 --- /dev/null +++ b/community/epdfview/0002-r354.patch @@ -0,0 +1,77 @@ +From d8d3dac5fc3fe519b443d22f74258af4aaf48d0c Mon Sep 17 00:00:00 2001 +From: jordi +Date: Mon, 11 Oct 2010 15:53:47 +0000 +Subject: [PATCH 2/3] Added support for poppler's API changes in 0.15.0 by Michal Schmidt. + +git-svn-id: svn://svn.emma-soft.com/epdfview@354 cb4bfb15-1111-0410-82e2-95233c8f1c7e +--- + trunk/configure.ac | 16 ++++++++++------ + trunk/src/PDFDocument.cxx | 12 +++++++++++- + 2 files changed, 21 insertions(+), 7 deletions(-) + +diff --git a/trunk/configure.ac b/trunk/configure.ac +index 7ce0ddc..6cbd0e2 100644 +--- a/trunk/configure.ac ++++ b/trunk/configure.ac +@@ -40,18 +40,22 @@ PKG_CHECK_MODULES([POPPLER], [poppler-glib >= $POPPLER_REQUIRED gdk-2.0 >= $GTK2 + AC_SUBST([POPPLER_CFLAGS]) + AC_SUBST([POPPLER_LIBS]) + dnl Check if we have poppler version 0.5.2 or higher. +-PKG_CHECK_EXISTS([poppler-glib >= 0.5.2], [have_poppler_052=yes]) +-if test "x$have_poppler_052" = "xyes"; then ++PKG_CHECK_EXISTS([poppler-glib >= 0.5.2], [have_poppler_0_5_2=yes]) ++if test "x$have_poppler_0_5_2" = "xyes"; then + AC_DEFINE([HAVE_POPPLER_0_5_2], [1], [Define to 1 if you have Poppler version 0.5.2 or higher.]) + fi +-PKG_CHECK_EXISTS([poppler-glib >= 0.6], [have_poppler_060=yes]) +-if test "x$have_poppler_060" = "xyes"; then ++PKG_CHECK_EXISTS([poppler-glib >= 0.6], [have_poppler_0_6_0=yes]) ++if test "x$have_poppler_0_6_0" = "xyes"; then + AC_DEFINE([HAVE_POPPLER_0_6_0], [1], [Define to 1 if you have Poppler version 0.6.0 or higher.]) + fi +-PKG_CHECK_EXISTS([poppler-glib >= 0.8], [have_poppler_080=yes]) +-if test "x$have_poppler_080" = "xyes"; then ++PKG_CHECK_EXISTS([poppler-glib >= 0.8], [have_poppler_0_8_0=yes]) ++if test "x$have_poppler_0_8_0" = "xyes"; then + AC_DEFINE([HAVE_POPPLER_0_8_0], [1], [Define to 1 if you have Poppler version 0.8.0 or higher.]) + fi ++PKG_CHECK_EXISTS([poppler-glib >= 0.15], [have_poppler_0_15_0=yes]) ++if test "x$have_poppler_0_15_0" = "xyes"; then ++ AC_DEFINE([HAVE_POPPLER_0_15_0], [1], [Define to 1 if you have Poppler version 0.15.0 or higher.]) ++fi + + EPDFVIEW_PATH_CUPS([CUPS], [have_cups=yes]) + AM_CONDITIONAL(cups_printing, test "x$have_cups" = "xyes") +diff --git a/trunk/src/PDFDocument.cxx b/trunk/src/PDFDocument.cxx +index 6567e9b..a590a20 100644 +--- a/trunk/src/PDFDocument.cxx ++++ b/trunk/src/PDFDocument.cxx +@@ -678,14 +678,24 @@ PDFDocument::setTextSelection (DocumentRectangle *rect) + gdouble pageWidth, pageHeight; + poppler_page_get_size(page, &pageWidth, &pageHeight); + ++#if defined (HAVE_POPPLER_0_15_0) ++ PopplerRectangle textRect = { rect->getX1() / getZoom(), ++ rect->getY1() / getZoom(), ++ rect->getX2() / getZoom(), ++ rect->getY2() / getZoom()}; ++#else // !HAVE_POPPLER_0_15_0 + //for get text we must exchange y coordinate, don't ask me where logic here. + PopplerRectangle textRect = { rect->getX1() / getZoom(), + (pageHeight - rect->getY2() / getZoom()), + rect->getX2() * getZoom() / getZoom(), + (pageHeight - rect->getY1() / getZoom())}; ++#endif // HAVE_POPPLER_0_15_0 + repairEmpty(textRect); + +-#if defined (HAVE_POPPLER_0_6_0) ++#if defined (HAVE_POPPLER_0_15_0) ++ gchar *text = poppler_page_get_selected_text(page, POPPLER_SELECTION_GLYPH, ++ &textRect); ++#elif defined (HAVE_POPPLER_0_6_0) + gchar *text = poppler_page_get_text(page, POPPLER_SELECTION_GLYPH, + &textRect); + #else // !HAVE_POPPLER_0_6_0 +-- +1.7.4 + diff --git a/community/epdfview/0003-r357.patch b/community/epdfview/0003-r357.patch new file mode 100644 index 000000000..c1aa9a1a6 --- /dev/null +++ b/community/epdfview/0003-r357.patch @@ -0,0 +1,134 @@ +From 951a8f66463c0dc38fa05931bd8df7b45707f6e8 Mon Sep 17 00:00:00 2001 +From: jordi +Date: Wed, 17 Nov 2010 16:02:45 +0000 +Subject: [PATCH 3/3] Applied patch by Dennis Sheil to use the correct variable type for linearization since poppler version 0.15.1. + +git-svn-id: svn://svn.emma-soft.com/epdfview@357 cb4bfb15-1111-0410-82e2-95233c8f1c7e +--- + trunk/THANKS | 1 + + trunk/configure.ac | 5 +++++ + trunk/src/IDocument.cxx | 15 ++++++++++++++- + trunk/src/IDocument.h | 8 ++++++++ + trunk/src/PDFDocument.cxx | 4 ++++ + 5 files changed, 32 insertions(+), 1 deletions(-) + +diff --git a/trunk/THANKS b/trunk/THANKS +index 48dcb2b..7888d1a 100644 +--- a/trunk/THANKS ++++ b/trunk/THANKS +@@ -4,6 +4,7 @@ contributions: + - Alain Mendizabal , for his Basque translation. + - Alex Dedul , for his patch. + - Alexander , for corrections in the Polish translation. ++ - Dennis Sheil , for his patch. + - Enrico Tröger , for his full screen patch and others. + - Daniel Nylander , for his Swedish translation. + - Daniel Pielmeie , for his patches. +diff --git a/trunk/configure.ac b/trunk/configure.ac +index 6cbd0e2..f8316b0 100644 +--- a/trunk/configure.ac ++++ b/trunk/configure.ac +@@ -56,6 +56,11 @@ PKG_CHECK_EXISTS([poppler-glib >= 0.15], [have_poppler_0_15_0=yes]) + if test "x$have_poppler_0_15_0" = "xyes"; then + AC_DEFINE([HAVE_POPPLER_0_15_0], [1], [Define to 1 if you have Poppler version 0.15.0 or higher.]) + fi ++PKG_CHECK_EXISTS([poppler-glib >= 0.15.1], [have_poppler_0_15_1=yes]) ++if test "x$have_poppler_0_15_1" = "xyes"; then ++ AC_DEFINE([HAVE_POPPLER_0_15_1], [1], [Define to 1 if you have Poppler version 0.15.1 or higher.]) ++fi ++ + + EPDFVIEW_PATH_CUPS([CUPS], [have_cups=yes]) + AM_CONDITIONAL(cups_printing, test "x$have_cups" = "xyes") +diff --git a/trunk/src/IDocument.cxx b/trunk/src/IDocument.cxx +index f1b71c5..f560f34 100644 +--- a/trunk/src/IDocument.cxx ++++ b/trunk/src/IDocument.cxx +@@ -755,11 +755,16 @@ IDocument::setFormat (gchar *format) + const gchar * + IDocument::getLinearized () + { ++#if defined (HAVE_POPPLER_0_15_1) ++ if ( m_Linearized ) return "Yes"; ++ else return "No"; ++#else + if ( NULL == m_Linearized ) + { + return "No"; + } + return m_Linearized; ++#endif + } + + /// +@@ -768,14 +773,22 @@ IDocument::getLinearized () + /// @param linearized Set to "Yes" if the document is linearized. "No" + /// otherwise. IDocument will free it. + /// ++#if defined (HAVE_POPPLER_0_15_1) + void +-IDocument::setLinearized (gchar *linearized) ++IDocument::setLinearized (gboolean *linearized) ++{ ++ m_Linearized = linearized; ++} ++#else ++void ++ IDocument::setLinearized (gchar *linearized) + { + gchar *oldLinearized = m_Linearized; + m_Linearized = g_strdup (linearized); + g_free (oldLinearized); + g_free (linearized); + } ++#endif + + /// + /// @brief Gets the document's creation date. +diff --git a/trunk/src/IDocument.h b/trunk/src/IDocument.h +index fbb3954..32aadf2 100644 +--- a/trunk/src/IDocument.h ++++ b/trunk/src/IDocument.h +@@ -306,7 +306,11 @@ namespace ePDFView + const gchar *getFormat (void); + void setFormat (gchar *format); + const gchar *getLinearized (void); ++#if defined (HAVE_POPPLER_0_15_1) ++ void setLinearized (gboolean *linearized); ++#else + void setLinearized (gchar *linearized); ++#endif + const gchar *getCreationDate (void); + void setCreationDate (gchar *date); + const gchar *getModifiedDate (void); +@@ -382,7 +386,11 @@ namespace ePDFView + /// The document's keyword. + gchar *m_Keywords; + /// Tells if the document is linearized or not. ++#if defined (HAVE_POPPLER_0_15_1) ++ gboolean *m_Linearized; ++#else + gchar *m_Linearized; ++#endif + /// The document's modification date and time. + gchar *m_ModifiedDate; + /// @brief The list of classes that will receive notifications +diff --git a/trunk/src/PDFDocument.cxx b/trunk/src/PDFDocument.cxx +index a590a20..4d425cd 100644 +--- a/trunk/src/PDFDocument.cxx ++++ b/trunk/src/PDFDocument.cxx +@@ -324,7 +324,11 @@ PDFDocument::loadMetadata (void) + gchar *format = NULL; + gchar *keywords = NULL; + PopplerPageLayout layout = POPPLER_PAGE_LAYOUT_UNSET; ++#if defined (HAVE_POPPLER_0_15_1) ++ gboolean *linearized = NULL; ++#else + gchar *linearized = NULL; ++#endif + GTime modDate; + PopplerPageMode mode = POPPLER_PAGE_MODE_UNSET; + gchar *producer = NULL; +-- +1.7.4 + diff --git a/community/epdfview/PKGBUILD b/community/epdfview/PKGBUILD new file mode 100644 index 000000000..4f3f34fd4 --- /dev/null +++ b/community/epdfview/PKGBUILD @@ -0,0 +1,53 @@ +# $Id: PKGBUILD 39086 2011-02-06 14:04:55Z schuay $ +# Contributor: Tom K +# Contributor: Thayer Williams +# Maintainer: schuay + +pkgname=epdfview +pkgver=0.1.7 +pkgrel=8 +pkgdesc="A free lightweight PDF document viewer." +url="http://www.emma-soft.com/projects/epdfview/" +arch=('i686' 'x86_64') +license=('GPL') +depends=('poppler-glib>=0.16.2' 'desktop-file-utils' 'hicolor-icon-theme') +makedepends=('pkgconfig') +install='epdfview.install' +source=("http://www.emma-soft.com/projects/${pkgname}/chrome/site/releases/${pkgname}-${pkgver}.tar.bz2" + "${pkgname}.desktop.patch" + "0001-r329.patch" + "0002-r354.patch" + "0003-r357.patch" + "m_Linearized.patch") +md5sums=('1919bb19c16ef0a97d48b0a8303d3c7b' + 'fbf22bbabdbb7544db615ac5775d57e2' + '14397ae0baa69fb9791ccaa35c243470' + '45a3b7d56f28f94a230c476ce2de54f0' + '932da23c324326c5baea3b5beae12ad5' + '53fe971f039a4aaf1243e60d59973cf6') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np0 -i "${srcdir}/${pkgname}.desktop.patch" + patch -Np2 -i "${srcdir}/0001-r329.patch" # fixes mousewheel scrolling. + patch -Np2 -i "${srcdir}/0002-r354.patch" # patches poppler api changes, can + patch -Np2 -i "${srcdir}/0003-r357.patch" # be removed with a new epdfview release. + patch -Np0 -i "${srcdir}/m_Linearized.patch" # fix segfault on close. + + # apply changes from r354 and r357 to configure.ac + touch ChangeLog # missing ChangeLog results in + autoreconf -fi # error during autoreconf + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var + make +} +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + for size in 24 32 48; do + install -Dm644 data/icon_${pkgname}-${size}.png \ + "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${pkgname}.png" + done +} diff --git a/community/epdfview/epdfview.desktop.patch b/community/epdfview/epdfview.desktop.patch new file mode 100644 index 000000000..d86fc3088 --- /dev/null +++ b/community/epdfview/epdfview.desktop.patch @@ -0,0 +1,11 @@ +--- data/epdfview.desktop.bak 2009-04-05 16:55:56.000000000 -0700 ++++ data/epdfview.desktop 2009-04-05 16:56:33.000000000 -0700 +@@ -7,7 +7,7 @@ + GenericName=PDF Viewer + GenericName[ca]=Visor PDF + GenericName[es]=Visor PDF +-Icon=icon_epdfview-48 ++Icon=epdfview + Name=ePDFViewer + Name[ca]=ePDFViewer + Name[es]=ePDFViewer diff --git a/community/epdfview/epdfview.install b/community/epdfview/epdfview.install new file mode 100644 index 000000000..c317fbaca --- /dev/null +++ b/community/epdfview/epdfview.install @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/community/epdfview/m_Linearized.patch b/community/epdfview/m_Linearized.patch new file mode 100644 index 000000000..7cad8d9c6 --- /dev/null +++ b/community/epdfview/m_Linearized.patch @@ -0,0 +1,24 @@ +--- src/IDocument.cxx 2011-02-06 14:45:34.173334040 +0100 ++++ src/IDocument.cxx 2011-02-06 14:51:23.173334040 +0100 +@@ -135,7 +135,11 @@ + m_FindPage = 0; + m_Format = NULL; + m_Keywords = NULL; ++#if defined (HAVE_POPPLER_0_15_1) ++ m_Linearized = FALSE; ++#else + m_Linearized = NULL; ++#endif + m_ModifiedDate = NULL; + m_PageCache = NULL; + m_PageCacheAge = 0; +@@ -164,7 +168,9 @@ + g_free (m_FileName); + g_free (m_Format); + g_free (m_Keywords); ++#if !defined (HAVE_POPPLER_0_15_1) + g_free (m_Linearized); ++#endif + g_free (m_ModifiedDate); + g_free (m_Password); + g_free (m_Producer); -- cgit v1.2.3-54-g00ecf