[epiphany] ephy-web-view: get rid of 'icon-address' property



commit 74dc983654efc24a3a5dcf03420502eacdb757ae
Author: Xan Lopez <xan gnome org>
Date:   Fri Dec 11 14:21:23 2009 +0200

    ephy-web-view: get rid of 'icon-address' property
    
    Also redundant since we have the same thing in WebKitWebView now.

 embed/ephy-web-view.c |  128 ++++++++++++++++++------------------------------
 embed/ephy-web-view.h |    5 --
 2 files changed, 48 insertions(+), 85 deletions(-)
---
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 0d35810..29c7699 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -70,7 +70,6 @@ struct _EphyWebViewPrivate {
   char *loading_title;
   char *status_message;
   char *link_message;
-  char *icon_address;
   GdkPixbuf *icon;
   gboolean expire_address_now;
 
@@ -99,7 +98,6 @@ enum {
   PROP_DOCUMENT_TYPE,
   PROP_HIDDEN_POPUP_COUNT,
   PROP_ICON,
-  PROP_ICON_ADDRESS,
   PROP_LINK_MESSAGE,
   PROP_NAVIGATION,
   PROP_POPUPS_ALLOWED,
@@ -404,9 +402,6 @@ ephy_web_view_get_property (GObject *object,
     case PROP_ICON:
       g_value_set_object (value, priv->icon);
       break;
-    case PROP_ICON_ADDRESS:
-      g_value_set_string (value, priv->icon_address);
-      break;
     case PROP_LINK_MESSAGE:
       g_value_set_string (value, priv->link_message);
       break;
@@ -438,9 +433,6 @@ ephy_web_view_set_property (GObject *object,
                             GParamSpec *pspec)
 {
   switch (prop_id) {
-    case PROP_ICON_ADDRESS:
-      ephy_web_view_set_icon_address (EPHY_WEB_VIEW (object), g_value_get_string (value));
-      break;
     case PROP_POPUPS_ALLOWED:
       ephy_web_view_set_popups_allowed (EPHY_WEB_VIEW (object), g_value_get_boolean (value));
       break;
@@ -531,7 +523,6 @@ ephy_web_view_finalize (GObject *object)
   g_free (priv->address);
   g_free (priv->typed_address);
   g_free (priv->title);
-  g_free (priv->icon_address);
   g_free (priv->status_message);
   g_free (priv->link_message);
   g_free (priv->loading_title);
@@ -622,13 +613,6 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
                                                         G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
 
   g_object_class_install_property (gobject_class,
-                                   PROP_ICON_ADDRESS,
-                                   g_param_spec_string ("icon-address",
-                                                        "Icon address",
-                                                        "The view icon's address",
-                                                        NULL,
-                                                        (G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)));
-  g_object_class_install_property (gobject_class,
                                    PROP_HIDDEN_POPUP_COUNT,
                                    g_param_spec_int ("hidden-popup-count",
                                                      "Number of Blocked Popups",
@@ -894,6 +878,27 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
 }
 
 static void
+_ephy_web_view_load_icon (EphyWebView *view)
+{
+  EphyWebViewPrivate *priv = view->priv;
+  EphyEmbedShell *shell;
+  EphyFaviconCache *cache;
+  const char *icon_address;
+
+  icon_address = webkit_web_view_get_icon_uri (WEBKIT_WEB_VIEW (view));
+
+  if (icon_address == NULL || priv->icon != NULL) return;
+
+  shell = ephy_embed_shell_get_default ();
+  cache = EPHY_FAVICON_CACHE (ephy_embed_shell_get_favicon_cache (shell));
+
+  /* ephy_favicon_cache_get returns a reference already */
+  priv->icon = ephy_favicon_cache_get (cache, icon_address);
+
+  g_object_notify (G_OBJECT (view), "icon");
+}
+
+static void
 icon_cache_changed_cb (EphyFaviconCache *cache,
                        const char *address,
                        EphyWebView *view)
@@ -902,12 +907,35 @@ icon_cache_changed_cb (EphyFaviconCache *cache,
 
   g_return_if_fail (address != NULL);
 
-  icon_address = ephy_web_view_get_icon_address (view);
+  icon_address = webkit_web_view_get_icon_uri (WEBKIT_WEB_VIEW (view));
 
   /* is this for us? */
   if (icon_address != NULL &&
       strcmp (icon_address, address) == 0) {
-    ephy_web_view_load_icon (view);
+    _ephy_web_view_load_icon (view);
+  }
+}
+
+static void
+_ephy_web_view_set_icon_address (EphyWebView *view,
+                                 const char *icon_address)
+{
+  GObject *object = G_OBJECT (view);
+  EphyWebViewPrivate *priv = view->priv;
+  EphyHistory *history;
+
+  if (priv->icon != NULL) {
+    g_object_unref (priv->icon);
+    priv->icon = NULL;
+
+    g_object_notify (object, "icon");
+  }
+
+  if (icon_address) {
+    history = EPHY_HISTORY (ephy_embed_shell_get_global_history (embed_shell));
+    ephy_history_set_icon (history, priv->address, icon_address);
+
+    _ephy_web_view_load_icon (view);
   }
 }
 
@@ -916,7 +944,7 @@ favicon_cb (EphyWebView *view,
             const char *address,
             gpointer user_data)
 {
-  ephy_web_view_set_icon_address (view, address);
+  _ephy_web_view_set_icon_address (view, address);
 }
 
 static void
@@ -1671,7 +1699,7 @@ ephy_web_view_location_changed (EphyWebView *view,
   }
 
   ephy_web_view_set_link_message (view, NULL);
-  ephy_web_view_set_icon_address (view, NULL);
+  _ephy_web_view_set_icon_address (view, NULL);
   update_navigation_flags (view);
 
   g_object_notify (object, "embed-title");
@@ -1679,34 +1707,6 @@ ephy_web_view_location_changed (EphyWebView *view,
   g_object_thaw_notify (object);
 }
 
-void
-ephy_web_view_set_icon_address (EphyWebView *view,
-                                const char *address)
-{
-  GObject *object = G_OBJECT (view);
-  EphyWebViewPrivate *priv = view->priv;
-  EphyHistory *history;
-
-  g_free (priv->icon_address);
-  priv->icon_address = g_strdup (address);
-
-  if (priv->icon != NULL) {
-    g_object_unref (priv->icon);
-    priv->icon = NULL;
-
-    g_object_notify (object, "icon");
-  }
-
-  if (priv->icon_address) {
-    history = EPHY_HISTORY (ephy_embed_shell_get_global_history (embed_shell));
-    ephy_history_set_icon (history, priv->address, priv->icon_address);
-
-    ephy_web_view_load_icon (view);
-  }
-
-  g_object_notify (object, "icon-address");
-}
-
 /**
  * ephy_web_view_can_go_up:
  * @view: an #EphyWebView
@@ -1779,20 +1779,6 @@ ephy_web_view_get_loading_title (EphyWebView *view)
 }
 
 /**
- * ephy_web_view_get_icon_address:
- * @view: an #EphyWebView
- *
- * Returns a URL which points to @view's site icon.
- *
- * Return value: the URL of @view's site icon
- **/
-const char *
-ephy_web_view_get_icon_address (EphyWebView *view)
-{
-  return view->priv->icon_address;
-}
-
-/**
  * ephy_wew_view_get_icon:
  * @view: an #EphyWebView
  *
@@ -1911,24 +1897,6 @@ ephy_web_view_set_link_message (EphyWebView *view,
 }
 
 void
-ephy_web_view_load_icon (EphyWebView *view)
-{
-  EphyWebViewPrivate *priv = view->priv;
-  EphyEmbedShell *shell;
-  EphyFaviconCache *cache;
-
-  if (priv->icon_address == NULL || priv->icon != NULL) return;
-
-  shell = ephy_embed_shell_get_default ();
-  cache = EPHY_FAVICON_CACHE (ephy_embed_shell_get_favicon_cache (shell));
-
-  /* ephy_favicon_cache_get returns a reference already */
-  priv->icon = ephy_favicon_cache_get (cache, priv->icon_address);
-
-  g_object_notify (G_OBJECT (view), "icon");
-}
-
-void
 ephy_web_view_set_security_level (EphyWebView *view,
                                   EphyWebViewSecurityLevel level)
 {
diff --git a/embed/ephy-web-view.h b/embed/ephy-web-view.h
index bc48a60..5ed358b 100644
--- a/embed/ephy-web-view.h
+++ b/embed/ephy-web-view.h
@@ -174,8 +174,6 @@ const char *               ephy_web_view_get_link_message        (EphyWebView
 gboolean                   ephy_web_view_get_visibility          (EphyWebView                     *view);
 void                       ephy_web_view_set_link_message        (EphyWebView                     *view,
                                                                   char                            *link_message);
-void                       ephy_web_view_load_icon               (EphyWebView                     *view);
-void                       ephy_web_view_load_icon               (EphyWebView                     *view);
 void                       ephy_web_view_set_security_level      (EphyWebView                     *view,
                                                                   EphyWebViewSecurityLevel         level);
 void                       ephy_web_view_set_visibility          (EphyWebView                     *view,
@@ -202,7 +200,6 @@ void                       ephy_web_view_print_preview_navigate  (EphyWebView
 GSList *                   ephy_web_view_get_go_up_list          (EphyWebView                     *view);
 void                       ephy_web_view_set_title               (EphyWebView                     *view,
                                                                   const char                      *view_title);
-const char *               ephy_web_view_get_icon_address        (EphyWebView                     *view);
 const char *               ephy_web_view_get_title               (EphyWebView                     *view);
 gboolean                   ephy_web_view_can_go_up               (EphyWebView                     *view);
 const char *               ephy_web_view_get_address             (EphyWebView                     *view);
@@ -211,8 +208,6 @@ const char *               ephy_web_view_get_title_composite     (EphyWebView
 /* These should be private */
 void                       ephy_web_view_set_address             (EphyWebView                     *embed,
                                                                   const char                      *address);
-void                       ephy_web_view_set_icon_address        (EphyWebView                     *view,
-                                                                  const char                      *address);
 void                       ephy_web_view_update_from_net_state   (EphyWebView                     *view,
                                                                   const char                      *uri,
                                                                   EphyWebViewNetState              state);



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