Auto sync2gitlab import of evince-3.28.4-16.el8.src.rpm

This commit is contained in:
James Antill 2022-05-26 06:48:36 -04:00
parent 754f2b182a
commit 543ae23983
17 changed files with 4972 additions and 1 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/evince-3.28.4.tar.xz

View File

@ -0,0 +1,86 @@
From 8e20f99f5d73175112b37203ba127519db90aff0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 10 Jan 2017 15:10:44 +0000
Subject: [PATCH] Resolves: deb#762530 rhbz#1061177 add man pages
for evince-previewer and evince-thumbnailer
---
data/Makefile.am | 2 +-
data/evince-previewer.1 | 24 ++++++++++++++++++++++++
data/evince-thumbnailer.1 | 20 ++++++++++++++++++++
3 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 data/evince-previewer.1
create mode 100644 data/evince-thumbnailer.1
diff --git a/data/Makefile.am b/data/Makefile.am
index 44fcf33..a45a3cb 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -7,7 +7,7 @@ install-data-local: update-icon-cache
# man file
#
-man_MANS=evince.1
+man_MANS=evince.1 evince-previewer.1 evince-thumbnailer.1
#
# UI descriptions
diff --git a/data/evince-previewer.1 b/data/evince-previewer.1
new file mode 100644
index 0000000..1841509
--- /dev/null
+++ b/data/evince-previewer.1
@@ -0,0 +1,24 @@
+.TH evince\-previewer 1 2015\-07\-28
+.SH NAME
+evince\-previewer \- show a printing preview of PostScript and PDF documents
+.SH SYNOPSIS
+\fBevince\-previewer\fR [options] \fBinput\fR
+.SH DESCRIPTION
+evince\-previewer is a GNOME program to
+show a printing preview from PostScript (PS), Portable Document Format
+(PDF), DjVu and DVI files.
+.SH OPTIONS
+evince\-previewer obeys all normal GNOME and GTK+ command line options.
+The application options are
+.TP
+\fB\-u, \-\-unlink\-tempfile\fR
+Delete the temporary file
+.TP
+\fB\-p, \-\-print-settings=FILE\fR
+Print settings file
+.SH "SEE ALSO"
+\fBevince\fR(1),
+\fBgnome\-options\fR(7),
+\fBgtk\-options\fR(7).
+.PP
+https://wiki.gnome.org/Apps/Evince
diff --git a/data/evince-thumbnailer.1 b/data/evince-thumbnailer.1
new file mode 100644
index 0000000..25ddfec
--- /dev/null
+++ b/data/evince-thumbnailer.1
@@ -0,0 +1,20 @@
+.TH evince\-thumbnailer 1 2007\-01\-15
+.SH NAME
+evince\-thumbnailer \- create png thumbnails from PostScript and PDF documents
+.SH SYNOPSIS
+\fBevince\-thumbnailer\fR [\-s \fBsize\fR] \fBinput\fR \fBoutput\fR
+.SH DESCRIPTION
+evince\-thumbnailer is a GNOME program to
+create thumbnails from PostScript (PS), Portable Document Format
+(PDF), DjVu and DVI files.
+.SH OPTIONS
+evince obeys all normal GNOME and GTK+
+command line options. The only option \-s \fIsize
+\fRmakes it possible to choose the vertical size
+of the created thumbnail.
+.SH "SEE ALSO"
+\fBevince\fR(1),
+\fBgnome\-options\fR(7),
+\fBgtk\-options\fR(7).
+.PP
+http://www.gnome.org/projects/evince/
--
2.9.3

View File

@ -0,0 +1,55 @@
From 22b047c3db84a34fc5fb5076474640bcd3917c73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 17 Feb 2017 09:28:18 +0000
Subject: [PATCH] Revert "Bump poppler requirements to 0.33.0"
This reverts commit 5a4912bdbbf3c8000e77a093cf366276eeb56283.
---
backend/pdf/ev-poppler.cc | 4 ++++
configure.ac | 7 ++++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 214094f..f3a6510 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -3508,7 +3508,11 @@ pdf_document_annotations_save_annotation (EvDocumentAnnotations *document_annota
poppler_rect.y2 = height - ev_rect.y1;
if (poppler_annot_markup_has_popup (markup))
+#ifdef HAVE_POPPLER_ANNOT_MARKUP_SET_POPUP_RECTANGLE
poppler_annot_markup_set_popup_rectangle (markup, &poppler_rect);
+#else
+ poppler_annot_markup_set_popup (markup, &poppler_rect);
+#endif
else
poppler_annot_markup_set_popup (markup, &poppler_rect);
}
diff --git a/configure.ac b/configure.ac
index 23a390f..a01392a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -536,7 +536,7 @@ AC_ARG_ENABLE([pdf],
[enable_pdf=yes])
if test "x$enable_pdf" = "xyes"; then
- POPPLER_REQUIRED=0.33.0
+ POPPLER_REQUIRED=0.24.0
PKG_CHECK_MODULES(POPPLER, poppler-glib >= $POPPLER_REQUIRED libxml-2.0 >= $LIBXML_REQUIRED,enable_pdf=yes,enable_pdf=no)
if test "x$enable_pdf" = "xyes"; then
@@ -549,6 +549,11 @@ if test "x$enable_pdf" = "xyes"; then
if test x$enable_cairo_ps = xyes; then
AC_DEFINE([HAVE_CAIRO_PS], [1], [defined if cairo-ps is available])
fi
+
+ evince_save_LIBS=$LIBS
+ LIBS="$LIBS $POPPLER_LIBS"
+ AC_CHECK_FUNCS(poppler_annot_markup_set_popup_rectangle)
+ LIBS=$evince_save_LIBS
else
AC_MSG_ERROR("PDF support is disabled since poppler-glib library version $POPPLER_REQUIRED or newer not found")
fi
--
2.9.3

1
EMPTY
View File

@ -1 +0,0 @@

View File

