epiphany r8311 - in trunk: doc/reference/tmpl embed embed/webkit src



Author: xan
Date: Mon Jun 30 07:23:47 2008
New Revision: 8311
URL: http://svn.gnome.org/viewvc/epiphany?rev=8311&view=rev

Log:
embed: remove ephy_embed_get_{backward,forward}_history.

Use WebKit APIs directly.


Modified:
   trunk/doc/reference/tmpl/ephy-embed.sgml
   trunk/embed/ephy-embed.c
   trunk/embed/ephy-embed.h
   trunk/embed/webkit/webkit-embed.c
   trunk/src/ephy-navigation-action.c

Modified: trunk/doc/reference/tmpl/ephy-embed.sgml
==============================================================================
--- trunk/doc/reference/tmpl/ephy-embed.sgml	(original)
+++ trunk/doc/reference/tmpl/ephy-embed.sgml	Mon Jun 30 07:23:47 2008
@@ -327,8 +327,6 @@
 @get_is_blank: 
 @get_loading_title: 
 @get_visibility: 
- get_backward_history: 
- get_forward_history: 
 @get_next_history_item: 
 @get_previous_history_item: 
 @go_to_history_item: 

Modified: trunk/embed/ephy-embed.c
==============================================================================
--- trunk/embed/ephy-embed.c	(original)
+++ trunk/embed/ephy-embed.c	Mon Jun 30 07:23:47 2008
@@ -995,38 +995,6 @@
 }
 
 /**
- * ephy_embed_get_backward_history:
- * @embed: an #EphyEmbed
- *
- * Returns a #GList of #EphyHistoryItem compromising the
- * history items preceding the current location.
- *
- * Return value: a #GList with the preceding history items
- **/
-GList*
-ephy_embed_get_backward_history (EphyEmbed *embed)
-{
-	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
-	return iface->get_backward_history (embed);
-}
-
-/**
- * ephy_embed_get_forward_history:
- * @embed: an #EphyEmbed
- *
- * Returns a #GList of #EphyHistoryItem compromising the
- * history items succeeding the current location.
- *
- * Return value: a #GList with the succeeding history items
- **/
-GList*
-ephy_embed_get_forward_history (EphyEmbed *embed)
-{
-	EphyEmbedIface *iface = EPHY_EMBED_GET_IFACE (embed);
-	return iface->get_forward_history (embed);
-}
-
-/**
  * ephy_embed_get_previous_history_item:
  * @embed: an #EphyEmbed
  *

Modified: trunk/embed/ephy-embed.h
==============================================================================
--- trunk/embed/ephy-embed.h	(original)
+++ trunk/embed/ephy-embed.h	Mon Jun 30 07:23:47 2008
@@ -224,8 +224,6 @@
 	gboolean	   (* get_is_blank)		  (EphyEmbed *embed);
 	const char *	   (* get_loading_title)	  (EphyEmbed *embed);
 	gboolean	   (* get_visibility)		  (EphyEmbed *embed);
-	GList *		   (* get_backward_history)	  (EphyEmbed *embed);
-	GList *		   (* get_forward_history)	  (EphyEmbed *embed);
 	EphyHistoryItem *  (* get_next_history_item)	  (EphyEmbed *embed);
 	EphyHistoryItem *  (* get_previous_history_item)  (EphyEmbed *embed);
 	void		   (* go_to_history_item)	  (EphyEmbed *embed,
@@ -354,8 +352,6 @@
 gboolean	  ephy_embed_has_modified_forms		(EphyEmbed *embed);
 
 /* History */
-GList		*ephy_embed_get_backward_history	(EphyEmbed *embed);
-GList		*ephy_embed_get_forward_history		(EphyEmbed *embed);
 EphyHistoryItem *ephy_embed_get_next_history_item	(EphyEmbed *embed);
 EphyHistoryItem *ephy_embed_get_previous_history_item	(EphyEmbed *embed);
 void		 ephy_embed_go_to_history_item		(EphyEmbed *embed, EphyHistoryItem *history_item);

