aboutsummaryrefslogtreecommitdiffstats
path: root/notes
diff options
context:
space:
mode:
authorNot Zed <NotZed@HelixCode.com>2000-11-03 17:16:41 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-11-03 17:16:41 +0800
commitd9a3710f528f5df72ead55d0fc37985453c257d3 (patch)
tree632253045a173ed71e948622350c33c5fcdf0c3c /notes
parent8f600bce4b4c4eacfd7526d74c23c4a7443f8785 (diff)
downloadgsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar.gz
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar.bz2
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar.lz
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar.xz
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.tar.zst
gsoc2013-evolution-d9a3710f528f5df72ead55d0fc37985453c257d3.zip
Since we insert at the parent->child position, we need to account for
2000-11-03 Not Zed <NotZed@HelixCode.com> * e-tree-model.c (e_tree_model_node_insert): Since we insert at the parent->child position, we need to account for expanded nodes above this node to properly calculate the absolute row position of the node. (e_tree_model_node_insert): If we're inserting at the end of this node, then we just use the position directly. (e_tree_model_node_remove): Completely rewritten. Now we delete all nodes at once, which should be >> faster, unfortunately still have to signal each removal, which is >> SLOW :( Its still about 2-3x faster than it was (for 25K nodes). (child_free): Free all data/subnodes of a given path, no unlinking. (e_tree_model_node_remove): If we are removing a lot of nodes [>1000 or >1/4 total nodes], then use model_changed, rather then removing each node. Yay. Now its about 500x faster than it was, for 25K nodes. (etree_pre_change): Signal handler, so we can find out when we are in a pre-change state. (etree_changed): Likewise to find when we have finished. (e_tree_model_construct): Link to the model*changed signals so we know when we are in pre/changed state. (e_tree_model_node_insert): Only perform a row_inserted if not in pre_change state. Another significant speed improvement (200-500%) on big trees. (e_tree_model_node_remove): Do not emit row_deleted (or model_changed), if we are in the pre_change state. (add_visible_descendents_to_array): Likewise for row_inserted. (e_tree_model_node_sort): And here too, for consistency. svn path=/trunk/; revision=6363
Diffstat (limited to 'notes')
0 files changed, 0 insertions, 0 deletions