Skip to content

Commit 823a9af

Browse files
committed
Some more optimizations to the DataTree state.
1 parent 4c416e8 commit 823a9af

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

External/Plugins/FlashDebugger/Controls/DataTreeControl.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -478,19 +478,20 @@ public void SaveState()
478478
if (state == null) state = new DataTreeState();
479479
state.Selected = _tree.SelectedNode == null ? null : _model.GetFullPath(_tree.SelectedNode.Tag as Node);
480480
state.Expanded.Clear();
481-
SaveExpanded(Nodes);
481+
if (Nodes != null && Nodes.Count > 0)
482+
SaveExpanded(Nodes);
482483
SaveScrollState();
483484
}
484485

485486
private void SaveExpanded(Collection<Node> nodes)
486487
{
487-
if (nodes == null) return;
488488
foreach (Node node in nodes)
489489
{
490-
if (Tree.FindNode(_model.GetPath(node)).IsExpanded)
490+
if (!node.IsLeaf && Tree.FindNode(_model.GetPath(node)).IsExpanded)
491491
{
492492
state.Expanded.Add(_model.GetFullPath(node));
493-
SaveExpanded(node.Nodes);
493+
if (node.Nodes.Count > 0)
494+
SaveExpanded(node.Nodes);
494495
}
495496
}
496497
}
@@ -511,21 +512,22 @@ private void SaveScrollState()
511512
public void RestoreState()
512513
{
513514
if (state == null) return;
514-
RestoreExpanded(Nodes);
515+
if (state.Expanded != null && state.Expanded.Count > 0)
516+
RestoreExpanded(Nodes);
515517
if (state.Selected != null)
516518
_tree.SelectedNode = _tree.FindNodeByTag(_model.FindNode(state.Selected));
517519
RestoreScrollState();
518520
}
519521

520522
private void RestoreExpanded(Collection<Node> nodes)
521523
{
522-
if (nodes == null) return;
523524
foreach (Node node in nodes)
524525
{
525526
if (!node.IsLeaf && state.Expanded.Contains(_model.GetFullPath(node)))
526527
{
527528
Tree.FindNode(_model.GetPath(node)).Expand();
528-
RestoreExpanded(node.Nodes);
529+
if (node.Nodes.Count > 0)
530+
RestoreExpanded(node.Nodes);
529531
}
530532
}
531533
}

0 commit comments

Comments
 (0)