@ -0,0 +1,76 @@
--- evince-3.21.92/browser-plugin/EvBrowserPluginMain.cpp
+++ evince-3.21.92/browser-plugin/EvBrowserPluginMain.cpp
@@ -38,11 +38,40 @@ static EvBrowserPlugin *pluginForInstanc
return static_cast<EvBrowserPlugin *>(instance->pdata);
}
+static gboolean gtkToolkitIsCompatible(NPP instance)
+{
+ NPNToolkitType toolkit_type = NPNVGtk12;
+ NPError error;
+
+ error = browser->getvalue(instance, NPNVToolkit, &toolkit_type);
+
+ if (error == NPERR_NO_ERROR &&
+ (toolkit_type == NPNVGtk12 ||
+ toolkit_type == NPNVGtk2))
+ return FALSE;
+ else
+ return TRUE;
+}
+
NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char *argn[], char *argv[], NPSavedData *savedData)
{
if (!instance)
return NPERR_INVALID_INSTANCE_ERROR;
+ if (!gtkToolkitIsCompatible(instance))
+ return NPERR_GENERIC_ERROR;
+
+ GBytes *resourceData = g_resources_lookup_data("/org/gnome/evince/browser/ui/evince-browser.css", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
+ if (resourceData) {
+ GtkCssProvider *cssProvider = gtk_css_provider_new();
+
+ gtk_css_provider_load_from_data(cssProvider, static_cast<const gchar *>(g_bytes_get_data(resourceData, nullptr)), g_bytes_get_size(resourceData), nullptr);
+ g_bytes_unref(resourceData);
+
+ gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref(cssProvider);
+ }
+
return EvBrowserPlugin::create(instance)->initialize(pluginType, mode, argc, argn, argv, savedData);
}
@@ -197,6 +226,11 @@ NPError NP_Initialize(NPNetscapeFuncs *b
if ((browserFuncs->version >> 8) > NP_VERSION_MAJOR)
return NPERR_INCOMPATIBLE_VERSION_ERROR;
+ browser = browserFuncs;
+
+ if (!gtkToolkitIsCompatible(NULL))
+ return NPERR_GENERIC_ERROR;
+
if (!ev_init())
return NPERR_GENERIC_ERROR;
@@ -207,20 +241,8 @@ NPError NP_Initialize(NPNetscapeFuncs *b
return NPERR_GENERIC_ERROR;
#endif
- browser = browserFuncs;
initializePluginFuncs(pluginFuncs);
- GBytes *resourceData = g_resources_lookup_data("/org/gnome/evince/browser/ui/evince-browser.css", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
- if (resourceData) {
- GtkCssProvider *cssProvider = gtk_css_provider_new();
-
- gtk_css_provider_load_from_data(cssProvider, static_cast<const gchar *>(g_bytes_get_data(resourceData, nullptr)), g_bytes_get_size(resourceData), nullptr);
- g_bytes_unref(resourceData);
-
- gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- g_object_unref(cssProvider);
- }
-
return NPERR_NO_ERROR;
}

View File

@ -0,0 +1,72 @@
From 3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7 Mon Sep 17 00:00:00 2001
From: Jason Crain <jcrain@src.gnome.org>
Date: Mon, 15 Apr 2019 23:06:36 -0600
Subject: [PATCH] tiff: Handle failure from TIFFReadRGBAImageOriented
The TIFFReadRGBAImageOriented function returns zero if it was unable to
read the image. Return NULL in this case instead of displaying
uninitialized memory.
Fixes #1129
---
backend/tiff/tiff-document.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/backend/tiff/tiff-document.c b/backend/tiff/tiff-document.c
index 7715031b..38bb3bd8 100644
--- a/backend/tiff/tiff-document.c
+++ b/backend/tiff/tiff-document.c
@@ -292,18 +292,22 @@ tiff_document_render (EvDocument *document,
g_warning("Failed to allocate memory for rendering.");
return NULL;
}
-
+
+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff,
+ width, height,
+ (uint32 *)pixels,
+ orientation, 0)) {
+ g_warning ("Failed to read TIFF image.");
+ g_free (pixels);
+ return NULL;
+ }
+
surface = cairo_image_surface_create_for_data (pixels,
CAIRO_FORMAT_RGB24,
width, height,
rowstride);
cairo_surface_set_user_data (surface, &key,
pixels, (cairo_destroy_func_t)g_free);
-
- TIFFReadRGBAImageOriented (tiff_document->tiff,
- width, height,
- (uint32 *)pixels,
- orientation, 0);
pop_handlers ();
/* Convert the format returned by libtiff to
@@ -384,13 +388,17 @@ tiff_document_get_thumbnail (EvDocument *document,
if (!pixels)
return NULL;
+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff,
+ width, height,
+ (uint32 *)pixels,
+ ORIENTATION_TOPLEFT, 0)) {
+ g_free (pixels);
+ return NULL;
+ }
+
pixbuf = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE, 8,
width, height, rowstride,
(GdkPixbufDestroyNotify) g_free, NULL);
- TIFFReadRGBAImageOriented (tiff_document->tiff,
- width, height,
- (uint32 *)pixels,
- ORIENTATION_TOPLEFT, 0);
pop_handlers ();
ev_render_context_compute_scaled_size (rc, width, height * (x_res / y_res),
--
2.21.0

465
evince-3.28.2-covscan.patch Normal file
View File

@ -0,0 +1,465 @@
--- evince-3.28.2/backend/comics/comics-document.c
+++ evince-3.28.2/backend/comics/comics-document.c
@@ -453,23 +453,27 @@ comics_document_render_pixbuf (EvDocumen
name = ev_archive_get_entry_pathname (comics_document->archive);
if (g_strcmp0 (name, page_path) == 0) {
- size_t size = ev_archive_get_entry_size (comics_document->archive);
+ gint64 size = ev_archive_get_entry_size (comics_document->archive);
char *buf;
ssize_t read;
- buf = g_malloc (size);
- read = ev_archive_read_data (comics_document->archive, buf, size, &error);
- if (read <= 0) {
- if (read < 0) {
- g_warning ("Fatal error reading '%s' in archive: %s", name, error->message);
- g_error_free (error);
+ if (size < 0) {
+ g_warning ("Wrong size of entry '%s'.", name);
+ } else {
+ buf = g_malloc (size);
+ read = ev_archive_read_data (comics_document->archive, buf, size, &error);
+ if (read <= 0) {
+ if (read < 0) {
+ g_warning ("Fatal error reading '%s' in archive: %s", name, error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Read an empty file from the archive");
+ }
} else {
- g_warning ("Read an empty file from the archive");
+ gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL);
}
- } else {
- gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL);
+ g_free (buf);
}
- g_free (buf);
gdk_pixbuf_loader_close (loader, NULL);
break;
}
--- evince-3.28.2/backend/pdf/ev-poppler.cc
+++ evince-3.28.2/backend/pdf/ev-poppler.cc
@@ -859,6 +859,7 @@ pdf_document_get_info (EvDocument *docum
break;
case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT:
info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT;
+ break;
case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT:
info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT;
break;
--- evince-3.28.2/cut-n-paste/libgd/gd-two-lines-renderer.c
+++ evince-3.28.2/cut-n-paste/libgd/gd-two-lines-renderer.c
@@ -281,7 +281,7 @@ gd_two_lines_renderer_render (GtkCellRen
GtkStyleContext *context;
gint line_one_height;
GtkStateFlags state;
- GdkRectangle area, render_area = *cell_area;
+ GdkRectangle area, render_area;
gint xpad, ypad, x_offset_1, x_offset_2, y_offset;
PangoLayout *layout_one, *layout_two;
PangoRectangle layout_rect;
--- evince-3.28.2/cut-n-paste/synctex/synctex_parser.c
+++ evince-3.28.2/cut-n-paste/synctex/synctex_parser.c
@@ -2878,6 +2878,7 @@ int _synctex_open(const char * output, c
build_output[0] = '\0';
} else {
if (build_output != strcpy(build_output,output)) {
+ free(build_output);
return -4;
}
build_output[lpc-output]='\0';
@@ -2886,15 +2887,18 @@ int _synctex_open(const char * output, c
/* Append a path separator if necessary. */
if (!SYNCTEX_IS_PATH_SEPARATOR(build_output[strlen(build_directory)-1])) {
if (build_output != strcat(build_output,"/")) {
+ free(build_output);
return -2;
}
}
/* Append the last path component of the output. */
if (build_output != strcat(build_output,lpc)) {
+ free(build_output);
return -3;
}
return __synctex_open(build_output,synctex_name_ref,file_ref,add_quotes,io_mode_ref);
}
+ free(build_output);
}
return -1;
}
--- evince-3.28.2/cut-n-paste/synctex/synctex_parser_utils.c
+++ evince-3.28.2/cut-n-paste/synctex/synctex_parser_utils.c
@@ -292,6 +292,7 @@ char * _synctex_merge_strings(const char
size_t len = strlen(temp);
if(UINT_MAX-len<size) {
_synctex_error("! _synctex_merge_strings: Capacity exceeded.");
+ va_end(arg);
return NULL;
}
size+=len;
@@ -312,6 +313,7 @@ char * _synctex_merge_strings(const char
_synctex_error("! _synctex_merge_strings: Copy problem");
free(result);
result = NULL;
+ va_end(arg);
return NULL;
}
dest += size;
@@ -393,7 +395,7 @@ int _synctex_get_name(const char * outpu
free(dir_name);
dir_name = NULL;
free(core_name);
- dir_name = NULL;
+ core_name = NULL;
return -2;
}
dir_name[size] = '\0';
@@ -487,6 +489,12 @@ int _synctex_get_name(const char * outpu
/* set up the returned values */
* synctex_name_ref = synctex_name;
* io_mode_ref = io_mode;
+ free(dir_name);
+ dir_name = NULL;
+ free(core_name);
+ core_name = NULL;
+ free(quoted_core_name);
+ quoted_core_name = NULL;
return 0;
}
return -1;/* bad argument */
--- evince-3.28.2/cut-n-paste/unarr/rar/filter-rar.c
+++ evince-3.28.2/cut-n-paste/unarr/rar/filter-rar.c
@@ -273,8 +273,10 @@ static struct RARFilter *rar_create_filt
filter->prog = prog;
filter->globaldatalen = globaldatalen > RARProgramSystemGlobalSize ? globaldatalen : RARProgramSystemGlobalSize;
filter->globaldata = calloc(1, filter->globaldatalen);
- if (!filter->globaldata)
+ if (!filter->globaldata) {
+ free (filter);
return NULL;
+ }
if (globaldata)
memcpy(filter->globaldata, globaldata, globaldatalen);
if (registers)
--- evince-3.28.2/libdocument/ev-document.c
+++ evince-3.28.2/libdocument/ev-document.c
@@ -496,6 +496,9 @@ ev_document_load_stream (EvDocument
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
klass = EV_DOCUMENT_GET_CLASS (document);
+
+ g_return_val_if_fail (klass != NULL, FALSE);
+
if (!klass->load_stream) {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
"Backend does not support loading from stream");
@@ -544,6 +547,9 @@ ev_document_load_gfile (EvDocument
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
klass = EV_DOCUMENT_GET_CLASS (document);
+
+ g_return_val_if_fail (klass != NULL, FALSE);
+
if (!klass->load_gfile) {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
"Backend does not support loading from GFile");
@@ -867,6 +873,9 @@ ev_document_get_backend_info (EvDocument
g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE);
klass = EV_DOCUMENT_GET_CLASS (document);
+
+ g_return_val_if_fail (klass != NULL, FALSE);
+
if (klass->get_backend_info == NULL)
return FALSE;
--- evince-3.28.2/libview/ev-pixbuf-cache.c
+++ evince-3.28.2/libview/ev-pixbuf-cache.c
@@ -337,6 +337,11 @@ job_finished_cb (EvJob *job,
job_info = find_job_cache (pixbuf_cache, job_render->page);
+ if (job_info == NULL) {
+ g_warning ("Job info not found.");
+ return;
+ }
+
if (ev_job_is_failed (job)) {
job_info->job = NULL;
g_object_unref (job);
@@ -721,6 +726,11 @@ add_job_if_needed (EvPixbufCache *pixbuf
gint device_scale = get_device_scale (pixbuf_cache);
gint width, height;
+ if (job_info == NULL) {
+ g_warning ("Adding job with NULL info.");
+ return;
+ }
+
if (job_info->job)
return;
--- evince-3.28.2/libview/ev-print-operation.c
+++ evince-3.28.2/libview/ev-print-operation.c
@@ -181,6 +181,7 @@ ev_print_operation_set_current_page (EvP
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
g_return_if_fail (current_page >= 0);
class->set_current_page (op, current_page);
@@ -193,6 +194,7 @@ ev_print_operation_set_print_settings (E
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
g_return_if_fail (GTK_IS_PRINT_SETTINGS (print_settings));
class->set_print_settings (op, print_settings);
@@ -210,6 +212,7 @@ ev_print_operation_get_print_settings (E
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
+ g_return_val_if_fail (class != NULL, NULL);
return class->get_print_settings (op);
}
@@ -221,6 +224,7 @@ ev_print_operation_set_default_page_setu
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
g_return_if_fail (GTK_IS_PAGE_SETUP (page_setup));
class->set_default_page_setup (op, page_setup);
@@ -238,6 +242,7 @@ ev_print_operation_get_default_page_setu
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
+ g_return_val_if_fail (class != NULL, NULL);
return class->get_default_page_setup (op);
}
@@ -249,6 +254,7 @@ ev_print_operation_set_job_name (EvPrint
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
g_return_if_fail (job_name != NULL);
class->set_job_name (op, job_name);
@@ -260,6 +266,7 @@ ev_print_operation_get_job_name (EvPrint
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
+ g_return_val_if_fail (class != NULL, NULL);
return class->get_job_name (op);
}
@@ -271,6 +278,7 @@ ev_print_operation_run (EvPrintOperation
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
class->run (op, parent);
}
@@ -281,6 +289,7 @@ ev_print_operation_cancel (EvPrintOperat
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
class->cancel (op);
}
@@ -292,6 +301,7 @@ ev_print_operation_get_error (EvPrintOpe
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
class->get_error (op, error);
}
@@ -303,6 +313,7 @@ ev_print_operation_set_embed_page_setup
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
+ g_return_if_fail (class != NULL);
class->set_embed_page_setup (op, embed);
}
@@ -313,6 +324,7 @@ ev_print_operation_get_embed_page_setup
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), FALSE);
+ g_return_val_if_fail (class != NULL, FALSE);
return class->get_embed_page_setup (op);
}
--- evince-3.28.2/libview/ev-timeline.c
+++ evince-3.28.2/libview/ev-timeline.c
@@ -289,9 +289,15 @@ ev_timeline_new (guint duration)
void
ev_timeline_start (EvTimeline *timeline)
{
+ EvTimelineClass *klass;
+
g_return_if_fail (EV_IS_TIMELINE (timeline));
- EV_TIMELINE_GET_CLASS (timeline)->start (timeline);
+ klass = EV_TIMELINE_GET_CLASS (timeline);
+
+ g_return_if_fail (klass != NULL);
+
+ klass->start (timeline);
}
void
--- evince-3.28.2/libview/ev-view.c
+++ evince-3.28.2/libview/ev-view.c
@@ -1147,7 +1147,7 @@ ensure_rectangle_is_visible (EvView *vie
if (rect->x < adj_value) {
value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN);
gtk_adjustment_set_value (view->hadjustment, value);
- } else if (rect->x + rect->height > adj_value + allocation.width) {
+ } else if (rect->x + rect->width > adj_value + allocation.width) {
value = MIN (gtk_adjustment_get_upper (adjustment), rect->x + rect->width -
allocation.width + MARGIN);
gtk_adjustment_set_value (view->hadjustment, value);
@@ -1777,6 +1777,11 @@ goto_fitv_dest (EvView *view, EvLinkDest
page = ev_link_dest_get_page (dest);
+ if (page < 0) {
+ g_warning ("Link does not contain a page.");
+ return;
+ }
+
left = ev_link_dest_get_left (dest, &change_left);
doc_point.x = change_left ? left : 0;
doc_point.y = 0;
@@ -1813,6 +1818,11 @@ goto_fith_dest (EvView *view, EvLinkDest
page = ev_link_dest_get_page (dest);
+ if (page < 0) {
+ g_warning ("Link does not contain a page.");
+ return;
+ }
+
top = ev_link_dest_get_top (dest, &change_top);
doc_point.x = 0;
doc_point.y = change_top ? top : 0;
@@ -1846,6 +1856,11 @@ goto_fit_dest (EvView *view, EvLinkDest
page = ev_link_dest_get_page (dest);
+ if (page < 0) {
+ g_warning ("Link does not contain a page.");
+ return;
+ }
+
if (view->allow_links_change_zoom) {
double zoom;
gdouble doc_width, doc_height;
--- evince-3.28.2/libview/ev-view-presentation.c
+++ evince-3.28.2/libview/ev-view-presentation.c
@@ -448,7 +448,7 @@ ev_view_presentation_update_current_page
{
gint jump;
- if (page < 0 || page >= ev_document_get_n_pages (pview->document))
+ if (page >= ev_document_get_n_pages (pview->document))
return;
ev_view_presentation_animation_cancel (pview);
--- evince-3.28.2/shell/ev-sidebar.c
+++ evince-3.28.2/shell/ev-sidebar.c
@@ -471,18 +471,19 @@ ev_sidebar_add_page (EvSidebar *ev_sid
/* Set the first item added as active */
- gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter);
- gtk_tree_model_get (ev_sidebar->priv->page_model,
- &iter,
- PAGE_COLUMN_TITLE, &label_title,
- PAGE_COLUMN_NOTEBOOK_INDEX, &index,
- -1);
+ if (gtk_tree_model_get_iter_first (ev_sidebar->priv->page_model, &iter)) {
+ gtk_tree_model_get (ev_sidebar->priv->page_model,
+ &iter,
+ PAGE_COLUMN_TITLE, &label_title,
+ PAGE_COLUMN_NOTEBOOK_INDEX, &index,
+ -1);
- gtk_menu_set_active (GTK_MENU (ev_sidebar->priv->menu), index);
- gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
- index);
- g_free (label_title);
+ gtk_menu_set_active (GTK_MENU (ev_sidebar->priv->menu), index);
+ gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), label_title);
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
+ index);
+ g_free (label_title);
+ }
}
static gboolean
--- evince-3.28.2/shell/ev-sidebar-thumbnails.c
+++ evince-3.28.2/shell/ev-sidebar-thumbnails.c
@@ -658,11 +658,11 @@ ev_sidebar_thumbnails_fill_model (EvSide
int i;
gint prev_width = -1;
gint prev_height = -1;
+ cairo_surface_t *loading_icon = NULL;
for (i = 0; i < sidebar_thumbnails->priv->n_pages; i++) {
gchar *page_label;
gchar *page_string;
- cairo_surface_t *loading_icon = NULL;
gint width, height;
page_label = ev_document_get_page_label (priv->document, i);
--- evince-3.28.2/shell/ev-window.c
+++ evince-3.28.2/shell/ev-window.c
@@ -3121,10 +3121,10 @@ ev_window_load_print_settings_from_metad
for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) {
gchar *value = NULL;
- ev_metadata_get_string (window->priv->metadata,
- document_print_settings[i], &value);
- gtk_print_settings_set (print_settings,
- document_print_settings[i], value);
+ if (ev_metadata_get_string (window->priv->metadata,
+ document_print_settings[i], &value))
+ gtk_print_settings_set (print_settings,
+ document_print_settings[i], value);
}
}
@@ -4705,12 +4705,16 @@ ev_window_cmd_bookmarks_add (GSimpleActi
gchar *page_label;
bm.page = ev_document_model_get_page (window->priv->model);
- page_label = ev_document_get_page_label (window->priv->document, bm.page);
- bm.title = g_strdup_printf (_("Page %s"), page_label);
- g_free (page_label);
+ if (bm.page >= 0) {
+ page_label = ev_document_get_page_label (window->priv->document, bm.page);
+ bm.title = g_strdup_printf (_("Page %s"), page_label);
+ g_free (page_label);
- /* EvBookmarks takes ownership of bookmark */
- ev_bookmarks_add (window->priv->bookmarks, &bm);
+ /* EvBookmarks takes ownership of bookmark */
+ ev_bookmarks_add (window->priv->bookmarks, &bm);
+ } else {
+ g_warning ("Bookmarking of a page failed.");
+ }
}
static void

View File

@ -0,0 +1,203 @@
From 1f250861fa2ec6a7117f183459e62ac285d85db6 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Tue, 2 Mar 2021 18:40:56 +0100
Subject: [PATCH] window: Show password dialog again
Show password dialog when trying to open a document for which we've
cancelled a password dialog before in recent view.
This is achieved by adding a signal "cancelled" to EvPasswordView since
only successfull entering of password was signaled before by "unlock" signal.
We also need to unregister current document with EvApplication and clear its uri
there to be able to open other documents in current window.
---
shell/ev-application.c | 16 ++++++++++++++++
shell/ev-application.h | 1 +
shell/ev-password-view.c | 14 ++++++++++++++
shell/ev-password-view.h | 3 ++-
shell/ev-window.c | 23 ++++++++++++++++++++++-
5 files changed, 55 insertions(+), 2 deletions(-)
From ef2d7ca9734c6a2e3ba0a80279d944352d355295 Mon Sep 17 00:00:00 2001
From: Tom Schoonjans <Tom.Schoonjans@rfi.ac.uk>
Date: Wed, 9 Jun 2021 06:39:48 +0100
Subject: [PATCH] ev-application: fix compilation error when DBus is disabled
---
shell/ev-application.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 23871d9a..7a3b69ba 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -539,6 +539,7 @@ ev_application_unregister_uri (EvApplication *application,
g_error_free (error);
} else {
g_variant_unref (value);
+ application->doc_registered = FALSE;
}
}
#endif /* ENABLE_DBUS */
@@ -1166,6 +1167,23 @@ ev_application_get_uri (EvApplication *application)
return application->uri;
}
+/**
+ * ev_application_clear_uri:
+ * @application: The instance of the application.
+ *
+ * This unregisters current uri and clears it so that another document
+ * can be opened in this instance. E.g. after cancelled password dialog
+ * in recent view.
+ */
+void
+ev_application_clear_uri (EvApplication *application)
+{
+#ifdef ENABLE_DBUS
+ ev_application_unregister_uri (application, application->uri);
+#endif
+ g_clear_pointer (&application->uri, g_free);
+}
+
/**
* ev_application_get_media_keys:
* @application: The instance of the application.
diff --git a/shell/ev-application.h b/shell/ev-application.h
index 00a7a18b..f9b43ab3 100644
--- a/shell/ev-application.h
+++ b/shell/ev-application.h
@@ -66,6 +66,7 @@ void ev_application_open_uri_list (EvApplication *application,
gboolean ev_application_has_window (EvApplication *application);
guint ev_application_get_n_windows (EvApplication *application);
const gchar * ev_application_get_uri (EvApplication *application);
+void ev_application_clear_uri (EvApplication *application);
GObject *ev_application_get_media_keys (EvApplication *application);
const gchar *ev_application_get_dot_dir (EvApplication *application,
diff --git a/shell/ev-password-view.c b/shell/ev-password-view.c
index 9a916d55..0dab3c51 100644
--- a/shell/ev-password-view.c
+++ b/shell/ev-password-view.c
@@ -38,6 +38,7 @@
enum {
UNLOCK,
+ CANCELLED,
LAST_SIGNAL
};
struct _EvPasswordViewPrivate {
@@ -91,6 +92,15 @@ ev_password_view_class_init (EvPasswordViewClass *class)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ password_view_signals[CANCELLED] =
+ g_signal_new ("cancelled",
+ G_TYPE_FROM_CLASS (g_object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (EvPasswordViewClass, cancelled),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
g_type_class_add_private (g_object_class, sizeof (EvPasswordViewPrivate));
g_object_class->finalize = ev_password_view_finalize;
@@ -183,6 +193,10 @@ ev_password_dialog_got_response (GtkDialog *dialog,
g_strdup (gtk_entry_get_text (GTK_ENTRY (password_view->priv->password_entry)));
g_signal_emit (password_view, password_view_signals[UNLOCK], 0);
+ } else if (response_id == GTK_RESPONSE_CANCEL ||
+ response_id == GTK_RESPONSE_CLOSE ||
+ response_id == GTK_RESPONSE_DELETE_EVENT) {
+ g_signal_emit (password_view, password_view_signals[CANCELLED], 0);
}
gtk_widget_destroy (GTK_WIDGET (dialog));
diff --git a/shell/ev-password-view.h b/shell/ev-password-view.h
index c3fc5bbc..e279c612 100644
--- a/shell/ev-password-view.h
+++ b/shell/ev-password-view.h
@@ -40,7 +40,8 @@ struct _EvPasswordViewClass {
GtkViewportClass parent_class;
/* signals */
- void (*unlock) (EvPasswordView *self);
+ void (*unlock) (EvPasswordView *self);
+ void (*cancelled) (EvPasswordView *self);
};
GType ev_password_view_get_type (void) G_GNUC_CONST;
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 077d577d..f728fa77 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -239,6 +239,8 @@ typedef struct {
/* Send to */
gboolean has_mailto_handler;
+
+ gboolean password_view_cancelled;
};
#define EV_WINDOW_GET_PRIVATE(object) \
@@ -1804,6 +1806,7 @@ ev_window_password_view_unlock (EvWindow *ev_window)
password = ev_password_view_get_password (EV_PASSWORD_VIEW (ev_window->priv->password_view));
ev_job_load_set_password (EV_JOB_LOAD (ev_window->priv->load_job), password);
ev_job_scheduler_push_job (ev_window->priv->load_job, EV_JOB_PRIORITY_NONE);
+ ev_window->priv->password_view_cancelled = FALSE;
}
static void
@@ -1821,6 +1824,18 @@ ev_window_clear_load_job (EvWindow *ev_window)
}
}
+static void
+ev_window_password_view_cancelled (EvWindow *ev_window)
+{
+ EvWindowPrivate *priv = ev_window->priv;
+
+ priv->password_view_cancelled = TRUE;
+ if (ev_window_is_recent_view (ev_window)) {
+ ev_window_clear_load_job (ev_window);
+ ev_application_clear_uri (EV_APP);
+ }
+}
+
static void
ev_window_clear_reload_job (EvWindow *ev_window)
{
@@ -2395,7 +2410,8 @@ ev_window_open_uri (EvWindow *ev_window,
g_strdup (search_string) : NULL;
if (ev_window->priv->uri &&
- g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0) {
+ g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0 &&
+ !ev_window->priv->password_view_cancelled) {
ev_window_reload_document (ev_window, dest);
return;
}
@@ -7643,11 +7659,16 @@ ev_window_init (EvWindow *ev_window)
allow_links_change_zoom);
ev_view_set_model (EV_VIEW (ev_window->priv->view), ev_window->priv->model);
+ ev_window->priv->password_view_cancelled = FALSE;
ev_window->priv->password_view = ev_password_view_new (GTK_WINDOW (ev_window));
g_signal_connect_swapped (ev_window->priv->password_view,
"unlock",
G_CALLBACK (ev_window_password_view_unlock),
ev_window);
+ g_signal_connect_swapped (ev_window->priv->password_view,
+ "cancelled",
+ G_CALLBACK (ev_window_password_view_cancelled),
+ ev_window);
g_signal_connect_object (ev_window->priv->view, "focus_in_event",
G_CALLBACK (view_actions_focus_in_cb),
ev_window, 0);
--
2.31.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
From 9363553a3087c7dbfa93e1d342283600ceb5993b Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Fri, 22 Jun 2018 17:00:20 +0200
Subject: shell: Set application-id
Set "application-id" property for evince's GApplication
to "org.gnome.evince.Application".
An assertion warning is shown in shell if it is not set.
Even though we use G_APPLICATION_NON_UNIQUE, the application
ID is still required. See:
https://bugzilla.gnome.org/show_bug.cgi?id=646985#c2
Closes: https://gitlab.gnome.org/GNOME/evince/issues/918
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 7d546933..f173d7a4 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -65,6 +65,7 @@ struct _EvApplicationClass {
G_DEFINE_TYPE (EvApplication, ev_application, GTK_TYPE_APPLICATION)
#ifdef ENABLE_DBUS
+#define APPLICATION_DBUS_NAME "org.gnome.evince.Application"
#define APPLICATION_DBUS_OBJECT_PATH "/org/gnome/evince/Evince"
#define APPLICATION_DBUS_INTERFACE "org.gnome.evince.Application"
@@ -102,7 +103,7 @@ ev_application_new (void)
const GApplicationFlags flags = G_APPLICATION_NON_UNIQUE;
return g_object_new (EV_TYPE_APPLICATION,
- "application-id", NULL,
+ "application-id", APPLICATION_DBUS_NAME,
"flags", flags,
NULL);
}

View File

@ -0,0 +1,31 @@
From 9756fdca2efe71738d02792e839862cb5f0a0244 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Tue, 16 Feb 2021 17:15:20 +0100
Subject: [PATCH] window: Use tmp dir as containing folder for non-native file
Show the temporary directory containing the downloaded document
as containing folder for documents from remote URIs.
It fails currently since it can not open remote URIs.
---
shell/ev-window.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shell/ev-window.c b/shell/ev-window.c
index ba282e18..a1bc55f0 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -3290,6 +3290,10 @@ ev_window_cmd_open_containing_folder (GSimpleAction *action,
}
file = g_file_new_for_uri (window->priv->uri);
+ if (!g_file_is_native (file)) {
+ g_object_unref (file);
+ file = g_file_new_for_uri (ev_document_get_uri (window->priv->document));
+ }
list.next = list.prev = NULL;
list.data = file;
--
2.30.2

View File

@ -0,0 +1,55 @@
From 7c6c930f7fa164700d089d646dc8300340ca4600 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nelson=20Ben=C3=ADtez=20Le=C3=B3n?= <nbenitezl@gmail.com>
Date: Mon, 6 Apr 2020 14:38:53 -0400
Subject: [PATCH] EvFormField: allow text entries to handle clicks
so the user can interact with the text entry for
eg. placing text cursor in an arbitrary position
Fixes #1364
---
libview/ev-view.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/libview/ev-view.c b/libview/ev-view.c
index f73f0ce9..1ebcb584 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -2497,6 +2497,14 @@ ev_view_form_field_text_focus_out (GtkWidget *widget,
return FALSE;
}
+static gboolean
+ev_view_form_field_text_button_pressed (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer data)
+{
+ return GDK_EVENT_STOP;
+}
+
static GtkWidget *
ev_view_form_field_text_create_widget (EvView *view,
EvFormField *field)
@@ -2536,6 +2544,9 @@ ev_view_form_field_text_create_widget (EvView *view,
g_signal_connect_after (text, "activate",
G_CALLBACK (ev_view_form_field_destroy),
view);
+ g_signal_connect_after (text, "button-press-event",
+ G_CALLBACK (ev_view_form_field_text_button_pressed),
+ NULL);
break;
case EV_FORM_FIELD_TEXT_MULTILINE: {
GtkTextBuffer *buffer;
@@ -2554,6 +2565,9 @@ ev_view_form_field_text_create_widget (EvView *view,
g_signal_connect (buffer, "changed",
G_CALLBACK (ev_view_form_field_text_changed),
field);
+ g_signal_connect_after (text, "button-press-event",
+ G_CALLBACK (ev_view_form_field_text_button_pressed),
+ NULL);
}
break;
}
--
2.31.1

View File

@ -0,0 +1,62 @@
From 9d6ebdb168f8438449c43e63f38f687e09c8fe4f Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Thu, 5 Mar 2020 13:21:59 +0100
Subject: [PATCH] ev-view: Move annotation popup window to new position
Open annotation popup window at new position if its
annotation was moved when the popup window was hidden.
This places existing popup window the same way as when
it was created.
---
libview/ev-view.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/libview/ev-view.c b/libview/ev-view.c
index ffbe1704..43a0410d 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -3390,6 +3390,41 @@ ev_view_handle_annotation (EvView *view,
parent = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view)));
window = ev_view_create_annotation_window (view, annot, parent);
+ } else if (window && ev_annotation_markup_has_popup (EV_ANNOTATION_MARKUP (annot))) {
+ EvViewWindowChild *child;
+ EvMappingList *annots;
+ EvRectangle popup_rect;
+ EvMapping *mapping;
+ GdkPoint view_point;
+ EvPoint annotation_corner;
+
+ child = ev_view_get_window_child (view, window);
+ annots = ev_page_cache_get_annot_mapping (view->page_cache,
+ ev_annotation_get_page_index (annot));
+ mapping = ev_mapping_list_find (annots, annot);
+ ev_annotation_markup_get_rectangle (EV_ANNOTATION_MARKUP (annot),
+ &popup_rect);
+
+ popup_rect.x2 = mapping->area.x2 + popup_rect.x2 - popup_rect.x1;
+ popup_rect.y2 = mapping->area.y2 + popup_rect.y2 - popup_rect.y1;
+ popup_rect.x1 = mapping->area.x2;
+ popup_rect.y1 = mapping->area.y2;
+ g_object_set (annot,
+ "rectangle", &popup_rect,
+ "popup_is_open", TRUE,
+ NULL);
+
+ annotation_corner.x = mapping->area.x2;
+ annotation_corner.y = mapping->area.y2;
+
+ _ev_view_transform_doc_point_to_view_point (view,
+ ev_annotation_get_page_index (annot),
+ &annotation_corner,
+ &view_point);
+
+ ev_view_window_child_move (view, child,
+ child->parent_x + view_point.x - view->scroll_x,
+ child->parent_y + view_point.y - view->scroll_y);
}
ev_view_annotation_show_popup_window (view, window);
}
--
2.24.1

