Browse Source

Fixed SD2-1042: Microsoft sample for VB v1.0 hangs #Develop. - DependentUpon cycles are now broken up.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1769 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
63ef570ea4
  1. 3
      src/AddIns/Misc/SharpDbTools/Project/SharpDbTools.csproj
  2. 23
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs

3
src/AddIns/Misc/SharpDbTools/Project/SharpDbTools.csproj

@ -70,6 +70,9 @@ @@ -70,6 +70,9 @@
<EmbeddedResource Include="Src\GetConnectionLogicalNameDialog.resx">
<DependentUpon>GetConnectionLogicalNameDialog.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs">
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Src\Viewer\TableDescribeViewContent.cs" />
</ItemGroup>
<ItemGroup>

23
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs

@ -411,14 +411,29 @@ namespace ICSharpCode.SharpDevelop.Project @@ -411,14 +411,29 @@ namespace ICSharpCode.SharpDevelop.Project
}
AbstractProjectBrowserTreeNode parentNode = fileNodeDictionary[fileName];
pair.Key.Parent.Nodes.Remove(pair.Key);
pair.Key.AddTo(parentNode);
if (pair.Key.FileNodeStatus != FileNodeStatus.Missing) {
pair.Key.FileNodeStatus = FileNodeStatus.BehindFile;
if (NodeIsParent(parentNode, pair.Key)) {
// is pair.Key a parent of parentNode?
// if yes, we have a parent cycle - break it by adding one node to the directory
pair.Key.AddTo(this);
} else {
pair.Key.AddTo(parentNode);
if (pair.Key.FileNodeStatus != FileNodeStatus.Missing) {
pair.Key.FileNodeStatus = FileNodeStatus.BehindFile;
}
}
}
base.Initialize();
}
static bool NodeIsParent(TreeNode childNode, TreeNode parentNode)
{
do {
if (childNode == parentNode) return true;
childNode = childNode.Parent;
} while (childNode != null);
return false;
}
protected void BaseInitialize()
{
base.Initialize();

Loading…
Cancel
Save