Display a message if a document cannot be displayed
This commit is contained in:
parent
e23ed6234e
commit
0d24549112
1 changed files with 44 additions and 2 deletions
|
@ -26,6 +26,10 @@
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
#include <webkit/webkit.h>
|
#include <webkit/webkit.h>
|
||||||
|
|
||||||
|
#ifndef WEBKIT_CHECK_VERSION
|
||||||
|
#define WEBKIT_CHECK_VERSION(a,b,c) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* This is unstable API, so we need to declare it */
|
/* This is unstable API, so we need to declare it */
|
||||||
gchar*
|
gchar*
|
||||||
webkit_web_view_get_selected_text (WebKitWebView* web_view);
|
webkit_web_view_get_selected_text (WebKitWebView* web_view);
|
||||||
|
@ -1037,6 +1041,10 @@ webkit_web_view_mime_type_decision_cb (GtkWidget* web_view,
|
||||||
gpointer decision,
|
gpointer decision,
|
||||||
MidoriView* view)
|
MidoriView* view)
|
||||||
{
|
{
|
||||||
|
#if WEBKIT_CHECK_VERSION (1, 0, 0)
|
||||||
|
gchar* uri;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (web_frame != webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (web_view)))
|
if (web_frame != webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (web_view)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -1045,7 +1053,25 @@ webkit_web_view_mime_type_decision_cb (GtkWidget* web_view,
|
||||||
g_object_notify (G_OBJECT (view), "mime-type");
|
g_object_notify (G_OBJECT (view), "mime-type");
|
||||||
|
|
||||||
/* TODO: Display contents with a Viewable if WebKit can't do it */
|
/* TODO: Display contents with a Viewable if WebKit can't do it */
|
||||||
/* TODO: Offer to download file if it cannot be displayed at all */
|
/* TODO: Offer downloading file if it cannot be displayed at all */
|
||||||
|
|
||||||
|
#if WEBKIT_CHECK_VERSION (1, 1, 0)
|
||||||
|
if (webkit_web_view_can_show_mime_type (WEBKIT_WEB_VIEW (web_view), mime_type))
|
||||||
|
#else
|
||||||
|
if (g_str_has_prefix (mime_type, "image/") ||
|
||||||
|
g_strrstr (mime_type, "script") ||
|
||||||
|
g_str_has_prefix (mime_type, "text/") || g_strrstr (mime_type, "xml"))
|
||||||
|
#endif
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
#if WEBKIT_CHECK_VERSION (1, 0, 0)
|
||||||
|
uri = g_strdup_printf ("error:nodisplay %s",
|
||||||
|
webkit_network_request_get_uri (request));
|
||||||
|
midori_view_set_uri (view, uri);
|
||||||
|
g_free (uri);
|
||||||
|
#else
|
||||||
|
midori_view_set_uri (view, "error:nodisplay ");
|
||||||
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1525,7 +1551,23 @@ midori_view_set_uri (MidoriView* view,
|
||||||
if (g_str_has_prefix (uri, "error:"))
|
if (g_str_has_prefix (uri, "error:"))
|
||||||
{
|
{
|
||||||
data = NULL;
|
data = NULL;
|
||||||
if (!strncmp (uri, "error:nodocs ", 13))
|
if (!strncmp (uri, "error:nodisplay ", 16))
|
||||||
|
{
|
||||||
|
gchar* title;
|
||||||
|
|
||||||
|
katze_assign (view->uri, g_strdup (&uri[16]));
|
||||||
|
title = g_strdup_printf (_("Document cannot be displayed"));
|
||||||
|
data = g_strdup_printf (
|
||||||
|
"<html><head><title>%s</title></head>"
|
||||||
|
"<body><h1>%s</h1>"
|
||||||
|
"<img src=\"file://" DATADIR "/midori/logo-shade.png\" "
|
||||||
|
"style=\"position: absolute; right: 15px; bottom: 15px;\">"
|
||||||
|
"<p />The document %s cannot be displayed."
|
||||||
|
"</body></html>",
|
||||||
|
title, title, view->uri);
|
||||||
|
g_free (title);
|
||||||
|
}
|
||||||
|
else if (!strncmp (uri, "error:nodocs ", 13))
|
||||||
{
|
{
|
||||||
gchar* title;
|
gchar* title;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue