summaryrefslogtreecommitdiff
path: root/community/epdfview
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/epdfview
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/epdfview')
-rw-r--r--community/epdfview/0001-r329.patch79
-rw-r--r--community/epdfview/0002-r354.patch77
-rw-r--r--community/epdfview/0003-r357.patch134
-rw-r--r--community/epdfview/PKGBUILD53
-rw-r--r--community/epdfview/epdfview.desktop.patch11
-rw-r--r--community/epdfview/epdfview.install12
-rw-r--r--community/epdfview/m_Linearized.patch24
7 files changed, 390 insertions, 0 deletions
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 <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+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 <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+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 <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+Date: Wed, 17 Nov 2010 16:02:45 +0000
+Subject: [PATCH 3/3] Applied patch by Dennis Sheil <dennis-poppler@vartmp.com> 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 <alainmendi@gmail.com>, for his Basque translation.
+ - Alex Dedul <rotmer@gmail.com>, for his patch.
+ - Alexander <lothalev@gmail.com>, for corrections in the Polish translation.
++ - Dennis Sheil <dennis-poppler@vartmp.com>, for his patch.
+ - Enrico Tröger <enrico.troeger@uvena.de>, for his full screen patch and others.
+ - Daniel Nylander <po@danielnylander.se>, for his Swedish translation.
+ - Daniel Pielmeie <daniel.pielmeie@googlemail.com>, 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 <tomk@runbox.com>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+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);