View File

@ -0,0 +1,395 @@
From fe9573da1278463a76b685c5cb3116d6e8241e27 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@redhat.com>
Date: Wed, 22 Jul 2020 16:26:17 +0200
Subject: [PATCH] Handle reset form action
Add new type of action EV_LINK_ACTION_TYPE_RESET_FORM for EvLinkAction
together with properties "reset-fields" and "exclude-reset-fields".
The properties controls which fields are reset and are set in PDF document.
This commit extends EvDocumentFormsInterface with new method "reset_form".
Check for poppler 0.90.0 or higher when calling its methods for resetting
of forms.
Issue #46
---
backend/pdf/ev-poppler.cc | 29 ++++++++++
libdocument/ev-document-forms.c | 10 ++++
libdocument/ev-document-forms.h | 4 ++
libdocument/ev-link-action.c | 81 ++++++++++++++++++++++++++++++++-
libdocument/ev-link-action.h | 51 +++++++++++----------
libview/ev-view.c | 4 ++
shell/ev-window.c | 15 ++++++
7 files changed, 166 insertions(+), 24 deletions(-)
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index ee9a5c9f..efffef0b 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -1721,6 +1721,23 @@ ev_link_from_action (PdfDocument *pdf_document,
case POPPLER_ACTION_JAVASCRIPT:
unimplemented_action = "POPPLER_ACTION_JAVASCRIPT";
break;
+#if POPPLER_CHECK_VERSION(0, 90, 0)
+ case POPPLER_ACTION_RESET_FORM: {
+ gboolean exclude_reset_fields;
+ GList *reset_fields = NULL;
+ GList *iter;
+
+ for (iter = action->reset_form.fields; iter; iter = iter->next)
+ reset_fields = g_list_prepend (reset_fields, g_strdup ((char *) iter->data));
+
+ exclude_reset_fields = action->reset_form.exclude;
+
+ /* The action takes the ownership of the list */
+ ev_action = ev_link_action_new_reset_form (g_list_reverse (reset_fields),
+ exclude_reset_fields);
+ break;
+ }
+#endif
case POPPLER_ACTION_UNKNOWN:
unimplemented_action = "POPPLER_ACTION_UNKNOWN";
}
@@ -2845,6 +2860,17 @@ pdf_document_forms_document_is_modified (EvDocumentForms *document)
return PDF_DOCUMENT (document)->forms_modified;
}
+static void
+pdf_document_forms_reset_form (EvDocumentForms *document,
+ EvLinkAction *action)
+{
+#if POPPLER_CHECK_VERSION(0, 90, 0)
+ poppler_document_reset_form (PDF_DOCUMENT (document)->document,
+ ev_link_action_get_reset_fields (action),
+ ev_link_action_get_exclude_reset_fields (action));
+#endif
+}
+
static gchar *
pdf_document_forms_form_field_text_get_text (EvDocumentForms *document,
EvFormField *field)
@@ -3044,6 +3068,7 @@ pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface)
{
iface->get_form_fields = pdf_document_forms_get_form_fields;
iface->document_is_modified = pdf_document_forms_document_is_modified;
+ iface->reset_form = pdf_document_forms_reset_form;
iface->form_field_text_get_text = pdf_document_forms_form_field_text_get_text;
iface->form_field_text_set_text = pdf_document_forms_form_field_text_set_text;
iface->form_field_button_set_state = pdf_document_forms_form_field_button_set_state;
diff --git a/libdocument/ev-document-forms.c b/libdocument/ev-document-forms.c
index 19417c77..1fe983b1 100644
--- a/libdocument/ev-document-forms.c
+++ b/libdocument/ev-document-forms.c
@@ -45,6 +45,16 @@ ev_document_forms_document_is_modified (EvDocumentForms *document_forms)
return (iface->document_is_modified) ? iface->document_is_modified (document_forms) : FALSE;
}
+void
+ev_document_forms_reset_form (EvDocumentForms *document_forms,
+ EvLinkAction *action)
+{
+ EvDocumentFormsInterface *iface = EV_DOCUMENT_FORMS_GET_IFACE (document_forms);
+
+ if (iface->reset_form)
+ iface->reset_form (document_forms, action);
+}
+
gchar *
ev_document_forms_form_field_text_get_text (EvDocumentForms *document_forms,
EvFormField *field)
diff --git a/libdocument/ev-document-forms.h b/libdocument/ev-document-forms.h
index 198f3eb5..f78dba6b 100644
--- a/libdocument/ev-document-forms.h
+++ b/libdocument/ev-document-forms.h
@@ -82,6 +82,8 @@ struct _EvDocumentFormsInterface
const gchar *text);
gchar *(* form_field_choice_get_text) (EvDocumentForms *document_forms,
EvFormField *field);
+ void (* reset_form) (EvDocumentForms *document_forms,
+ EvLinkAction *action);
};
GType ev_document_forms_get_type (void) G_GNUC_CONST;
@@ -122,6 +124,8 @@ void ev_document_forms_form_field_choice_set_text (EvDocumentFor
const gchar *text);
gchar *ev_document_forms_form_field_choice_get_text (EvDocumentForms *document_forms,
EvFormField *field);
+void ev_document_forms_reset_form (EvDocumentForms *document_forms,
+ EvLinkAction *action);
G_END_DECLS
diff --git a/libdocument/ev-link-action.c b/libdocument/ev-link-action.c
index 0e7761d7..cbc5d620 100644
--- a/libdocument/ev-link-action.c
+++ b/libdocument/ev-link-action.c
@@ -32,7 +32,9 @@ enum {
PROP_NAME,
PROP_SHOW_LIST,
PROP_HIDE_LIST,
- PROP_TOGGLE_LIST
+ PROP_TOGGLE_LIST,
+ PROP_RESET_FIELDS,
+ PROP_EXCLUDE_RESET_FIELDS
};
struct _EvLinkAction {
@@ -55,6 +57,8 @@ struct _EvLinkActionPrivate {
GList *show_list;
GList *hide_list;
GList *toggle_list;
+ GList *reset_fields;
+ gboolean exclude_reset_fields;
};
G_DEFINE_TYPE (EvLinkAction, ev_link_action, G_TYPE_OBJECT)
@@ -155,6 +159,34 @@ ev_link_action_get_toggle_list (EvLinkAction *self)
return self->priv->toggle_list;
}
+/**
+ * ev_link_action_get_reset_fields:
+ * @self: an #EvLinkAction
+ *
+ * Returns: (transfer none) (element-type gchar *): a list of fields to reset
+ */
+GList *
+ev_link_action_get_reset_fields (EvLinkAction *self)
+{
+ g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL);
+
+ return self->priv->reset_fields;
+}
+
+/**
+ * ev_link_action_get_exclude_reset_fields:
+ * @self: an #EvLinkAction
+ *
+ * Returns: whether to exclude reset fields when resetting form
+ */
+gboolean
+ev_link_action_get_exclude_reset_fields (EvLinkAction *self)
+{
+ g_return_val_if_fail (EV_IS_LINK_ACTION (self), NULL);
+
+ return self->priv->exclude_reset_fields;
+}
+
static void
ev_link_action_get_property (GObject *object,
guint prop_id,
@@ -193,6 +225,12 @@ ev_link_action_get_property (GObject *object,
case PROP_TOGGLE_LIST:
g_value_set_pointer (value, self->priv->toggle_list);
break;
+ case PROP_RESET_FIELDS:
+ g_value_set_pointer (value, self->priv->reset_fields);
+ break;
+ case PROP_EXCLUDE_RESET_FIELDS:
+ g_value_set_boolean (value, self->priv->exclude_reset_fields);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
prop_id,
@@ -241,6 +279,12 @@ ev_link_action_set_property (GObject *object,
case PROP_TOGGLE_LIST:
self->priv->toggle_list = g_value_get_pointer (value);
break;
+ case PROP_RESET_FIELDS:
+ self->priv->reset_fields = g_value_get_pointer (value);
+ break;
+ case PROP_EXCLUDE_RESET_FIELDS:
+ self->priv->exclude_reset_fields = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
prop_id,
@@ -296,6 +340,11 @@ ev_link_action_finalize (GObject *object)
priv->toggle_list = NULL;
}
+ if (priv->reset_fields) {
+ g_list_free_full (priv->reset_fields, g_free);
+ priv->reset_fields = NULL;
+ }
+
G_OBJECT_CLASS (ev_link_action_parent_class)->finalize (object);
}
@@ -309,6 +358,8 @@ ev_link_action_init (EvLinkAction *ev_link_action)
ev_link_action->priv->filename = NULL;
ev_link_action->priv->params = NULL;
ev_link_action->priv->name = NULL;
+ ev_link_action->priv->reset_fields = NULL;
+ ev_link_action->priv->exclude_reset_fields = FALSE;
}
static void
@@ -402,6 +453,23 @@ ev_link_action_class_init (EvLinkActionClass *ev_link_action_class)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (g_object_class,
+ PROP_RESET_FIELDS,
+ g_param_spec_pointer ("reset-fields",
+ "ResetFields",
+ "The list of fields that should be/should not be reset",
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (g_object_class,
+ PROP_EXCLUDE_RESET_FIELDS,
+ g_param_spec_boolean ("exclude-reset-fields",
+ "ExcludeResetFields",
+ "Whether to exclude/include reset-fields when resetting form",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
EvLinkAction *
@@ -474,6 +542,17 @@ ev_link_action_new_layers_state (GList *show_list,
NULL));
}
+EvLinkAction *
+ev_link_action_new_reset_form (GList *reset_fields,
+ gboolean exclude_reset_fields)
+{
+ return EV_LINK_ACTION (g_object_new (EV_TYPE_LINK_ACTION,
+ "exclude-reset-fields", exclude_reset_fields,
+ "reset-fields", reset_fields,
+ "type", EV_LINK_ACTION_TYPE_RESET_FORM,
+ NULL));
+}
+
/**
* ev_link_action_equal:
* @a: a #EvLinkAction
diff --git a/libdocument/ev-link-action.h b/libdocument/ev-link-action.h
index 3d6c5fd8..4dffeb74 100644
--- a/libdocument/ev-link-action.h
+++ b/libdocument/ev-link-action.h
@@ -47,36 +47,41 @@ typedef enum {
EV_LINK_ACTION_TYPE_EXTERNAL_URI,
EV_LINK_ACTION_TYPE_LAUNCH,
EV_LINK_ACTION_TYPE_NAMED,
- EV_LINK_ACTION_TYPE_LAYERS_STATE
+ EV_LINK_ACTION_TYPE_LAYERS_STATE,
+ EV_LINK_ACTION_TYPE_RESET_FORM
/* We'll probably fill this in more as we support the other types of
* actions */
} EvLinkActionType;
-GType ev_link_action_get_type (void) G_GNUC_CONST;
+GType ev_link_action_get_type (void) G_GNUC_CONST;
-EvLinkActionType ev_link_action_get_action_type (EvLinkAction *self);
-EvLinkDest *ev_link_action_get_dest (EvLinkAction *self);
-const gchar *ev_link_action_get_uri (EvLinkAction *self);
-const gchar *ev_link_action_get_filename (EvLinkAction *self);
-const gchar *ev_link_action_get_params (EvLinkAction *self);
-const gchar *ev_link_action_get_name (EvLinkAction *self);
-GList *ev_link_action_get_show_list (EvLinkAction *self);
-GList *ev_link_action_get_hide_list (EvLinkAction *self);
-GList *ev_link_action_get_toggle_list (EvLinkAction *self);
+EvLinkActionType ev_link_action_get_action_type (EvLinkAction *self);
+EvLinkDest *ev_link_action_get_dest (EvLinkAction *self);
+const gchar *ev_link_action_get_uri (EvLinkAction *self);
+const gchar *ev_link_action_get_filename (EvLinkAction *self);
+const gchar *ev_link_action_get_params (EvLinkAction *self);
+const gchar *ev_link_action_get_name (EvLinkAction *self);
+GList *ev_link_action_get_show_list (EvLinkAction *self);
+GList *ev_link_action_get_hide_list (EvLinkAction *self);
+GList *ev_link_action_get_toggle_list (EvLinkAction *self);
+GList *ev_link_action_get_reset_fields (EvLinkAction *self);
+gboolean ev_link_action_get_exclude_reset_fields (EvLinkAction *self);
-EvLinkAction *ev_link_action_new_dest (EvLinkDest *dest);
-EvLinkAction *ev_link_action_new_remote (EvLinkDest *dest,
- const gchar *filename);
-EvLinkAction *ev_link_action_new_external_uri (const gchar *uri);
-EvLinkAction *ev_link_action_new_launch (const gchar *filename,
- const gchar *params);
-EvLinkAction *ev_link_action_new_named (const gchar *name);
-EvLinkAction *ev_link_action_new_layers_state (GList *show_list,
- GList *hide_list,
- GList *toggle_list);
+EvLinkAction *ev_link_action_new_dest (EvLinkDest *dest);
+EvLinkAction *ev_link_action_new_remote (EvLinkDest *dest,
+ const gchar *filename);
+EvLinkAction *ev_link_action_new_external_uri (const gchar *uri);
+EvLinkAction *ev_link_action_new_launch (const gchar *filename,
+ const gchar *params);
+EvLinkAction *ev_link_action_new_named (const gchar *name);
+EvLinkAction *ev_link_action_new_layers_state (GList *show_list,
+ GList *hide_list,
+ GList *toggle_list);
+EvLinkAction *ev_link_action_new_reset_form (GList *fields,
+ gboolean exclude_fields);
-gboolean ev_link_action_equal (EvLinkAction *a,
- EvLinkAction *b);
+gboolean ev_link_action_equal (EvLinkAction *a,
+ EvLinkAction *b);
G_END_DECLS
diff --git a/libview/ev-view.c b/libview/ev-view.c
index c52ecaf3..e2ca6b5a 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -2095,6 +2095,7 @@ ev_view_handle_link (EvView *view, EvLink *link)
case EV_LINK_ACTION_TYPE_EXTERNAL_URI:
case EV_LINK_ACTION_TYPE_LAUNCH:
case EV_LINK_ACTION_TYPE_NAMED:
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
g_signal_emit (view, signals[SIGNAL_EXTERNAL_LINK], 0, action);
break;
}
@@ -2167,6 +2168,9 @@ tip_from_link (EvView *view, EvLink *link)
case EV_LINK_ACTION_TYPE_NAMED:
msg = tip_from_action_named (action);
break;
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
+ msg = g_strdup_printf (_("Reset form"));
+ break;
default:
if (title)
msg = g_strdup (title);
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 1f3ea24d..81a6ede1 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -6867,6 +6867,18 @@ do_action_named (EvWindow *window, EvLinkAction *action)
}
}
+static void
+reset_form (EvWindow *window, EvLinkAction *action)
+{
+ EvWindowPrivate *priv = window->priv;
+ EvDocument *document = priv->document;
+
+ if (EV_IS_DOCUMENT_FORMS (document)) {
+ ev_document_forms_reset_form (EV_DOCUMENT_FORMS (document), action);
+ ev_view_reload (EV_VIEW (priv->view));
+ }
+}
+
static void
view_external_link_cb (EvWindow *window, EvLinkAction *action)
{
@@ -6893,6 +6905,9 @@ view_external_link_cb (EvWindow *window, EvLinkAction *action)
case EV_LINK_ACTION_TYPE_NAMED:
do_action_named (window, action);
break;
+ case EV_LINK_ACTION_TYPE_RESET_FORM:
+ reset_form (window, action);
+ break;
default:
g_assert_not_reached ();
}
--
2.28.0

