From 2ee0c10936e46a966ac123f1d6a85ccc3dfb74db Mon Sep 17 00:00:00 2001 From: Xan Lopez Date: Tue, 6 Mar 2012 23:26:33 +0100 Subject: ephy-bookmarks: remove the "Most visited" category The place to do this kind of thing is really the History, not Bookmarks. --- src/bookmarks/ephy-bookmarks.c | 183 ----------------------------------------- src/bookmarks/ephy-bookmarks.h | 4 - 2 files changed, 187 deletions(-) (limited to 'src/bookmarks') diff --git a/src/bookmarks/ephy-bookmarks.c b/src/bookmarks/ephy-bookmarks.c index e87f716c8..f2c104637 100644 --- a/src/bookmarks/ephy-bookmarks.c +++ b/src/bookmarks/ephy-bookmarks.c @@ -53,7 +53,6 @@ #define EPHY_BOOKMARKS_XML_ROOT "ephy_bookmarks" #define EPHY_BOOKMARKS_XML_VERSION "1.03" #define BOOKMARKS_SAVE_DELAY 3 /* seconds */ -#define MAX_FAVORITES_NUM 10 #define UPDATE_URI_DATA_KEY "updated-uri" #define EPHY_BOOKMARKS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_BOOKMARKS, EphyBookmarksPrivate)) @@ -75,7 +74,6 @@ struct _EphyBookmarksPrivate EphyNodeDb *db; EphyNode *bookmarks; EphyNode *keywords; - EphyNode *favorites; EphyNode *notcategorized; EphyNode *smartbookmarks; EphyNode *lower_fav; @@ -174,7 +172,6 @@ save_filter (EphyNode *node, EphyBookmarksPrivate *priv = bookmarks->priv; return node != priv->bookmarks && - node != priv->favorites && node != priv->notcategorized && #ifdef ENABLE_ZEROCONF node != priv->local; @@ -251,133 +248,6 @@ ephy_bookmarks_save_delayed (EphyBookmarks *bookmarks, int delay) } } -static double -get_history_item_score (EphyHistory *eh, const char *page) -{ - return ephy_history_get_page_visits (eh, page); -} - -static EphyNode * -compute_lower_fav (EphyNode *favorites, double *score) -{ - GPtrArray *children; - int i; - EphyHistory *history; - EphyNode *result = NULL; - - history = EPHY_HISTORY (ephy_embed_shell_get_global_history (embed_shell)); - - *score = DBL_MAX; - children = ephy_node_get_children (favorites); - for (i = 0; i < children->len; i++) - { - const char *url; - EphyNode *child; - double item_score; - - child = g_ptr_array_index (children, i); - url = ephy_node_get_property_string - (child, EPHY_NODE_BMK_PROP_LOCATION); - item_score = get_history_item_score (history, url); - if (*score > item_score) - { - *score = item_score; - result = child; - } - } - - if (result == NULL) *score = 0; - - return result; -} - -static void -ephy_bookmarks_update_favorites (EphyBookmarks *eb) -{ - eb->priv->lower_fav = compute_lower_fav (eb->priv->favorites, - &eb->priv->lower_score); -} - -static gboolean -add_to_favorites (EphyBookmarks *bookmarks, - EphyNode *node, - EphyHistory *history) -{ - EphyBookmarksPrivate *priv = bookmarks->priv; - const char *url; - gboolean full_menu; - double score; - - if (ephy_node_db_is_immutable (priv->db)) return FALSE; - if (ephy_node_has_child (priv->favorites, node)) return FALSE; - - url = ephy_node_get_property_string (node, EPHY_NODE_BMK_PROP_LOCATION); - score = get_history_item_score (history, url); - full_menu = ephy_node_get_n_children (priv->favorites) - >= MAX_FAVORITES_NUM; - if (full_menu && score < priv->lower_score) return FALSE; - - if (priv->lower_fav && full_menu) - { - ephy_node_remove_child (priv->favorites, - priv->lower_fav); - } - - ephy_node_add_child (priv->favorites, node); - ephy_bookmarks_update_favorites (bookmarks); - - return TRUE; -} - -static void -history_site_visited_cb (EphyHistory *history, - const char *url, - EphyBookmarks *bookmarks) -{ - EphyNode *node; - - node = ephy_bookmarks_find_bookmark (bookmarks, url); - if (node == NULL) return; - - add_to_favorites (bookmarks, node, history); -} - -static void -clear_favorites (EphyBookmarks *bookmarks) -{ - EphyNode *node; - GPtrArray *children; - int i; - gboolean was_immutable; - - /* clear the favourites */ - - was_immutable = ephy_node_db_is_immutable (bookmarks->priv->db); - ephy_node_db_set_immutable (bookmarks->priv->db, FALSE); - - node = bookmarks->priv->favorites; - children = ephy_node_get_children (node); - for (i = (int) children->len - 1; i >= 0; i--) - { - EphyNode *kid; - - kid = g_ptr_array_index (children, i); - - ephy_node_remove_child (node, kid); - } - - ephy_node_db_set_immutable (bookmarks->priv->db, was_immutable); - - ephy_bookmarks_update_favorites (bookmarks); -} - -static void -history_cleared_cb (EphyHistoryService *history, - EphyBookmarks *bookmarks) -{ - clear_favorites (bookmarks); -} - static void update_bookmark_response_cb (GtkWidget *dialog, int response, @@ -476,23 +346,9 @@ static void ephy_setup_history_notifiers (EphyBookmarks *eb) { EphyHistory *history; - EphyHistoryService *history_service; history = EPHY_HISTORY (ephy_embed_shell_get_global_history (embed_shell)); - if (ephy_history_is_enabled (history) == FALSE) - { - clear_favorites (eb); - } - - history_service = EPHY_HISTORY_SERVICE (ephy_embed_shell_get_global_history_service (embed_shell)); - /* FIXME: do we want an enable/disable API for the new history? */ - - g_signal_connect (history_service, "cleared", - G_CALLBACK (history_cleared_cb), eb); - - g_signal_connect (history, "visited", - G_CALLBACK (history_site_visited_cb), eb); g_signal_connect (history, "redirect", G_CALLBACK (redirect_cb), eb); g_signal_connect (history, "icon-updated", @@ -518,7 +374,6 @@ update_bookmark_keywords (EphyBookmarks *eb, EphyNode *bookmark) kid = g_ptr_array_index (children, i); if (kid != eb->priv->notcategorized && - kid != eb->priv->favorites && kid != eb->priv->bookmarks && #ifdef ENABLE_ZEROCONF kid != eb->priv->local && @@ -586,7 +441,6 @@ bookmark_is_categorized (EphyBookmarks *eb, EphyNode *bookmark) kid = g_ptr_array_index (children, i); if (kid != eb->priv->notcategorized && - kid != eb->priv->favorites && kid != eb->priv->bookmarks && #ifdef ENABLE_ZEROCONF kid != eb->priv->local && @@ -1183,9 +1037,6 @@ ephy_bookmarks_init (EphyBookmarks *eb) /* Translators: this topic contains all bookmarks */ const char *bk_all = C_("bookmarks", "All"); - /* Translators: this topic contains the most used bookmarks */ - const char *bk_most_visited = C_("bookmarks", "Most Visited"); - /* Translators: this topic contains the not categorized bookmarks */ const char *bk_not_categorized = C_("bookmarks", "Not Categorized"); @@ -1237,19 +1088,6 @@ ephy_bookmarks_init (EphyBookmarks *eb) ephy_node_add_child (eb->priv->keywords, eb->priv->bookmarks); - /* Favorites */ - eb->priv->favorites = ephy_node_new_with_id (db, FAVORITES_NODE_ID); - - - ephy_node_set_property_string (eb->priv->favorites, - EPHY_NODE_KEYWORD_PROP_NAME, - bk_most_visited); - - ephy_node_set_property_int (eb->priv->favorites, - EPHY_NODE_KEYWORD_PROP_PRIORITY, - EPHY_NODE_SPECIAL_PRIORITY); - ephy_node_add_child (eb->priv->keywords, eb->priv->favorites); - /* Not categorized */ eb->priv->notcategorized = ephy_node_new_with_id (db, BMKS_NOTCATEGORIZED_NODE_ID); @@ -1326,7 +1164,6 @@ ephy_bookmarks_init (EphyBookmarks *eb) G_SETTINGS_BIND_GET); ephy_setup_history_notifiers (eb); - ephy_bookmarks_update_favorites (eb); } static void @@ -1348,7 +1185,6 @@ ephy_bookmarks_finalize (GObject *object) ephy_node_unref (priv->bookmarks); ephy_node_unref (priv->keywords); - ephy_node_unref (priv->favorites); ephy_node_unref (priv->notcategorized); ephy_node_unref (priv->smartbookmarks); @@ -1779,10 +1615,6 @@ ephy_bookmarks_get_topic_uri (EphyBookmarks *eb, { uri = g_strdup ("topic://Special/NotCategorized"); } - else if (ephy_bookmarks_get_favorites (eb) == node) - { - uri = g_strdup ("topic://Special/Favorites"); - } #ifdef ENABLE_ZEROCONF else if (ephy_bookmarks_get_local (eb) == node) { @@ -1831,10 +1663,6 @@ ephy_bookmarks_find_keyword (EphyBookmarks *eb, { return ephy_bookmarks_get_not_categorized (eb); } - else if (strcmp (name, "topic://Special/Favorites") == 0) - { - return ephy_bookmarks_get_favorites (eb); - } #ifdef ENABLE_ZEROCONF else if (strcmp (name, "topic://Special/Local") == 0) { @@ -1950,17 +1778,6 @@ ephy_bookmarks_get_bookmarks (EphyBookmarks *eb) return eb->priv->bookmarks; } -/** - * ephy_bookmarks_get_favorites: - * - * Return value: (transfer none): - **/ -EphyNode * -ephy_bookmarks_get_favorites (EphyBookmarks *eb) -{ - return eb->priv->favorites; -} - /** * ephy_bookmarks_get_local: * diff --git a/src/bookmarks/ephy-bookmarks.h b/src/bookmarks/ephy-bookmarks.h index d3311c874..a80e51390 100644 --- a/src/bookmarks/ephy-bookmarks.h +++ b/src/bookmarks/ephy-bookmarks.h @@ -141,10 +141,6 @@ void ephy_bookmarks_unset_keyword (EphyBookmarks *eb, char *ephy_bookmarks_get_topic_uri (EphyBookmarks *eb, EphyNode *node); -/* Favorites */ - -EphyNode *ephy_bookmarks_get_favorites (EphyBookmarks *eb); - /* Root */ EphyNode *ephy_bookmarks_get_keywords (EphyBookmarks *eb); -- cgit v1.2.3