diff options
author | Marco Pesenti Gritti <marco@it.gnome.org> | 2003-07-27 21:10:56 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <mpeseng@src.gnome.org> | 2003-07-27 21:10:56 +0800 |
commit | d1f38adb951f506e11864f0784f325a940a3d232 (patch) | |
tree | d58f9243e7c3926ac2840edb05797fbbe75e1de6 /src/bookmarks/ephy-bookmarks.c | |
parent | e9f8e15bf4f624f566eb0ea66e47be67098d5dc2 (diff) | |
download | gsoc2013-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.c | 72 |
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; } |