aboutsummaryrefslogtreecommitdiffstats
path: root/lib/widgets/ephy-tree-model-sort.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 /lib/widgets/ephy-tree-model-sort.c
parente9f8e15bf4f624f566eb0ea66e47be67098d5dc2 (diff)
downloadgsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.gz
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.bz2
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.lz
gsoc2013-epiphany-d1f38adb951f506e11864f0784f325a940a3d232.tar.xz
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 'lib/widgets/ephy-tree-model-sort.c')
-rw-r--r--lib/widgets/ephy-tree-model-sort.c148
1 files changed, 24 insertions, 124 deletions
diff --git a/lib/widgets/ephy-tree-model-sort.c b/lib/widgets/ephy-tree-model-sort.c
index d3b425325..14096989b 100644
--- a/lib/widgets/ephy-tree-model-sort.c
+++ b/lib/widgets/ephy-tree-model-sort.c
@@ -44,19 +44,11 @@ static gboolean ephy_tree_model_sort_multi_drag_data_delete (EggTreeMultiDragSou
struct EphyTreeModelSortPrivate
{
char *str_list;
- guint drag_property_id;
-};
-
-enum
-{
- NODE_FROM_ITER,
- LAST_SIGNAL
+ int drag_column_id;
};
static GObjectClass *parent_class = NULL;
-static guint ephy_tree_model_sort_signals[LAST_SIGNAL] = { 0 };
-
GType
ephy_tree_model_sort_get_type (void)
{
@@ -103,18 +95,6 @@ ephy_tree_model_sort_class_init (EphyTreeModelSortClass *klass)
parent_class = g_type_class_peek_parent (klass);
object_class->finalize = ephy_tree_model_sort_finalize;
-
- ephy_tree_model_sort_signals[NODE_FROM_ITER] =
- g_signal_new ("node_from_iter",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EphyTreeModelSortClass, node_from_iter),
- NULL, NULL,
- ephy_marshal_VOID__POINTER_POINTER,
- G_TYPE_NONE,
- 2,
- G_TYPE_POINTER,
- G_TYPE_POINTER);
}
static void
@@ -122,7 +102,7 @@ ephy_tree_model_sort_init (EphyTreeModelSort *ma)
{
ma->priv = g_new0 (EphyTreeModelSortPrivate, 1);
- ma->priv->drag_property_id = -1;
+ ma->priv->drag_column_id = -1;
}
static void
@@ -166,36 +146,14 @@ ephy_tree_model_sort_multi_drag_source_init (EggTreeMultiDragSourceIface *iface)
static gboolean
ephy_tree_model_sort_multi_row_draggable (EggTreeMultiDragSource *drag_source, GList *path_list)
{
- GList *l;
-
- for (l = path_list; l != NULL; l = g_list_next (l))
- {
- GtkTreeIter iter;
- GtkTreePath *path;
- EphyNode *node = NULL;
-
- path = gtk_tree_row_reference_get_path (l->data);
- gtk_tree_model_get_iter (GTK_TREE_MODEL (drag_source), &iter, path);
- g_signal_emit (G_OBJECT (drag_source),
- ephy_tree_model_sort_signals[NODE_FROM_ITER],
- 0, &iter, &node);
-
- gtk_tree_path_free (path);
-
- if (node == NULL)
- {
- return FALSE;
- }
- }
-
- return TRUE;
+ return (EPHY_TREE_MODEL_SORT (drag_source)->priv->drag_column_id > 0);
}
void
-ephy_tree_model_sort_set_drag_property (EphyTreeModelSort *ms,
- guint id)
+ephy_tree_model_sort_set_column_id (EphyTreeModelSort *ms,
+ int id)
{
- ms->priv->drag_property_id = id;
+ ms->priv->drag_column_id = id;
}
static gboolean
@@ -206,75 +164,36 @@ ephy_tree_model_sort_multi_drag_data_delete (EggTreeMultiDragSource *drag_source
}
static void
-each_url_get_data_binder (EphyDragEachSelectedItemDataGet iteratee,
- gpointer iterator_context, gpointer data)
+each_property_get_data_binder (EphyDragEachSelectedItemDataGet iteratee,
+ gpointer iterator_context, gpointer data)
{
gpointer *context = (gpointer *) iterator_context;
GList *path_list = (GList *) (context[0]);
GList *i;
- GtkTreeModel *model = GTK_TREE_MODEL (context[1]);
+ EphyTreeModelSort *model = EPHY_TREE_MODEL_SORT (context[1]);
+ GValue value = {0, };
for (i = path_list; i != NULL; i = i->next)
{
GtkTreeIter iter;
GtkTreePath *path = NULL;
- EphyNode *node = NULL;
- const char *value;
+ const char *svalue;
path = gtk_tree_row_reference_get_path (i->data);
-
gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path);
- g_signal_emit (G_OBJECT (model),
- ephy_tree_model_sort_signals[NODE_FROM_ITER],
- 0, &iter, &node);
+ gtk_tree_model_get_value (GTK_TREE_MODEL (model), &iter,
+ model->priv->drag_column_id,
+ &value);
+ svalue = g_value_get_string (&value);
- gtk_tree_path_free (path);
-
- if (node == NULL)
- return;
-
- value = ephy_node_get_property_string
- (node, EPHY_TREE_MODEL_SORT (model)->priv->drag_property_id);
-
- LOG ("Data get %s", value)
-
- iteratee (value, -1, -1, -1, -1, data);
- }
-}
+ g_return_if_fail (svalue != NULL);
-static void
-each_node_get_data_binder (EphyDragEachSelectedItemDataGet iteratee,
- gpointer iterator_context, gpointer data)
-{
- gpointer *context = (gpointer *) iterator_context;
- GList *path_list = (GList *) (context[0]);
- GList *i;
- GtkTreeModel *model = GTK_TREE_MODEL (context[1]);
+ LOG ("Data get %s", svalue)
- for (i = path_list; i != NULL; i = i->next)
- {
- GtkTreeIter iter;
- GtkTreePath *path = NULL;
- EphyNode *node = NULL;
- EphyNodeDb *db;
- char *value;
+ iteratee (svalue, -1, -1, -1, -1, data);
- path = gtk_tree_row_reference_get_path (i->data);
- gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path);
- g_signal_emit (G_OBJECT (model),
- ephy_tree_model_sort_signals[NODE_FROM_ITER],
- 0, &iter, &node);
gtk_tree_path_free (path);
-
- if (node == NULL)
- return;
-
- db = ephy_node_get_db (node);
- value = g_strdup_printf ("%s;%ld",
- ephy_node_db_get_name (db),
- ephy_node_get_id (node));
- iteratee (value, -1, -1, -1, -1, data);
- g_free (value);
+ g_value_unset (&value);
}
}
@@ -283,32 +202,13 @@ ephy_tree_model_sort_multi_drag_data_get (EggTreeMultiDragSource *drag_source,
GList *path_list,
GtkSelectionData *selection_data)
{
- GdkAtom target;
-
- target = selection_data->target;
-
- if (target == gdk_atom_intern (EPHY_DND_BOOKMARK_TYPE, FALSE) ||
- target == gdk_atom_intern (EPHY_DND_TOPIC_TYPE, FALSE))
- {
- gpointer icontext[2];
-
- icontext[0] = path_list;
- icontext[1] = drag_source;
+ gpointer icontext[2];
- ephy_dnd_drag_data_get (NULL, NULL, selection_data,
- 0, &icontext, each_node_get_data_binder);
+ icontext[0] = path_list;
+ icontext[1] = drag_source;
- }
- else
- {
- gpointer icontext[2];
-
- icontext[0] = path_list;
- icontext[1] = drag_source;
-
- ephy_dnd_drag_data_get (NULL, NULL, selection_data,
- 0, &icontext, each_url_get_data_binder);
- }
+ ephy_dnd_drag_data_get (NULL, NULL, selection_data,
+ 0, &icontext, each_property_get_data_binder);
return TRUE;
}