diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index 7d5fc732..467331f8 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -37,6 +37,14 @@ namespace IDE public String mName = new String() ~ delete _; public String mComment = new String() ~ delete _; + public bool IncludeInMap + { + get + { + return mIncludeKind != .Manual; + } + } + public ~this() { Debug.Assert(mRefCount == 0); @@ -236,9 +244,12 @@ namespace IDE bool didNameMatch = mName == fileName; - mParentFolder.mChildMap.Remove(mName); - mName.Set(newName); - mParentFolder.mChildMap.Add(mName, this); + if (IncludeInMap) + { + mParentFolder.mChildMap.Remove(mName); + mName.Set(newName); + mParentFolder.mChildMap.Add(mName, this); + } if ((didNameMatch) && (changePath)) { @@ -480,8 +491,12 @@ namespace IDE } mChildItems.Insert(index, item); - bool added = mChildMap.TryAdd(item.mName, item); - Debug.Assert(added); + + if (item.IncludeInMap) + { + bool added = mChildMap.TryAdd(item.mName, item); + Debug.Assert(added); + } } public virtual void InsertChild(ProjectItem item, ProjectItem insertBefore) @@ -505,7 +520,8 @@ namespace IDE projectFileItem.StopWatching(); } - mChildMap.Remove(item.mName); + if (item.IncludeInMap) + mChildMap.Remove(item.mName); mChildItems.Remove(item); item.mParentFolder = null; } diff --git a/IDE/src/ui/ProjectPanel.bf b/IDE/src/ui/ProjectPanel.bf index ca02660e..058c3d4c 100644 --- a/IDE/src/ui/ProjectPanel.bf +++ b/IDE/src/ui/ProjectPanel.bf @@ -1103,7 +1103,7 @@ namespace IDE.ui app.RemoveProject(project); } - void ProjectItemUnregister(ProjectItem projectItem, bool isDeleting) + void ProjectItemUnregister(ProjectItem projectItem, bool isRemovingProjectSource) { var projectSource = projectItem as ProjectSource; if (projectSource != null) @@ -1136,7 +1136,7 @@ namespace IDE.ui var sourceViewPanel = tab.mContent as SourceViewPanel; if ((sourceViewPanel != null) && (sourceViewPanel.mProjectSource == projectSource)) { - if (isDeleting) + if (isRemovingProjectSource) sourceViewPanel.DetachFromProjectItem(); else sourceViewPanel.QueueFullRefresh(true); @@ -1145,7 +1145,7 @@ namespace IDE.ui if (isProjectEnabled) { - if (isDeleting) + if (isRemovingProjectSource) { gApp.mBfResolveHelper.ProjectSourceRemoved(projectSource); gApp.mWorkspace.ProjectSourceRemoved(projectSource); @@ -1198,8 +1198,6 @@ namespace IDE.ui if (projectItem == null) return; - ProjectItemUnregister(projectItem, forceRemove); - bool doReleaseRef = false; bool didRemove = false; if ((forceRemove) || (projectItem.mParentFolder == null) || (projectItem.mParentFolder.mIncludeKind == .Manual) || (projectItem.mIncludeKind == .Manual) || (deletePathFunc != null)) @@ -1252,6 +1250,8 @@ namespace IDE.ui } } + ProjectItemUnregister(projectItem, didRemove); + if ((didRemove) || (!mShowIgnored)) { listItem.mParentItem.RemoveChildItem(listItem); diff --git a/IDE/src/ui/WatchPanel.bf b/IDE/src/ui/WatchPanel.bf index 6d6976c1..a6c5d92f 100644 --- a/IDE/src/ui/WatchPanel.bf +++ b/IDE/src/ui/WatchPanel.bf @@ -297,7 +297,7 @@ namespace IDE.ui { scope AutoBeefPerf("ExpressionEditWidget.UpdateText"); - if (keyChar == 0) + if ((keyChar == 0) && (doAutoComplete)) return; // Is documentation pass DeleteAndNullify!(mLastError);