[epiphany] Get rid of 'ge-document-type' signal



commit b45f436e6f81721ab51a948c41f3370476413898
Author: Xan Lopez <xan gnome org>
Date:   Tue Dec 8 16:46:24 2009 +0200

    Get rid of 'ge-document-type' signal
    
    Connecting to notify::document-type is enough.

 embed/ephy-embed.c    |   57 ------------------------------
 embed/ephy-web-view.c |   91 ++++++++++++++++++++++++++++++++-----------------
 2 files changed, 60 insertions(+), 88 deletions(-)
---
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index d8f8a31..b839c6b 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -357,62 +357,6 @@ ephy_embed_inspect_close_cb (WebKitWebInspector *inspector,
   return TRUE;
 }
 
-static gboolean
-mime_type_policy_decision_requested_cb (WebKitWebView *web_view,
-                                        WebKitWebFrame *frame,
-                                        WebKitNetworkRequest *request,
-                                        const char *mime_type,
-                                        WebKitWebPolicyDecision *decision,
-                                        EphyEmbed *embed)
-{
-  EphyWebViewDocumentType type;
-
-  g_return_val_if_fail (mime_type, FALSE);
-
-  /* Get the mime type for the page only from the main frame */
-  if (webkit_web_view_get_main_frame (web_view) == frame) {
-    type = EPHY_WEB_VIEW_DOCUMENT_OTHER;
-
-    if (!strcmp (mime_type, "text/html") ||
-        !strcmp (mime_type, "text/plain"))
-      type = EPHY_WEB_VIEW_DOCUMENT_HTML;
-    else if (!strcmp (mime_type, "application/xhtml+xml"))
-      type = EPHY_WEB_VIEW_DOCUMENT_XML;
-    else if (!strncmp (mime_type, "image/", 6))
-      type = EPHY_WEB_VIEW_DOCUMENT_IMAGE;
-
-    /* FIXME: maybe it makes more sense to have an API to query the mime
-     * type when the load of a page starts than doing this here.
-     */
-    /* FIXME: rename ge-document-type (and all ge- signals...) to
-     * something else
-     */
-    g_signal_emit_by_name (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), "ge-document-type", type);
-  }
-
-  /* If WebKit can't handle the mime type start the download
-     process */
-  /* FIXME: need to use ephy_file_check_mime if auto-downloading */
-  if (!webkit_web_view_can_show_mime_type (web_view, mime_type)) {
-    GObject *single;
-    const char *uri;
-    gboolean handled = FALSE;
-
-    single = ephy_embed_shell_get_embed_single (embed_shell);
-    uri = webkit_network_request_get_uri (request);
-    g_signal_emit_by_name (single, "handle-content", mime_type, uri, &handled);
-
-    if (handled)
-      webkit_web_policy_decision_ignore (decision);
-    else
-      webkit_web_policy_decision_download (decision);
-
-    return TRUE;
-  }
-
-  return FALSE;
-}
-
 static void
 download_requested_dialog_response_cb (GtkDialog *dialog,
                                        int response_id,
@@ -845,7 +789,6 @@ ephy_embed_constructed (GObject *object)
                     "signal::notify::load-status", G_CALLBACK (load_status_changed_cb), embed,
                     "signal::resource-request-starting", G_CALLBACK (resource_request_starting_cb), embed,
                     "signal::hovering-over-link", G_CALLBACK (hovering_over_link_cb), embed,
-                    "signal::mime-type-policy-decision-requested", G_CALLBACK (mime_type_policy_decision_requested_cb), embed,
                     "signal::download-requested", G_CALLBACK (download_requested_cb), embed,
                     "signal::notify::zoom-level", G_CALLBACK (zoom_changed_cb), embed,
                     "signal::notify::title", G_CALLBACK (title_changed_cb), embed,
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 2b10184..c525ab1 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -819,22 +819,6 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
             0);
 
 /**
- * EphyWebView::ge-document-type:
- * @view: the #EphyWebView that received the signal
- * @type: the new document type
- *
- * The ::ge-document-type signal is emitted when @embed determines the type of its document.
- **/
-    g_signal_new ("ge_document_type",
-            EPHY_TYPE_WEB_VIEW,
-            G_SIGNAL_RUN_FIRST,
-            G_STRUCT_OFFSET (EphyWebViewClass, document_type),
-            NULL, NULL,
-            g_cclosure_marshal_VOID__ENUM,
-            G_TYPE_NONE,
-            1,
-            EPHY_TYPE_WEB_VIEW_DOCUMENT_TYPE);
-/**
  * EphyWebView::dom-content-loaded:
  * @view: the #EphyWebView that received the signal
  *
@@ -944,18 +928,6 @@ icon_cache_changed_cb (EphyFaviconCache *cache,
 }
 
 static void
-ge_document_type_cb (EphyWebView *view,
-                     EphyWebViewDocumentType type,
-                     gpointer user_data)
-{
-  if (view->priv->document_type != type) {
-    view->priv->document_type = type;
-
-    g_object_notify (G_OBJECT (view), "document-type");
-  }
-}
-
-static void
 ge_favicon_cb (EphyWebView *view,
                const char *address,
                gpointer user_data)
@@ -988,6 +960,63 @@ ge_popup_blocked_cb (EphyWebView *view,
   popups_manager_add (view, url, name, features);
 }
 
+static gboolean
+mime_type_policy_decision_requested_cb (WebKitWebView *web_view,
+                                        WebKitWebFrame *frame,
+                                        WebKitNetworkRequest *request,
+                                        const char *mime_type,
+                                        WebKitWebPolicyDecision *decision,
+                                        gpointer user_data)
+{
+  EphyWebViewDocumentType type;
+
+  g_return_val_if_fail (mime_type, FALSE);
+
+  /* Get the mime type for the page only from the main frame */
+  if (webkit_web_view_get_main_frame (web_view) == frame) {
+    type = EPHY_WEB_VIEW_DOCUMENT_OTHER;
+
+    if (!strcmp (mime_type, "text/html") ||
+        !strcmp (mime_type, "text/plain"))
+      type = EPHY_WEB_VIEW_DOCUMENT_HTML;
+    else if (!strcmp (mime_type, "application/xhtml+xml"))
+      type = EPHY_WEB_VIEW_DOCUMENT_XML;
+    else if (!strncmp (mime_type, "image/", 6))
+      type = EPHY_WEB_VIEW_DOCUMENT_IMAGE;
+
+    /* FIXME: maybe it makes more sense to have an API to query the mime
+     * type when the load of a page starts than doing this here.
+     */
+    if (EPHY_WEB_VIEW (web_view)->priv->document_type != type) {
+      EPHY_WEB_VIEW (web_view)->priv->document_type = type;
+
+      g_object_notify (G_OBJECT (web_view), "document-type");
+    }
+  }
+
+  /* If WebKit can't handle the mime type start the download
+     process */
+  /* FIXME: need to use ephy_file_check_mime if auto-downloading */
+  if (!webkit_web_view_can_show_mime_type (web_view, mime_type)) {
+    GObject *single;
+    const char *uri;
+    gboolean handled = FALSE;
+
+    single = ephy_embed_shell_get_embed_single (embed_shell);
+    uri = webkit_network_request_get_uri (request);
+    g_signal_emit_by_name (single, "handle-content", mime_type, uri, &handled);
+
+    if (handled)
+      webkit_web_policy_decision_ignore (decision);
+    else
+      webkit_web_policy_decision_download (decision);
+
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
 static void
 ephy_web_view_init (EphyWebView *web_view)
 {
@@ -1015,9 +1044,9 @@ ephy_web_view_init (EphyWebView *web_view)
                                         "^file:.*$)",
                                         G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTEMPTY, NULL);
 
-  g_signal_connect_object (web_view, "ge_document_type",
-                           G_CALLBACK (ge_document_type_cb),
-                           web_view, (GConnectFlags)0);
+  g_signal_connect (web_view, "mime-type-policy-decision-requested",
+                    G_CALLBACK (mime_type_policy_decision_requested_cb),
+                    NULL);
 
   g_signal_connect_object (web_view, "ge_favicon",
                            G_CALLBACK (ge_favicon_cb),



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]