aboutsummaryrefslogtreecommitdiffstats
path: root/src/bookmarks/ephy-bookmarks.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@it.gnome.org>2003-07-27 21:10:56 +0800
committerMarco Pesenti Gritti <mpeseng@src.gnome.org>2003-07-27 21:10:56 +0800
commitd1f38adb951f506e11864f0784f325a940a3d232 (patch)
treed58f9243e7c3926ac2840edb05797fbbe75e1de6 /src/bookmarks/ephy-bookmarks.c
parente9f8e15bf4f624f566eb0ea66e47be67098d5dc2 (diff)
downloadgsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.gz
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.zst
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.zip
2003-07-27 Marco Pesenti Gritti <marco@it.gnome.org>
* data/ui/epiphany-toolbar.xml.in: * lib/egg/egg-editable-toolbar.c: (drag_data_received_cb): * lib/egg/egg-editable-toolbar.h: * lib/egg/egg-toolbar-editor.c: (parse_item_list): * lib/egg/egg-toolbars-model.c: (egg_toolbars_model_to_xml), (safe_save_xml), (egg_toolbars_model_save), (toolbars_item_new), (free_item_node), (egg_toolbars_model_add_separator), (egg_toolbars_model_add_item), (parse_item_list), (impl_get_item_id), (impl_get_item_name), (impl_get_item_type), (egg_toolbars_model_class_init), (egg_toolbars_model_item_nth), (egg_toolbars_model_toolbar_nth), (egg_toolbars_model_get_item_id), (egg_toolbars_model_get_item_name), (egg_toolbars_model_get_item_type): * lib/egg/egg-toolbars-model.h: * lib/egg/eggtoolbar.c: (egg_toolbar_finalize): * lib/ephy-dnd.c: (add_one_topic), (ephy_dnd_drag_data_get): * lib/ephy-dnd.h: * lib/widgets/ephy-node-view.c: (drag_data_received_cb), (ephy_node_view_select_node_by_key), (ephy_node_view_construct), (ephy_node_view_add_data_column), (ephy_node_view_enable_drag_source): * lib/widgets/ephy-node-view.h: * lib/widgets/ephy-tree-model-sort.c: (ephy_tree_model_sort_class_init), (ephy_tree_model_sort_init), (ephy_tree_model_sort_multi_row_draggable), (ephy_tree_model_sort_set_column_id), (each_property_get_data_binder), (ephy_tree_model_sort_multi_drag_data_get): * lib/widgets/ephy-tree-model-sort.h: * src/bookmarks/ephy-bookmark-properties.c: (toolbar_checkbox_changed_cb), (build_ui): * src/bookmarks/ephy-bookmarks-editor.c: (cmd_show_in_bookmarks_bar), (ephy_bookmarks_editor_update_menu), (node_dropped_cb), (provide_keyword_uri), (ephy_bookmarks_editor_construct): * src/bookmarks/ephy-bookmarks.c: (ephy_bookmarks_init_defaults), (ephy_bookmarks_remove_keyword), (ephy_bookmarks_get_topic_uri), (ephy_bookmarks_find_keyword): * src/bookmarks/ephy-bookmarks.h: * src/ephy-history-window.c: (ephy_history_window_construct): * src/ephy-toolbars-model.c: (ephy_toolbars_model_get_action_name), (ephy_toolbars_model_get_node), (bookmark_destroy_cb), (impl_get_item_name), (impl_get_item_id), (impl_get_item_type), (connect_item), (ephy_toolbars_model_set_bookmarks), (ephy_toolbars_model_class_init), (save_changes), (item_added), (item_removed), (toolbar_added), (toolbar_removed), (ephy_toolbars_model_init), (ephy_toolbars_model_finalize), (ephy_toolbars_model_remove_bookmark),
Diffstat (limited to 'src/bookmarks/ephy-bookmarks.c')
-rw-r--r--src/bookmarks/ephy-bookmarks.c72
1 files changed, 60 insertions, 12 deletions
diff --git a/src/bookmarks/ephy-bookmarks.c b/src/bookmarks/ephy-bookmarks.c
index 187efc9be..2ba82aa78 100644
--- a/src/bookmarks/ephy-bookmarks.c
+++ b/src/bookmarks/ephy-bookmarks.c
@@ -210,8 +210,7 @@ ephy_bookmarks_autocompletion_source_init (EphyAutocompletionSourceIface *iface)
static void
ephy_bookmarks_init_defaults (EphyBookmarks *eb)
{
- int i, id;
- EphyNode *node;
+ int i;
for (i = 0; i < n_default_topics; i++)
{
@@ -220,13 +219,12 @@ ephy_bookmarks_init_defaults (EphyBookmarks *eb)
for (i = 0; i < n_default_bookmarks; i++)
{
- ephy_bookmarks_add (eb, default_bookmarks[i].title,
- default_bookmarks[i].location);
+ EphyNode *bmk;
- node = ephy_bookmarks_find_bookmark (eb, default_bookmarks[i].location);
- if (node == NULL) break;
- id = ephy_node_get_id (node);
- ephy_toolbars_model_add_bookmark (eb->priv->toolbars_model, FALSE, id);
+ bmk = ephy_bookmarks_add (eb, default_bookmarks[i].title,
+ default_bookmarks[i].location);
+ ephy_toolbars_model_add_bookmark (eb->priv->toolbars_model, FALSE,
+ ephy_node_get_id (bmk));
}
}
@@ -1119,13 +1117,44 @@ ephy_bookmarks_add_keyword (EphyBookmarks *eb,
return key;
}
-void
+void
ephy_bookmarks_remove_keyword (EphyBookmarks *eb,
- EphyNode *keyword)
+ EphyNode *keyword)
{
ephy_node_remove_child (eb->priv->keywords, keyword);
}
+char *
+ephy_bookmarks_get_topic_uri (EphyBookmarks *eb,
+ EphyNode *node)
+{
+ char *uri;
+
+ if (ephy_bookmarks_get_bookmarks (eb) == node)
+ {
+ uri = g_strdup ("topic://Special/All");
+ }
+ else if (ephy_bookmarks_get_not_categorized (eb) == node)
+ {
+ uri = g_strdup ("topic://Special/NotCategorized");
+ }
+ else if (ephy_bookmarks_get_favorites (eb) == node)
+ {
+ uri = g_strdup ("topic://Special/Favorites");
+ }
+ else
+ {
+ const char *name;
+
+ name = ephy_node_get_property_string
+ (node, EPHY_NODE_KEYWORD_PROP_NAME);
+
+ uri = g_strdup_printf ("topic://%s", name);
+ }
+
+ return uri;
+}
+
EphyNode *
ephy_bookmarks_find_keyword (EphyBookmarks *eb,
const char *name,
@@ -1134,9 +1163,11 @@ ephy_bookmarks_find_keyword (EphyBookmarks *eb,
EphyNode *node;
GPtrArray *children;
int i;
+ const char *topic_name;
g_return_val_if_fail (name != NULL, NULL);
+ topic_name = name;
if (g_utf8_strlen (name, -1) == 0)
{
@@ -1144,6 +1175,23 @@ ephy_bookmarks_find_keyword (EphyBookmarks *eb,
return NULL;
}
+ if (strcmp (name, "topic://Special/All") == 0)
+ {
+ return ephy_bookmarks_get_bookmarks (eb);
+ }
+ else if (strcmp (name, "topic://Special/NotCategorized") == 0)
+ {
+ return ephy_bookmarks_get_not_categorized (eb);
+ }
+ else if (strcmp (name, "topic://Special/Favorites") == 0)
+ {
+ return ephy_bookmarks_get_favorites (eb);
+ }
+ else if (g_str_has_prefix (name, "topic://"))
+ {
+ topic_name += strlen ("topic://");
+ }
+
children = ephy_node_get_children (eb->priv->keywords);
node = NULL;
for (i = 0; i < children->len; i++)
@@ -1154,8 +1202,8 @@ ephy_bookmarks_find_keyword (EphyBookmarks *eb,
kid = g_ptr_array_index (children, i);
key = ephy_node_get_property_string (kid, EPHY_NODE_KEYWORD_PROP_NAME);
- if ((partial_match && g_str_has_prefix (key, name) > 0) ||
- (!partial_match && strcmp (key, name) == 0))
+ if ((partial_match && g_str_has_prefix (key, topic_name) > 0) ||
+ (!partial_match && strcmp (key, topic_name) == 0))
{
node = kid;
}