diff options
author | Not Zed <NotZed@HelixCode.com> | 2000-11-03 17:16:41 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-11-03 17:16:41 +0800 |
commit | d9a3710f528f5df72ead55d0fc37985453c257d3 (patch) | |
tree | 632253045a173ed71e948622350c33c5fcdf0c3c /default_user | |
parent | 8f600bce4b4c4eacfd7526d74c23c4a7443f8785 (diff) | |
download | gsoc2013-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 'default_user')
0 files changed, 0 insertions, 0 deletions