resolved issue with deleting the last folder in the tree

This commit is contained in:
David Sparer
2016-12-13 09:58:24 -07:00
parent d469fa1d40
commit 1e213dfff7
2 changed files with 27 additions and 5 deletions

View File

@@ -1,4 +1,8 @@
using mRemoteNG.UI.Controls;
using System.Threading;
using mRemoteNG.Container;
using mRemoteNG.Tree;
using mRemoteNG.Tree.Root;
using mRemoteNG.UI.Controls;
using NUnit.Framework;
@@ -7,10 +11,12 @@ namespace mRemoteNGTests.Tree
public class ConnectionTreeTests
{
private ConnectionTree _connectionTree;
private ConnectionTreeModel _connectionTreeModel;
[SetUp]
public void Setup()
{
_connectionTreeModel = CreateConnectionTreeModel();
_connectionTree = new ConnectionTree();
}
@@ -21,9 +27,22 @@ namespace mRemoteNGTests.Tree
}
[Test]
public void test()
[Test, Apartment(ApartmentState.STA)]
public void CanDeleteLastFolderInTheTree()
{
var lastFolder = new ContainerInfo();
_connectionTreeModel.RootNodes[0].AddChild(lastFolder);
_connectionTree.ConnectionTreeModel = _connectionTreeModel;
_connectionTree.SelectObject(lastFolder);
_connectionTree.DeleteSelectedNode();
Assert.That(_connectionTree.GetRootConnectionNode().HasChildren, Is.False);
}
private ConnectionTreeModel CreateConnectionTreeModel()
{
var connectionTreeModel = new ConnectionTreeModel();
connectionTreeModel.AddRootNode(new RootNodeInfo(RootNodeType.Connection));
return connectionTreeModel;
}
}
}

View File

@@ -26,7 +26,7 @@ namespace mRemoteNG.UI.Controls
private ImageList _imgListTree;
public ConnectionInfo SelectedNode => (ConnectionInfo)SelectedObject;
public ConnectionInfo SelectedNode => (ConnectionInfo) SelectedObject;
public NodeSearcher NodeSearcher { get; private set; }
@@ -239,7 +239,10 @@ namespace mRemoteNG.UI.Controls
RefreshTreeObject(otherChild ?? senderAsContainerInfo);
break;
case NotifyCollectionChangedAction.Remove:
RefreshTreeObjects(args.OldItems);
if (senderAsContainerInfo?.Children.Count > 0)
RefreshTreeObjects(args.OldItems);
else
RefreshTreeObject(senderAsContainerInfo);
break;
case NotifyCollectionChangedAction.Move:
RefreshTreeObjects(args.OldItems);