From dbe2141c3c9eacdb7416e0ca5ab3df2e53b0fd8b Mon Sep 17 00:00:00 2001 From: wj32 Date: Sat, 20 Dec 2008 07:53:59 +0000 Subject: [PATCH] expand removed node's children git-svn-id: svn://svn.code.sf.net/p/processhacker/code@358 21ef857c-d57f-4fe0-8362-d861dc6d29cd --- .../Components/ProcessTree/ProcessTree.cs | 5 +++++ .../Components/ProcessTree/ProcessTreeModel.cs | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.cs b/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.cs index 08bd55a74..13b1ee0ce 100644 --- a/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.cs +++ b/trunk/ProcessHacker/Components/ProcessTree/ProcessTree.cs @@ -232,6 +232,11 @@ namespace ProcessHacker return treeProcesses.FindNode(_treeModel.GetPath(_treeModel.Nodes[PID])); } + public TreeNodeAdv FindTreeNode(ProcessNode node) + { + return this.FindTreeNode(node.PID); + } + public ProcessNode FindNode(TreeNodeAdv node) { return treeProcesses.GetPath(node).LastNode as ProcessNode; diff --git a/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs b/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs index 74848ee42..dd1f26f13 100644 --- a/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs +++ b/trunk/ProcessHacker/Components/ProcessTree/ProcessTreeModel.cs @@ -77,6 +77,7 @@ namespace ProcessHacker { ProcessNode targetNode = _processes[item.PID]; ProcessNode[] nodes = _roots.ToArray(); + ProcessNode[] targetChildren = null; foreach (ProcessNode node in nodes) { @@ -93,6 +94,7 @@ namespace ProcessHacker if (foundNode != null) { foundNode.Children.Remove(targetNode); + targetChildren = targetNode.Children.ToArray(); this.MoveChildrenToRoot(targetNode); break; } @@ -102,6 +104,16 @@ namespace ProcessHacker _processes.Remove(item.PID); this.StructureChanged(this, new TreePathEventArgs(new TreePath())); + + foreach (ProcessNode n in targetChildren) + { + try + { + _tree.FindTreeNode(n).ExpandAll(); + } + catch + { } + } } public TreePath GetPath(ProcessNode node)