summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@gnome.org>2002-05-27 12:05:09 +0000
committerMichael Meeks <michael@src.gnome.org>2002-05-27 12:05:09 +0000
commit77781baac90b238edd9ccfebe86e254c23e1c06f (patch)
treec2a3189f358d992ec6c42f7cd23216511cff1533
parentf5a05d3b103ff804f5bd913a1e1ba258ec62488d (diff)
downloadnautilus-77781baac90b238edd9ccfebe86e254c23e1c06f.tar.gz
make flag storage more efficient. (report_node_inserted): report has_child
2002-05-27 Jonathan Blandford <jrb@gnome.org> * components/tree/nautilus-tree-model.c (TreeNode): make flag storage more efficient. (report_node_inserted): report has_child toggled before reporting row_inserted. * components/tree/nautilus-tree-view.c (row_inserted_expand_node_callback): remove evil hack to emit has_child toggled on the view.
-rw-r--r--ChangeLog11
-rw-r--r--components/tree/nautilus-tree-model.c16
-rw-r--r--components/tree/nautilus-tree-view.c8
3 files changed, 19 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index c787755dd..51b5ab7fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-05-27 Jonathan Blandford <jrb@gnome.org>
+
+ * components/tree/nautilus-tree-model.c
+ (TreeNode): make flag storage more efficient.
+ (report_node_inserted): report has_child toggled before
+ reporting row_inserted.
+
+ * components/tree/nautilus-tree-view.c
+ (row_inserted_expand_node_callback): remove evil hack to
+ emit has_child toggled on the view.
+
2002-05-27 Chris Lyttle <chris@wilddev.net>
* Makefile.am: remove omf-install dir
diff --git a/components/tree/nautilus-tree-model.c b/components/tree/nautilus-tree-model.c
index d559efe54..4baa12165 100644
--- a/components/tree/nautilus-tree-model.c
+++ b/components/tree/nautilus-tree-model.c
@@ -48,8 +48,6 @@ typedef struct TreeNode TreeNode;
struct TreeNode {
/* part of this node for the file itself */
-
- gboolean inserted;
int ref_count;
NautilusFile *file;
@@ -62,7 +60,6 @@ struct TreeNode {
TreeNode *prev;
/* part of the node used only for directories */
-
int dummy_child_ref_count;
int all_children_ref_count;
@@ -72,8 +69,11 @@ struct TreeNode {
guint files_changed_id;
TreeNode *first_child;
- gboolean done_loading;
- gboolean inserting_first_child;
+
+ /* misc. flags */
+ guint done_loading : 1;
+ guint inserting_first_child : 1;
+ guint inserted : 1;
};
struct NautilusTreeModelDetails {
@@ -518,11 +518,11 @@ report_node_inserted (NautilusTreeModel *model, TreeNode *node)
report_row_inserted (model, &iter);
node->inserted = TRUE;
- if (tree_node_has_dummy_child (node)) {
- report_dummy_row_inserted (model, node);
- }
if (node->directory != NULL) {
report_row_has_child_toggled (model, &iter);
+ }
+ if (tree_node_has_dummy_child (node)) {
+ report_dummy_row_inserted (model, node);
}
}
diff --git a/components/tree/nautilus-tree-view.c b/components/tree/nautilus-tree-view.c
index 4f6ec393f..01562c5fd 100644
--- a/components/tree/nautilus-tree-view.c
+++ b/components/tree/nautilus-tree-view.c
@@ -157,14 +157,6 @@ row_inserted_expand_node_callback (GtkTreeModel *tree_model,
g_return_if_fail (uri != NULL);
parent_path = gtk_tree_model_get_path (tree_model, &parent);
-
- /* FIXME: this is really grim, but it works around the
- * fact that we can't do a child_toggled before the
- * row_insert on the child, so things get confused */
- gtk_tree_model_row_has_child_toggled (
- GTK_TREE_MODEL (view->details->child_model),
- parent_path, &parent);
-
sort_path = gtk_tree_model_sort_convert_child_path_to_path
(view->details->sort_model, parent_path);