Modified: trunk/embed/webkit/webkit-embed.c
==============================================================================
--- trunk/embed/webkit/webkit-embed.c	(original)
+++ trunk/embed/webkit/webkit-embed.c	Mon Jun 30 07:23:47 2008
@@ -45,8 +45,6 @@
 
 #define WEBKIT_EMBED_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), WEBKIT_TYPE_EMBED, WebKitEmbedPrivate))
 
-#define WEBKIT_BACK_FORWARD_LIMIT 100
-
 typedef enum
 {
     WEBKIT_EMBED_LOAD_STARTED,
@@ -71,34 +69,6 @@
   EphyHistory *history;
 };
 
-static GList*
-webkit_construct_history_list (WebKitEmbed *embed, WebKitHistoryType hist_type) 
-{
-  WebKitWebBackForwardList *web_back_forward_list;
-  GList *webkit_items, *iter, *ephy_items = NULL;
-
-  g_return_val_if_fail (WEBKIT_IS_EMBED (embed), NULL);
-
-  web_back_forward_list = webkit_web_view_get_back_forward_list (embed->priv->web_view);
-
-  if (hist_type == WEBKIT_HISTORY_FORWARD)
-    webkit_items = webkit_web_back_forward_list_get_forward_list_with_limit (web_back_forward_list,
-                                                                             WEBKIT_BACK_FORWARD_LIMIT);
-  else
-    webkit_items = webkit_web_back_forward_list_get_back_list_with_limit (web_back_forward_list,
-                                                                          WEBKIT_BACK_FORWARD_LIMIT);
-
-  for (iter = webkit_items; iter != NULL; iter = iter->next) {
-    EphyHistoryItem *item = webkit_history_item_new (WEBKIT_WEB_HISTORY_ITEM (iter->data));
-    if (item)
-      ephy_items = g_list_prepend (ephy_items, item);
-  }
-
-  g_list_free (webkit_items);
-
-  return ephy_items;
-}
-
 static EphyHistoryItem*
 webkit_construct_history_item (WebKitEmbed *embed, WebKitHistoryType hist_type)
 {
@@ -506,21 +476,6 @@
   return FALSE;
 }
 
