summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2001-10-29 18:56:00 +0000
committerJonathan Blandford <jrb@src.gnome.org>2001-10-29 18:56:00 +0000
commitb5ccbdfb675092f2b670a047120137e260130949 (patch)
tree1bdbc144373390a9ac1bac2bcf81eda63c69a0ed
parent326f771536de9e9b621a211161827a2f02d43c5e (diff)
downloadgtk+-b5ccbdfb675092f2b670a047120137e260130949.tar.gz
fix reordered signal.
Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix reordered signal.
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.pre-2-05
-rw-r--r--ChangeLog.pre-2-105
-rw-r--r--ChangeLog.pre-2-25
-rw-r--r--ChangeLog.pre-2-45
-rw-r--r--ChangeLog.pre-2-65
-rw-r--r--ChangeLog.pre-2-85
-rw-r--r--gtk/gtktreemodelsort.c68
-rw-r--r--tests/testtreesort.c13
9 files changed, 66 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 3e220ca885..bd74dc9521 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,8 @@
+Mon Oct 29 13:54:49 2001 Jonathan Blandford <jrb@redhat.com>
+
+ * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered): fix
+ reordered signal.
+
Mon Oct 29 12:27:51 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfilesel.c (gtk_file_selection_rename_file): Grab
diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c
index 8977e5ba8c..c353ebccb0 100644
--- a/gtk/gtktreemodelsort.c
+++ b/gtk/gtktreemodelsort.c
@@ -627,7 +627,6 @@ gtk_tree_model_sort_row_deleted (GtkTreeModel *s_model,
if (path == NULL)
return;
- g_print ("path to be deleted: %s\n", gtk_tree_path_to_string (path));
gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
level = SORT_LEVEL (iter.user_data);
@@ -676,22 +675,21 @@ gtk_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
gint *new_order,
gpointer data)
{
- int i;
SortElt *elt;
SortLevel *level;
-
- GtkTreeIter iter;
+ GtkTreeIter iter;
+ gint *tmp_array;
+ int i;
GtkTreePath *path;
-
GtkTreeModelSort *tree_model_sort = GTK_TREE_MODEL_SORT (data);
- g_return_if_fail (s_iter != NULL);
g_return_if_fail (new_order != NULL);
if (s_path == NULL || gtk_tree_path_get_indices (s_path) == NULL)
{
if (tree_model_sort->root == NULL)
return;
+ path = gtk_tree_path_new ();
level = SORT_LEVEL (tree_model_sort->root);
}
else
@@ -700,48 +698,40 @@ gtk_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
if (path == NULL)
return;
gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);
- gtk_tree_path_free (path);
level = SORT_LEVEL (iter.user_data);
elt = SORT_ELT (iter.user_data2);
if (!elt->children)
- return;
+ {
+ gtk_tree_path_free (path);
+ return;
+ }
level = elt->children;
}
if (level->array->len < 2)
- return;
-
- /** unsorted: set offsets, resort without reordered emission **/
- if (tree_model_sort->sort_column_id == -1)
{
- path = gtk_tree_model_sort_convert_child_path_to_path (tree_model_sort,
- s_path);
-
- if (!path)
- {
- return;
- }
-
- for (i = 0; i < level->array->len; i++)
- {
- g_array_index (level->array, SortElt, i).offset = new_order[i];
-
- if (GTK_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort)
- && tree_model_sort->sort_column_id == -1)
- {
- get_child_iter_from_elt_no_cache (tree_model_sort,
- &(g_array_index (level->array, SortElt, i).iter), level, &g_array_index (level->array, SortElt, i));
- }
- }
+ gtk_tree_path_free (path);
+ return;
+ }
- gtk_tree_model_sort_increment_stamp (tree_model_sort);
+ tmp_array = g_new (int, level->array->len);
+ for (i = 0; i < level->array->len; i++)
+ tmp_array[new_order[i]] = g_array_index (level->array, SortElt, i).offset;
+ for (i = 0; i < level->array->len; i++)
+ g_array_index (level->array, SortElt, i).offset = tmp_array[i];
+ g_free (tmp_array);
+
+ if (tree_model_sort->sort_column_id == -1 &&
+ tree_model_sort->default_sort_func == (GtkTreeIterCompareFunc) 0x1)
+ {
gtk_tree_model_sort_sort_level (tree_model_sort, level,
FALSE, FALSE);
-
+ gtk_tree_model_sort_increment_stamp (tree_model_sort);
+
if (gtk_tree_path_get_depth (path))
{
gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_model_sort),
@@ -755,18 +745,9 @@ gtk_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
gtk_tree_model_rows_reordered (GTK_TREE_MODEL (tree_model_sort),
path, NULL, new_order);
}
-
- gtk_tree_path_free (path);
-
- return;
}
- /** sorted: update offsets, no emission of reordered signal **/
- for (i = 0; i < level->array->len; i++)
- g_array_index (level->array, SortElt, i).offset =
- new_order[g_array_index (level->array, SortElt, i).offset];
-
- gtk_tree_model_sort_increment_stamp (tree_model_sort);
+ gtk_tree_path_free (path);
}
/* Fulfill our model requirements */
@@ -2131,7 +2112,6 @@ gtk_tree_model_sort_free_level (GtkTreeModelSort *tree_model_sort,
g_assert (sort_level);
- g_print ("freeing a level\n");
if (sort_level->ref_count == 0)
{
SortLevel *parent_level = sort_level->parent_level;
diff --git a/tests/testtreesort.c b/tests/testtreesort.c
index 3b18be6f0d..8cdcb116f6 100644
--- a/tests/testtreesort.c
+++ b/tests/testtreesort.c
@@ -163,9 +163,9 @@ main (int argc, char *argv[])
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (smodel),
+ /* gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (smodel),
WORD_COLUMN_1,
- GTK_SORT_ASCENDING);
+ GTK_SORT_ASCENDING);*/
gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
@@ -230,12 +230,13 @@ main (int argc, char *argv[])
gtk_tree_view_column_set_sort_column_id (column, WORD_COLUMN_4);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view2), column);
- gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (smodel),
+ /* gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (smodel),
(GtkTreeIterCompareFunc)gtk_tree_data_list_compare_func,
NULL, NULL);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (smodel),
WORD_COLUMN_1,
- GTK_SORT_DESCENDING);
+ GTK_SORT_DESCENDING);*/
+
gtk_container_add (GTK_CONTAINER (scrolled_window2), tree_view2);
gtk_window_set_default_size (GTK_WINDOW (window2), 400, 400);
@@ -301,12 +302,12 @@ main (int argc, char *argv[])
gtk_tree_view_column_set_sort_column_id (column, WORD_COLUMN_4);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view3), column);
- gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (ssmodel),
+ /* gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (ssmodel),
(GtkTreeIterCompareFunc)gtk_tree_data_list_compare_func,
NULL, NULL);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (ssmodel),
WORD_COLUMN_1,
- GTK_SORT_ASCENDING);
+ GTK_SORT_ASCENDING);*/
gtk_container_add (GTK_CONTAINER (scrolled_window3), tree_view3);
gtk_window_set_default_size (GTK_WINDOW (window3), 400, 400);