View File

@ -0,0 +1,546 @@
--- evince-3.28.4/po/bg.po
+++ evince-3.28.4/po/bg.po
@@ -666,6 +666,10 @@ msgstr "Отиване при файла
msgid "Launch %s"
msgstr "Стартиране на %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "ИзчиÑ<C2B8>Ñване на формулÑ<C2BB>ра"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Отиване на Ñ<>Ñраница:"
--- evince-3.28.4/po/ca.po
+++ evince-3.28.4/po/ca.po
@@ -667,6 +667,10 @@ msgstr "Vés al fitxer «%s»"
msgid "Launch %s"
msgstr "Engega %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reinicialitza el formulari"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salta a la pàgina:"
--- evince-3.28.4/po/cs.po
+++ evince-3.28.4/po/cs.po
@@ -678,6 +678,10 @@ msgstr "PÅ™ejít na soubor “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Spustit %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Čistý formulář"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Přejít na stránku:"
--- evince-3.28.4/po/da.po
+++ evince-3.28.4/po/da.po
@@ -682,6 +682,10 @@ msgstr "GÃ¥ til filen “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Start %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Nulstil formular"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ til side:"
--- evince-3.28.4/po/de.po
+++ evince-3.28.4/po/de.po
@@ -691,6 +691,10 @@ msgstr "Zu Datei »%s« gehen"
msgid "Launch %s"
msgstr "%s starten"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Formular zurücksetzen"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Zu folgender Seite gehen:"
--- evince-3.28.4/po/en_GB.po
+++ evince-3.28.4/po/en_GB.po
@@ -684,6 +684,10 @@ msgstr "Go to file “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Launch %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reset form"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Jump to page:"
--- evince-3.28.4/po/el.po
+++ evince-3.28.4/po/el.po
@@ -683,6 +683,10 @@ msgstr "Μετάβαση στο αÏ<C2B1>χε
msgid "Launch %s"
msgstr "Εκκίνηση %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "ΕπαναφοÏ<C2BF>ά φόÏ<C592>μαÏ"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Μετάβαση στη σελίδα:"
--- evince-3.28.4/po/es.po
+++ evince-3.28.4/po/es.po
@@ -677,6 +677,10 @@ msgstr "Ir al archivo «%s»"
msgid "Launch %s"
msgstr "Lanzar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reiniciar formulario"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Saltar a la página:"
--- evince-3.28.4/po/eu.po
+++ evince-3.28.4/po/eu.po
@@ -665,6 +665,10 @@ msgstr "Joan hona: %s ('%s' fitxategian)
msgid "Go to file “%sâ€<C3A2>"
msgstr "Joan '%s' fitxategira"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Leheneratu inprimakia"
+
#: ../libview/ev-view.c:2088
#, c-format
msgid "Launch %s"
--- evince-3.28.4/po/fa.po
+++ evince-3.28.4/po/fa.po
@@ -660,6 +660,10 @@ msgstr "رÙ<C2B1>تن به پرونده‌ی
msgid "Launch %s"
msgstr "راه‌اندازی %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "بازنشانی Ù<>رم"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "پریدن به صÙ<C2B5>حه‌:"
--- evince-3.28.4/po/fi.po
+++ evince-3.28.4/po/fi.po
@@ -676,6 +676,10 @@ msgstr "Siirry tiedostoon â€<C3A2>%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Käynnistä %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Tyhjennä lomake"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Siirry sivulle:"
--- evince-3.28.4/po/fr.po
+++ evince-3.28.4/po/fr.po
@@ -686,6 +686,10 @@ msgstr "Aller à la page « %s »"
msgid "Launch %s"
msgstr "Lancer %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Réinitialiser le formulaire"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Aller à la page :"
--- evince-3.28.4/po/fur.po
+++ evince-3.28.4/po/fur.po
@@ -669,6 +669,10 @@ msgstr "Va al file \"%s\""
msgid "Launch %s"
msgstr "Fâs partî %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ripristine modul"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salte ae pagjine:"
--- evince-3.28.4/po/gl.po
+++ evince-3.28.4/po/gl.po
@@ -677,6 +677,10 @@ msgstr "Ir ao ficheiro «%s»"
msgid "Launch %s"
msgstr "Iniciar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabelecer o formulario"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Saltar á páxina:"
--- evince-3.28.4/po/he.po
+++ evince-3.28.4/po/he.po
@@ -678,6 +678,10 @@ msgstr "מעבר לקובץ „%s“"
msgid "Launch %s"
msgstr "שיגור %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "×<>×פ×ס טופס"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "קפיצה לעמוד:"
--- evince-3.28.4/po/hu.po
+++ evince-3.28.4/po/hu.po
@@ -664,6 +664,10 @@ msgstr "Ugrás a(z) %s fájlra"
msgid "Launch %s"
msgstr "%s indítása"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Űrlap visszaállítása"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ugrás oldalra:"
--- evince-3.28.4/po/hr.po
+++ evince-3.28.4/po/hr.po
@@ -664,6 +664,10 @@ msgstr "Idi na datoteku \"%s\""
msgid "Launch %s"
msgstr "Pokreni %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Poništi obrazac"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Idi na stranicu:"
--- evince-3.28.4/po/id.po
+++ evince-3.28.4/po/id.po
@@ -669,6 +669,10 @@ msgstr "Pergi ke berkas “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Luncurkan %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Reset formulir"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Lompat ke halaman:"
--- evince-3.28.4/po/it.po
+++ evince-3.28.4/po/it.po
@@ -678,6 +678,10 @@ msgstr "Va al file «%s»"
msgid "Launch %s"
msgstr "Lancia %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Azzera modulo"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Salta alla pagina:"
--- evince-3.28.4/po/ja.po
+++ evince-3.28.4/po/ja.po
@@ -689,6 +689,10 @@ msgstr "ファイル“%sâ€<C3A2>ã<EFBFBD>¸ç§»å•ã<E280A2>
msgid "Launch %s"
msgstr "%s ã<>®èµ·å•"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "フォームをリセット"
+
#: ../libview/ev-view-presentation.c:735
msgid "Jump to page:"
msgstr "移å•å…ˆã<CB86>®ãƒšãƒ¼ã¸:"
--- evince-3.28.4/po/kk.po
+++ evince-3.28.4/po/kk.po
@@ -664,6 +664,10 @@ msgstr "\"%s\" файлына өту"
msgid "Launch %s"
msgstr "%s жөнелту"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Форманы ÑаÑ<C2B0>Ñау"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Параққа өту:"
--- evince-3.28.4/po/ko.po
+++ evince-3.28.4/po/ko.po
@@ -665,6 +665,10 @@ msgstr "“%sâ€<C3A2> 파ì<C592>¼ë¡œ ì<>´ë<C2B4>™"
msgid "Launch %s"
msgstr "%s 실행"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "ìì<C3AC> 다시 설정"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "페ì<CB9C>´ì§€ë¡œ ì<>´ë<C2B4>™:"
--- evince-3.28.4/po/lt.po
+++ evince-3.28.4/po/lt.po
@@ -673,6 +673,10 @@ msgstr "Eiti į failą „%s“"
msgid "Launch %s"
msgstr "Paleisti %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Atstatyti formÄ…"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Eiti į puslapį:"
--- evince-3.28.4/po/nb.po
+++ evince-3.28.4/po/nb.po
@@ -662,6 +662,10 @@ msgstr "Gå til fil «%s»"
msgid "Launch %s"
msgstr "Start %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Nullstill skjema"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ til side:"
--- evince-3.28.4/po/ne.po
+++ evince-3.28.4/po/ne.po
@@ -635,6 +635,10 @@ msgstr "“%sâ€<C3A2> फाइलमा जà
msgid "Launch %s"
msgstr "%s सà¥<C3A0>रà¥<C3A0> गरà¥<C3A0>नà¥<C3A0>हà¥à¤¸à¥<C3A0>"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "फारम पà¥<C3A0>नः मिलान"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "पृषà¥<C3A0>ठमा जानà¥<C3A0>हà¥à¤¸à¥<C3A0>:"
--- evince-3.28.4/po/nl.po
+++ evince-3.28.4/po/nl.po
@@ -700,6 +700,10 @@ msgstr "Ga naar bestand ‘%s’"
msgid "Launch %s"
msgstr "%s opstarten"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Formulier opnieuw instellen"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ga naar pagina:"
--- evince-3.28.4/po/oc.po
+++ evince-3.28.4/po/oc.po
@@ -695,6 +695,10 @@ msgstr "Anar a la pagina « %s »"
msgid "Launch %s"
msgstr "Aviar %s"
+#: libview/ev-view.c:2174
+msgid "Reset form"
+msgstr "Reïnicializar lo formulari"
+
#: ../libview/ev-view-presentation.c:735
msgid "Jump to page:"
msgstr "Anar a la pagina :"
--- evince-3.28.4/po/pa.po
+++ evince-3.28.4/po/pa.po
@@ -674,6 +674,10 @@ msgstr "ਫਾਇਲ “%sâ€<C3A2> ਉੱਤà
msgid "Launch %s"
msgstr "%s ਚਲਾਓ"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "ਫਾਰਮ ਮà©<C3A0>à©œ-ਸੈੱਟ ਕਰੋ"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ:"
--- evince-3.28.4/po/pl.po
+++ evince-3.28.4/po/pl.po
@@ -671,6 +671,10 @@ msgstr "Przejdź do pliku „%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Uruchom „%sâ€<C3A2>"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Przywróć formularz"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Przejdź do strony:"
--- evince-3.28.4/po/pt.po
+++ evince-3.28.4/po/pt.po
@@ -694,6 +694,10 @@ msgstr "Ir para o ficheiro “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Iniciar %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabelecer a partir de"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Ir para a página:"
--- evince-3.28.4/po/pt_BR.po
+++ evince-3.28.4/po/pt_BR.po
@@ -687,6 +687,10 @@ msgstr "Vai para o arquivo “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Inicia %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Redefinir formulário"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Pular para a página:"
--- evince-3.28.4/po/ro.po
+++ evince-3.28.4/po/ro.po
@@ -674,6 +674,10 @@ msgstr "Navighează la fiÈ™ierul „%sâ€
msgid "Launch %s"
msgstr "Pornește %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Restabilește formularul"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Sari la pagina:"
--- evince-3.28.4/po/ru.po
+++ evince-3.28.4/po/ru.po
@@ -670,6 +670,10 @@ msgstr "Перейти к файлу «%
msgid "Launch %s"
msgstr "ЗапуÑ<C692>ÑиÑÑŒ %s"
+#: libview/ev-view.c:2173
+msgid "Reset form"
+msgstr "ОчиÑ<C2B8>ÑиÑÑŒ форму"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Перейти к Ñ<>Ñранице:"
--- evince-3.28.4/po/sk.po
+++ evince-3.28.4/po/sk.po
@@ -753,6 +753,10 @@ msgstr "Prejde na súbor „%s“"
msgid "Launch %s"
msgstr "Spustí %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Vynuluje formulár"
+
# label
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
--- evince-3.28.4/po/sl.po
+++ evince-3.28.4/po/sl.po
@@ -668,6 +668,10 @@ msgstr "SkoÄ<6F>i na datoteko »%s«"
msgid "Launch %s"
msgstr "Zaženi %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ponastavi obrazec"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Pojdi na stran:"
--- evince-3.28.4/po/sr.po
+++ evince-3.28.4/po/sr.po
@@ -671,6 +671,10 @@ msgstr "Иди на датотеку „
msgid "Launch %s"
msgstr "Покрени %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Поврати образац"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Скочи на Ñ<>Ñрану:"
--- evince-3.28.4/po/sv.po
+++ evince-3.28.4/po/sv.po
@@ -676,6 +676,10 @@ msgstr "GÃ¥ till filen â€<C3A2>%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Starta %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Återställ formulär"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "GÃ¥ till sidan:"
--- evince-3.28.4/po/tr.po
+++ evince-3.28.4/po/tr.po
@@ -671,6 +671,10 @@ msgstr "“%sâ€<C3A2> dosyasına git"
msgid "Launch %s"
msgstr "%s baÅŸlat"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Formu sıfırla"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Sayfaya git:"
--- evince-3.28.4/po/uk.po
+++ evince-3.28.4/po/uk.po
@@ -682,6 +682,10 @@ msgstr "Перейти до файла Â
msgid "Launch %s"
msgstr "ЗапуÑ<C692>ÑиÑи %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Відновити початковий Ñ<>Ñан форми"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Перейти до Ñ<>ÑорÑнки:"
--- evince-3.28.4/po/vi.po
+++ evince-3.28.4/po/vi.po
@@ -663,6 +663,10 @@ msgstr "Tá»i tập tin “%sâ€<C3A2>"
msgid "Launch %s"
msgstr "Khởi chạy %s"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "Ä<>ặt lại form"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "Nhảy Äến trang:"
--- evince-3.28.4/po/zh_CN.po
+++ evince-3.28.4/po/zh_CN.po
@@ -665,6 +665,10 @@ msgstr "转到文件“%sâ€<C3A2>"
msgid "Launch %s"
msgstr "调用 %s"
+#: ../libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "é‡<C3A9>置表å<C2A8>•"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "跳到页é<C2B5>¢ï¼š"
--- evince-3.28.4/po/zh_TW.po
+++ evince-3.28.4/po/zh_TW.po
@@ -655,6 +655,10 @@ msgstr "å‰<C3A5>往「%sã€<C3A3>檔案"
msgid "Launch %s"
msgstr "執行 %s"
+#: libview/ev-view.c:2172
+msgid "Reset form"
+msgstr "é‡<C3A9>設表å®"
+
#: ../libview/ev-view-presentation.c:752
msgid "Jump to page:"
msgstr "å‰<C3A5>å¾€é <C3A9>é<EFBFBD>¢ï¼š"

1459
evince.spec Normal file

File diff suppressed because it is too large Load Diff

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (evince-3.28.4.tar.xz) = 655cff393af4102782abc08a999d5d27314860a3dfbbdfceb443617d696bc02b5c60cf5af6395fa51c1c4e20d8443384de35f1e725947b1d6c862122efaa5257