diff options
author | Marco Pesenti Gritti <marco@it.gnome.org> | 2003-05-20 01:25:12 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <mpeseng@src.gnome.org> | 2003-05-20 01:25:12 +0800 |
commit | cc8f3060b3c57453f2128a573391add2a0bb47d4 (patch) | |
tree | a2f1965dfbadb7e8d0de464575abdf02ba6c3641 /src/bookmarks | |
parent | f9f7a48a13d9e876cb641af773a2eb88a4a0aaf6 (diff) | |
download | gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar.gz gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar.bz2 gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar.lz gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar.xz gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.tar.zst gsoc2013-epiphany-cc8f3060b3c57453f2128a573391add2a0bb47d4.zip |
2003-05-19 Marco Pesenti Gritti <marco@it.gnome.org>
* lib/Makefile.am:
* lib/ephy-dnd.c: (ephy_dnd_node_list_extract_nodes):
* lib/ephy-node.c: (write_lock_to_read_lock),
(read_lock_to_write_lock), (lock_gdk), (unlock_gdk), (callback),
(ephy_node_emit_signal), (ephy_node_finalize), (real_remove_child),
(remove_child), (signal_object_weak_notify),
(unref_signal_objects), (ephy_node_dispose), (ephy_node_new),
(ephy_node_new_with_id), (ephy_node_get_id), (ephy_node_ref),
(ephy_node_unref), (ephy_node_freeze), (ephy_node_thaw),
(child_changed), (real_set_property), (ephy_node_set_property),
(ephy_node_get_property), (ephy_node_get_property_string),
(ephy_node_get_property_boolean), (ephy_node_get_property_long),
(ephy_node_get_property_int), (ephy_node_get_property_double),
(ephy_node_get_property_float), (ephy_node_get_property_node),
(save_parent), (ephy_node_save_to_xml), (real_add_child),
(ephy_node_new_from_xml), (ephy_node_add_child),
(ephy_node_remove_child), (ephy_node_has_child),
(ephy_node_real_get_child_index), (ephy_node_sort_children),
(ephy_node_reorder_children), (ephy_node_get_children),
(ephy_node_get_n_children), (ephy_node_get_nth_child),
(get_child_index_real), (ephy_node_get_child_index),
(ephy_node_get_next_child), (ephy_node_get_previous_child),
(ephy_node_signal_connect_object), (ephy_node_signal_disconnect):
* lib/ephy-node.h:
* lib/ephy-state.c: (ephy_states_load), (ensure_states),
(ephy_state_add_window), (ephy_state_add_paned), (ephy_state_save):
* lib/widgets/ephy-node-view.c: (ephy_node_view_class_init),
(ephy_node_view_selection_changed_cb),
(ephy_node_view_set_property), (ephy_node_view_get_property),
(ephy_node_view_remove):
* lib/widgets/ephy-tree-model-node.c:
(ephy_tree_model_node_class_init),
(ephy_tree_model_node_set_property),
(ephy_tree_model_node_get_property),
(ephy_tree_model_node_get_value), (ephy_tree_model_node_get_path),
(ephy_tree_model_node_iter_next),
(ephy_tree_model_node_node_from_iter):
* src/bookmarks/ephy-bookmark-action.c:
(ephy_bookmark_action_init), (ephy_bookmark_action_new):
* src/bookmarks/ephy-bookmark-properties.c:
(ephy_bookmark_properties_class_init),
(ephy_bookmark_properties_set_property):
* src/bookmarks/ephy-bookmarks-editor.c:
(cmd_show_in_bookmarks_bar), (cmd_open_bookmarks_in_tabs),
(cmd_open_bookmarks_in_browser), (cmd_delete),
(cmd_bookmark_properties), (cmd_copy),
(ephy_bookmarks_editor_node_activated_cb),
(ephy_bookmarks_editor_update_menu),
Diffstat (limited to 'src/bookmarks')
-rw-r--r-- | src/bookmarks/ephy-bookmark-action.c | 8 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmark-properties.c | 11 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks-editor.c | 25 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks-export.c | 2 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks.c | 51 | ||||
-rw-r--r-- | src/bookmarks/ephy-bookmarks.h | 7 | ||||
-rw-r--r-- | src/bookmarks/ephy-topic-action.c | 23 | ||||
-rw-r--r-- | src/bookmarks/ephy-topics-selector.c | 13 |
8 files changed, 69 insertions, 71 deletions
diff --git a/src/bookmarks/ephy-bookmark-action.c b/src/bookmarks/ephy-bookmark-action.c index cbb49007f..8c2862534 100644 --- a/src/bookmarks/ephy-bookmark-action.c +++ b/src/bookmarks/ephy-bookmark-action.c @@ -427,9 +427,9 @@ ephy_bookmark_action_init (EphyBookmarkAction *action) bookmarks = ephy_shell_get_bookmarks (ephy_shell); node = ephy_bookmarks_get_bookmarks (bookmarks); - g_signal_connect_object (node, "child_changed", - G_CALLBACK (bookmarks_child_changed_cb), - action, 0); + ephy_node_signal_connect_object (node, EPHY_NODE_CHILD_CHANGED, + (EphyNodeCallback) bookmarks_child_changed_cb, + G_OBJECT (action)); } EggAction * @@ -441,7 +441,7 @@ ephy_bookmark_action_new (const char *name, guint id) bookmarks = ephy_shell_get_bookmarks (ephy_shell); - bmk = ephy_node_get_from_id (id); + bmk = ephy_bookmarks_get_from_id (bookmarks, id); g_return_val_if_fail (bmk != NULL, NULL); action = EGG_ACTION (g_object_new (EPHY_TYPE_BOOKMARK_ACTION, diff --git a/src/bookmarks/ephy-bookmark-properties.c b/src/bookmarks/ephy-bookmark-properties.c index f2b20f931..ad8afff56 100644 --- a/src/bookmarks/ephy-bookmark-properties.c +++ b/src/bookmarks/ephy-bookmark-properties.c @@ -122,11 +122,10 @@ ephy_bookmark_properties_class_init (EphyBookmarkPropertiesClass *klass) g_object_class_install_property (object_class, PROP_BOOKMARK, - g_param_spec_object ("bookmark", - "Bookmark", - "Bookmark", - EPHY_TYPE_NODE, - G_PARAM_READWRITE)); + g_param_spec_pointer ("bookmark", + "Bookmark", + "Bookmark", + G_PARAM_READWRITE)); } static void @@ -172,7 +171,7 @@ ephy_bookmark_properties_set_property (GObject *object, break; case PROP_BOOKMARK: ephy_bookmark_properties_set_bookmark - (selector, g_value_get_object (value)); + (selector, g_value_get_pointer (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); diff --git a/src/bookmarks/ephy-bookmarks-editor.c b/src/bookmarks/ephy-bookmarks-editor.c index ce4898f78..940c7595b 100644 --- a/src/bookmarks/ephy-bookmarks-editor.c +++ b/src/bookmarks/ephy-bookmarks-editor.c @@ -315,7 +315,7 @@ cmd_show_in_bookmarks_bar (EggAction *action, return; } - node = EPHY_NODE (selection->data); + node = selection->data; id = ephy_node_get_id (node); state = EGG_TOGGLE_ACTION (action)->active; @@ -346,7 +346,7 @@ cmd_open_bookmarks_in_tabs (EggAction *action, for (l = selection; l; l = l->next) { - EphyNode *node = EPHY_NODE (l->data); + EphyNode *node = l->data; const char *location; location = ephy_node_get_property_string (node, @@ -372,7 +372,7 @@ cmd_open_bookmarks_in_browser (EggAction *action, for (l = selection; l; l = l->next) { - EphyNode *node = EPHY_NODE (l->data); + EphyNode *node = l->data; const char *location; location = ephy_node_get_property_string (node, @@ -400,7 +400,7 @@ cmd_delete (EggAction *action, EphyNode *node; selected = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->key_view)); - node = EPHY_NODE (selected->data); + node = selected->data; priority = ephy_node_get_property_int (node, EPHY_NODE_KEYWORD_PROP_PRIORITY); if (priority == -1) priority = EPHY_NODE_NORMAL_PRIORITY; @@ -452,7 +452,7 @@ cmd_bookmark_properties (EggAction *action, for (l = selection; l; l = l->next) { - EphyNode *node = EPHY_NODE (l->data); + EphyNode *node = l->data; show_properties_dialog (editor, node); } @@ -491,7 +491,7 @@ cmd_copy (EggAction *action, if (g_list_length (selection) == 1) { const char *tmp; - EphyNode *node = EPHY_NODE (selection->data); + EphyNode *node = selection->data; tmp = ephy_node_get_property_string (node, EPHY_NODE_BMK_PROP_LOCATION); gtk_clipboard_set_text (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD), tmp, -1); } @@ -632,7 +632,6 @@ ephy_bookmarks_editor_node_activated_cb (GtkWidget *view, const char *location; EphyWindow *window; - g_return_if_fail (EPHY_IS_NODE (node)); location = ephy_node_get_property_string (node, EPHY_NODE_BMK_PROP_LOCATION); g_return_if_fail (location != NULL); @@ -707,7 +706,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) selected = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->key_view)); if (key_focus && selected) { - EphyNode *node = EPHY_NODE (selected->data); + EphyNode *node = selected->data; EphyNodePriority priority; gulong id; @@ -726,7 +725,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) selected = ephy_node_view_get_selection (EPHY_NODE_VIEW (editor->priv->bm_view)); if (bmk_focus && selected) { - EphyNode *node = EPHY_NODE (selected->data); + EphyNode *node = selected->data; gulong id; id = ephy_node_get_id (node); @@ -874,7 +873,7 @@ ephy_bookmarks_editor_dispose (GObject *object) return; } - selected_id = ephy_node_get_id (EPHY_NODE (selection->data)); + selected_id = ephy_node_get_id (selection->data); if (selected_id >= 0) { selected_id_str = g_strdup_printf ("%ld", selected_id); @@ -1065,11 +1064,9 @@ node_dropped_cb (EphyNodeView *view, EphyNode *node, { GList *l; - g_return_if_fail (EPHY_IS_NODE (node)); - for (l = nodes; l != NULL; l = l->next) { - EphyNode *bmk = EPHY_NODE (l->data); + EphyNode *bmk = l->data; ephy_bookmarks_set_keyword (editor->priv->bookmarks, node, bmk); } @@ -1290,7 +1287,7 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) return; } - selected_node = ephy_node_get_from_id (selected_id); + selected_node = ephy_bookmarks_get_from_id (editor->priv->bookmarks, selected_id); if (selected_node != NULL) { ephy_node_view_select_node (EPHY_NODE_VIEW (key_view), selected_node); diff --git a/src/bookmarks/ephy-bookmarks-export.c b/src/bookmarks/ephy-bookmarks-export.c index e450250a5..3403a1931 100644 --- a/src/bookmarks/ephy-bookmarks-export.c +++ b/src/bookmarks/ephy-bookmarks-export.c @@ -57,7 +57,7 @@ add_topics_list (EphyNode *topics, EphyNode *bmk, xmlNodePtr parent) for (l = bmks; l != NULL; l = l->next) { const char *name; - EphyNode *node = EPHY_NODE (l->data); + EphyNode *node = l->data; name = ephy_node_get_property_string (node, EPHY_NODE_KEYWORD_PROP_NAME); diff --git a/src/bookmarks/ephy-bookmarks.c b/src/bookmarks/ephy-bookmarks.c index 791440049..b43b1f981 100644 --- a/src/bookmarks/ephy-bookmarks.c +++ b/src/bookmarks/ephy-bookmarks.c @@ -43,6 +43,7 @@ struct EphyBookmarksPrivate { char *xml_file; + EphyNodeDb *db; EphyNode *bookmarks; EphyNode *keywords; EphyNode *favorites; @@ -284,7 +285,7 @@ ephy_bookmarks_load (EphyBookmarks *eb) { EphyNode *node; - node = ephy_node_new_from_xml (child); + node = ephy_node_new_from_xml (eb->priv->db, child); } xmlFreeDoc (doc); @@ -581,15 +582,19 @@ static void ephy_bookmarks_init (EphyBookmarks *eb) { GValue value = { 0, }; + EphyNodeDb *db; eb->priv = g_new0 (EphyBookmarksPrivate, 1); + db = ephy_node_db_new ("EphyBookmarks"); + eb->priv->db = db; + eb->priv->xml_file = g_build_filename (ephy_dot_dir (), "bookmarks.xml", NULL); /* Bookmarks */ - eb->priv->bookmarks = ephy_node_new_with_id (BOOKMARKS_NODE_ID); + eb->priv->bookmarks = ephy_node_new_with_id (db, BOOKMARKS_NODE_ID); ephy_node_ref (eb->priv->bookmarks); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, _("All")); @@ -597,19 +602,17 @@ ephy_bookmarks_init (EphyBookmarks *eb) EPHY_NODE_KEYWORD_PROP_NAME, &value); g_value_unset (&value); - g_signal_connect_object (G_OBJECT (eb->priv->bookmarks), - "child_removed", - G_CALLBACK (bookmarks_removed_cb), - G_OBJECT (eb), - 0); - g_signal_connect_object (G_OBJECT (eb->priv->bookmarks), - "child_changed", - G_CALLBACK (bookmarks_changed_cb), - G_OBJECT (eb), - 0); + ephy_node_signal_connect_object (eb->priv->bookmarks, + EPHY_NODE_CHILD_REMOVED, + (EphyNodeCallback) bookmarks_removed_cb, + G_OBJECT (eb)); + ephy_node_signal_connect_object (eb->priv->bookmarks, + EPHY_NODE_CHILD_CHANGED, + (EphyNodeCallback) bookmarks_changed_cb, + G_OBJECT (eb)); /* Keywords */ - eb->priv->keywords = ephy_node_new_with_id (KEYWORDS_NODE_ID); + eb->priv->keywords = ephy_node_new_with_id (db, KEYWORDS_NODE_ID); ephy_node_ref (eb->priv->keywords); g_value_init (&value, G_TYPE_INT); g_value_set_int (&value, EPHY_NODE_ALL_PRIORITY); @@ -617,17 +620,16 @@ ephy_bookmarks_init (EphyBookmarks *eb) EPHY_NODE_KEYWORD_PROP_PRIORITY, &value); g_value_unset (&value); - g_signal_connect_object (G_OBJECT (eb->priv->keywords), - "child_removed", - G_CALLBACK (topics_removed_cb), - G_OBJECT (eb), - 0); + ephy_node_signal_connect_object (eb->priv->keywords, + EPHY_NODE_CHILD_REMOVED, + (EphyNodeCallback) topics_removed_cb, + G_OBJECT (eb)); ephy_node_add_child (eb->priv->keywords, eb->priv->bookmarks); /* Favorites */ - eb->priv->favorites = ephy_node_new_with_id (FAVORITES_NODE_ID); + eb->priv->favorites = ephy_node_new_with_id (db, FAVORITES_NODE_ID); ephy_node_ref (eb->priv->favorites); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, _("Most Visited")); @@ -644,7 +646,7 @@ ephy_bookmarks_init (EphyBookmarks *eb) ephy_node_add_child (eb->priv->keywords, eb->priv->favorites); /* Not categorized */ - eb->priv->notcategorized = ephy_node_new_with_id (BMKS_NOTCATEGORIZED_NODE_ID); + eb->priv->notcategorized = ephy_node_new_with_id (db, BMKS_NOTCATEGORIZED_NODE_ID); ephy_node_ref (eb->priv->notcategorized); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, _("Not Categorized")); @@ -715,7 +717,7 @@ ephy_bookmarks_add (EphyBookmarks *eb, EphyNode *bm; GValue value = { 0, }; - bm = ephy_node_new (); + bm = ephy_node_new (eb->priv->db); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, title); @@ -952,7 +954,7 @@ ephy_bookmarks_add_keyword (EphyBookmarks *eb, EphyNode *key; GValue value = { 0, }; - key = ephy_node_new (); + key = ephy_node_new (eb->priv->db); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, name); @@ -1094,3 +1096,8 @@ ephy_bookmarks_get_favorites (EphyBookmarks *eb) return eb->priv->favorites; } +EphyNode * +ephy_bookmarks_get_from_id (EphyBookmarks *eb, long id) +{ + return ephy_node_db_get_node_from_id (eb->priv->db, id); +} diff --git a/src/bookmarks/ephy-bookmarks.h b/src/bookmarks/ephy-bookmarks.h index 8cf8a4bf9..8ef47ce7d 100644 --- a/src/bookmarks/ephy-bookmarks.h +++ b/src/bookmarks/ephy-bookmarks.h @@ -67,11 +67,14 @@ GType ephy_bookmarks_get_type (void); EphyBookmarks *ephy_bookmarks_new (void); +EphyNode *ephy_bookmarks_get_from_id (EphyBookmarks *eb, + long id); + /* Bookmarks */ -void ephy_bookmarks_save (EphyBookmarks *eb); +void ephy_bookmarks_save (EphyBookmarks *eb); -EphyNode *ephy_bookmarks_add (EphyBookmarks *eb, +EphyNode *ephy_bookmarks_add (EphyBookmarks *eb, const char *title, const char *url, const char *smart_url); diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c index 448e7ffb6..1670c099f 100644 --- a/src/bookmarks/ephy-topic-action.c +++ b/src/bookmarks/ephy-topic-action.c @@ -130,7 +130,7 @@ menu_activate_cb (GtkWidget *item, EggAction *action) EphyNode *node; const char *location; - node = EPHY_NODE (g_object_get_data (G_OBJECT (item), "node")); + node = g_object_get_data (G_OBJECT (item), "node"); location = ephy_node_get_property_string (node, EPHY_NODE_BMK_PROP_LOCATION); g_signal_emit (action, ephy_topic_action_signals[GO_LOCATION], @@ -159,9 +159,6 @@ sort_bookmarks (gconstpointer a, gconstpointer b) char *str_b = NULL; int retval; - g_return_val_if_fail (EPHY_IS_NODE (node_a), 1); - g_return_val_if_fail (EPHY_IS_NODE (node_b), -1); - str_a = g_utf8_casefold (ephy_node_get_property_string (node_a, EPHY_NODE_BMK_PROP_TITLE), -1); str_b = g_utf8_casefold (ephy_node_get_property_string (node_b, EPHY_NODE_BMK_PROP_TITLE), @@ -264,9 +261,6 @@ sort_topics (gconstpointer a, gconstpointer b) char *str_b = NULL; int retval; - g_return_val_if_fail (EPHY_IS_NODE (node_a), 1); - g_return_val_if_fail (EPHY_IS_NODE (node_b), -1); - priority_a = ephy_node_get_property_int (node_a, EPHY_NODE_KEYWORD_PROP_PRIORITY); priority_b = ephy_node_get_property_int (node_b, EPHY_NODE_KEYWORD_PROP_PRIORITY); @@ -366,21 +360,20 @@ static GtkWidget * build_menu (EphyTopicAction *action) { EphyNode *node; + EphyBookmarks *bookmarks; + bookmarks = ephy_shell_get_bookmarks (ephy_shell); if (action->priv->topic_id == BOOKMARKS_NODE_ID) { - EphyBookmarks *bookmarks; - LOG ("Build all bookmarks crap menu") - bookmarks = ephy_shell_get_bookmarks (ephy_shell); node = ephy_bookmarks_get_keywords (bookmarks); return build_topics_menu (action, node); } else { - node = ephy_node_get_from_id (action->priv->topic_id); + node = ephy_bookmarks_get_from_id (bookmarks, action->priv->topic_id); return build_bookmarks_menu (action, node); } } @@ -546,9 +539,9 @@ ephy_topic_action_init (EphyTopicAction *action) bookmarks = ephy_shell_get_bookmarks (ephy_shell); node = ephy_bookmarks_get_keywords (bookmarks); - g_signal_connect_object (node, "child_changed", - G_CALLBACK (topic_child_changed_cb), - action, 0); + ephy_node_signal_connect_object (node, EPHY_NODE_CHILD_CHANGED, + (EphyNodeCallback) topic_child_changed_cb, + G_OBJECT (action)); } EggAction * @@ -560,7 +553,7 @@ ephy_topic_action_new (const char *name, guint id) bookmarks = ephy_shell_get_bookmarks (ephy_shell); - bmk = ephy_node_get_from_id (id); + bmk = ephy_bookmarks_get_from_id (bookmarks, id); g_return_val_if_fail (bmk != NULL, NULL); action = EGG_ACTION (g_object_new (EPHY_TYPE_TOPIC_ACTION, diff --git a/src/bookmarks/ephy-topics-selector.c b/src/bookmarks/ephy-topics-selector.c index d97a9449f..994ed302e 100644 --- a/src/bookmarks/ephy-topics-selector.c +++ b/src/bookmarks/ephy-topics-selector.c @@ -114,11 +114,10 @@ ephy_topics_selector_class_init (EphyTopicsSelectorClass *klass) g_object_class_install_property (object_class, PROP_BOOKMARK, - g_param_spec_object ("bookmark", - "Bookmark", - "Bookmark", - EPHY_TYPE_NODE, - G_PARAM_READWRITE)); + g_param_spec_pointer ("bookmark", + "Bookmark", + "Bookmark", + G_PARAM_READWRITE)); } static void @@ -164,7 +163,7 @@ ephy_topics_selector_set_property (GObject *object, break; case PROP_BOOKMARK: ephy_topics_selector_set_bookmark - (selector, g_value_get_object (value)); + (selector, g_value_get_pointer (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -183,7 +182,7 @@ ephy_topics_selector_get_property (GObject *object, switch (prop_id) { case PROP_BOOKMARK: - g_value_set_object (value, selector); + g_value_set_pointer (value, selector); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |