summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evbp-mime.c6
-rw-r--r--src/evbp-mime.h1
-rw-r--r--src/evbp-viewer.c14
-rw-r--r--test/Makefile.am3
4 files changed, 17 insertions, 7 deletions
diff --git a/src/evbp-mime.c b/src/evbp-mime.c
index 0cf1f73..5009f13 100644
--- a/src/evbp-mime.c
+++ b/src/evbp-mime.c
@@ -52,8 +52,8 @@ static const struct {
};
static const int n_mime_suffix = sizeof(mime_suffix) / sizeof(mime_suffix[0]);
-static const gchar *
-get_suffix(const gchar *type)
+const gchar *
+evbp_mime_get_suffix(const gchar *type)
{
int i;
@@ -71,7 +71,7 @@ add_one_mime(EvTypeInfo *type, gpointer udata)
const gchar *suffix;
for (mime = type->mime_types; *mime; mime++) {
- suffix = get_suffix(*mime);
+ suffix = evbp_mime_get_suffix(*mime);
if (!suffix)
continue;
g_string_append_printf(mime_desc, "%s%s:%s:%s",
diff --git a/src/evbp-mime.h b/src/evbp-mime.h
index 8656b71..ca2a1c1 100644
--- a/src/evbp-mime.h
+++ b/src/evbp-mime.h
@@ -22,6 +22,7 @@
#include <glib.h>
+const gchar *evbp_mime_get_suffix(const gchar *type);
GString *evbp_mime_get_description(void);
#endif /* _EVBP_PLUGIN_H */
diff --git a/src/evbp-viewer.c b/src/evbp-viewer.c
index 73d3d68..1c7ad70 100644
--- a/src/evbp-viewer.c
+++ b/src/evbp-viewer.c
@@ -19,7 +19,9 @@
#include <config.h>
#include "evbp-viewer.h"
+#include "evbp-mime.h"
#include "ev-page-action.h"
+#include <string.h>
#include <gtk/gtk.h>
G_DEFINE_TYPE(EvbpViewer, evbp_viewer, GTK_TYPE_BOX)
@@ -103,9 +105,15 @@ evbp_viewer_save_copy(GtkAction *action, EvbpViewer *viewer)
* mozilla is likely a garbage temporary name, so try the document title
* first. */
title = ev_document_get_title(viewer->document);
- if (title)
- filename = g_strdup(title);
- else {
+ if (title) {
+ EvTypeInfo *typeinfo;
+ const gchar *suffix;
+
+ typeinfo = ev_backends_manager_get_document_type_info(viewer->document);
+ suffix = evbp_mime_get_suffix(*typeinfo->mime_types);
+ filename = g_strdup_printf("%s.%s", title, suffix);
+ g_free(typeinfo);
+ } else {
const gchar *uri;
gchar *path;
diff --git a/test/Makefile.am b/test/Makefile.am
index 7cb9744..ee981d3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -9,4 +9,5 @@ previewer_SOURCES = previewer.c \
$(top_srcdir)/src/evbp-viewer.h $(top_srcdir)/src/evbp-viewer.c \
$(top_srcdir)/src/ev-page-action.h $(top_srcdir)/src/ev-page-action.c \
$(top_srcdir)/src/ev-page-action-widget.h \
- $(top_srcdir)/src/ev-page-action-widget.c
+ $(top_srcdir)/src/ev-page-action-widget.c \
+ $(top_srcdir)/src/evbp-mime.h $(top_srcdir)/src/evbp-mime.c