-static GList*
-impl_get_backward_history (EphyEmbed *embed)
-{
-  return webkit_construct_history_list (WEBKIT_EMBED (embed),
-                                        WEBKIT_HISTORY_BACKWARD);
-}
-
-static GList*
-impl_get_forward_history (EphyEmbed *embed)
-{
-  return webkit_construct_history_list (WEBKIT_EMBED (embed),
-                                        WEBKIT_HISTORY_FORWARD);
-
-}
-
 static EphyHistoryItem*
 impl_get_next_history_item (EphyEmbed *embed)
 {
@@ -569,8 +524,6 @@
   iface->print_preview_navigate = impl_print_preview_navigate;
   iface->has_modified_forms = impl_has_modified_forms;
   iface->get_security_level = impl_get_security_level;
-  iface->get_backward_history = impl_get_backward_history;
-  iface->get_forward_history = impl_get_forward_history;
   iface->get_next_history_item = impl_get_next_history_item;
   iface->get_previous_history_item = impl_get_previous_history_item;
   iface->go_to_history_item = impl_go_to_history_item;

Modified: trunk/src/ephy-navigation-action.c
==============================================================================
--- trunk/src/ephy-navigation-action.c	(original)
+++ trunk/src/ephy-navigation-action.c	Mon Jun 30 07:23:47 2008
@@ -2,6 +2,7 @@
 /*
  *  Copyright  2003, 2004 Marco Pesenti Gritti
  *  Copyright  2003, 2004 Christian Persch
+ *  Copyright  2008 Jan Alonzo
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -36,12 +37,20 @@
 #include "ephy-debug.h"
 
 #include <gtk/gtk.h>
+#include <webkit/webkit.h>
 
-#define HISTORY_ITEM_DATA_KEY	"HistoryItem"
-#define URL_DATA_KEY	        "GoURL"
+#define HISTORY_ITEM_DATA_KEY	  "HistoryItem"
+#define URL_DATA_KEY	          "GoURL"
+#define WEBKIT_BACK_FORWARD_LIMIT 100
 
 #define EPHY_NAVIGATION_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_NAVIGATION_ACTION, EphyNavigationActionPrivate))
 
+typedef enum
+{
+	WEBKIT_HISTORY_BACKWARD,
+	WEBKIT_HISTORY_FORWARD
+} WebKitHistoryType;
+
 struct _EphyNavigationActionPrivate
 {
 	EphyWindow *window;
@@ -132,16 +141,14 @@
 select_menu_item_cb (GtkWidget *menuitem,
 	             EphyNavigationAction *action)
 {
-	char *url;
+	const char *url;
 	GtkWidget *statusbar;
-	EphyHistoryItem *item;
-	char *freeme = NULL;
+	WebKitWebHistoryItem *item;
 
-	item = (EphyHistoryItem*)g_object_get_data (G_OBJECT (menuitem), HISTORY_ITEM_DATA_KEY);
+	item = (WebKitWebHistoryItem*)g_object_get_data (G_OBJECT (menuitem), HISTORY_ITEM_DATA_KEY);
 	if (item)
 	{
-		url = ephy_history_item_get_url (item);
-		freeme = url;
+		url = webkit_web_history_item_get_uri (item);
 	}
 	else
 	{
@@ -152,8 +159,6 @@
 	statusbar = ephy_window_get_statusbar (action->priv->window);
 
 	gtk_statusbar_push (GTK_STATUSBAR (statusbar), action->priv->statusbar_cid, url);
-
-	g_free (freeme);
 }
 
 static void
@@ -184,6 +189,24 @@
 			ephy_gui_is_middle_click () ? EPHY_LINK_NEW_TAB : 0);
 }
 
+static GList*
+webkit_construct_history_list (WebKitWebView *web_view, WebKitHistoryType hist_type) 
+{
+	WebKitWebBackForwardList *web_back_forward_list;
+	GList *webkit_items;
+
+	web_back_forward_list = webkit_web_view_get_back_forward_list (web_view);
+
+	if (hist_type == WEBKIT_HISTORY_FORWARD)
+		webkit_items = webkit_web_back_forward_list_get_forward_list_with_limit (web_back_forward_list,
+											 WEBKIT_BACK_FORWARD_LIMIT);
+	else
+		webkit_items = webkit_web_back_forward_list_get_back_list_with_limit (web_back_forward_list,
+										      WEBKIT_BACK_FORWARD_LIMIT);
+
+	return webkit_items;
+}
+
 static GtkWidget *
 build_back_or_forward_menu (EphyNavigationAction *action)
 {
@@ -191,14 +214,20 @@
 	GtkMenuShell *menu;
 	EphyEmbed *embed;
 	GList *list, *l;
+	WebKitWebView *web_view;
 
 	embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
 	g_return_val_if_fail (embed != NULL, NULL);
 
+	web_view = EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed);
+	g_return_val_if_fail (web_view != NULL, NULL);
+
 	if (action->priv->direction == EPHY_NAVIGATION_DIRECTION_BACK)
-		list = ephy_embed_get_backward_history (embed);
+		list = webkit_construct_history_list (web_view,
+						      WEBKIT_HISTORY_BACKWARD);
 	else
-		list = ephy_embed_get_forward_history (embed);
+		list = webkit_construct_history_list (web_view,
+						      WEBKIT_HISTORY_FORWARD);
 
 	menu = GTK_MENU_SHELL (gtk_menu_new ());
 
@@ -207,17 +236,15 @@
 	for (l = list; l != NULL; l = l->next)
 	{
 		GtkWidget *item;
-		EphyHistoryItem *hitem;
-		char *title, *url;
+		WebKitWebHistoryItem *hitem;
+		const char *title, *url;
 
-		hitem = (EphyHistoryItem*)l->data;
-		url = ephy_history_item_get_url (hitem);
-		title = ephy_history_item_get_title (hitem);
+		hitem = (WebKitWebHistoryItem*)l->data;
+		url = webkit_web_history_item_get_uri (hitem);
+		title = webkit_web_history_item_get_title (hitem);
 
 		item = new_history_menu_item (title ? title : url, url);
 
-		g_free (title);
-
 		g_object_set_data_full (G_OBJECT (item), HISTORY_ITEM_DATA_KEY, hitem,
 					(GDestroyNotify) g_object_unref);
 



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