1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-11 04:52:21 +02:00

Fixed manually added files with same name as auto files in IDE

This commit is contained in:
Brian Fiete 2020-01-23 07:43:44 -08:00
parent d59f79ef79
commit 480f909cec
3 changed files with 28 additions and 12 deletions

View file

@ -37,6 +37,14 @@ namespace IDE
public String mName = new String() ~ delete _; public String mName = new String() ~ delete _;
public String mComment = new String() ~ delete _; public String mComment = new String() ~ delete _;
public bool IncludeInMap
{
get
{
return mIncludeKind != .Manual;
}
}
public ~this() public ~this()
{ {
Debug.Assert(mRefCount == 0); Debug.Assert(mRefCount == 0);
@ -236,9 +244,12 @@ namespace IDE
bool didNameMatch = mName == fileName; bool didNameMatch = mName == fileName;
mParentFolder.mChildMap.Remove(mName); if (IncludeInMap)
mName.Set(newName); {
mParentFolder.mChildMap.Add(mName, this); mParentFolder.mChildMap.Remove(mName);
mName.Set(newName);
mParentFolder.mChildMap.Add(mName, this);
}
if ((didNameMatch) && (changePath)) if ((didNameMatch) && (changePath))
{ {
@ -480,8 +491,12 @@ namespace IDE
} }
mChildItems.Insert(index, item); 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) public virtual void InsertChild(ProjectItem item, ProjectItem insertBefore)
@ -505,7 +520,8 @@ namespace IDE
projectFileItem.StopWatching(); projectFileItem.StopWatching();
} }
mChildMap.Remove(item.mName); if (item.IncludeInMap)
mChildMap.Remove(item.mName);
mChildItems.Remove(item); mChildItems.Remove(item);
item.mParentFolder = null; item.mParentFolder = null;
} }

View file

@ -1103,7 +1103,7 @@ namespace IDE.ui
app.RemoveProject(project); app.RemoveProject(project);
} }
void ProjectItemUnregister(ProjectItem projectItem, bool isDeleting) void ProjectItemUnregister(ProjectItem projectItem, bool isRemovingProjectSource)
{ {
var projectSource = projectItem as ProjectSource; var projectSource = projectItem as ProjectSource;
if (projectSource != null) if (projectSource != null)
@ -1136,7 +1136,7 @@ namespace IDE.ui
var sourceViewPanel = tab.mContent as SourceViewPanel; var sourceViewPanel = tab.mContent as SourceViewPanel;
if ((sourceViewPanel != null) && (sourceViewPanel.mProjectSource == projectSource)) if ((sourceViewPanel != null) && (sourceViewPanel.mProjectSource == projectSource))
{ {
if (isDeleting) if (isRemovingProjectSource)
sourceViewPanel.DetachFromProjectItem(); sourceViewPanel.DetachFromProjectItem();
else else
sourceViewPanel.QueueFullRefresh(true); sourceViewPanel.QueueFullRefresh(true);
@ -1145,7 +1145,7 @@ namespace IDE.ui
if (isProjectEnabled) if (isProjectEnabled)
{ {
if (isDeleting) if (isRemovingProjectSource)
{ {
gApp.mBfResolveHelper.ProjectSourceRemoved(projectSource); gApp.mBfResolveHelper.ProjectSourceRemoved(projectSource);
gApp.mWorkspace.ProjectSourceRemoved(projectSource); gApp.mWorkspace.ProjectSourceRemoved(projectSource);
@ -1198,8 +1198,6 @@ namespace IDE.ui
if (projectItem == null) if (projectItem == null)
return; return;
ProjectItemUnregister(projectItem, forceRemove);
bool doReleaseRef = false; bool doReleaseRef = false;
bool didRemove = false; bool didRemove = false;
if ((forceRemove) || (projectItem.mParentFolder == null) || (projectItem.mParentFolder.mIncludeKind == .Manual) || (projectItem.mIncludeKind == .Manual) || (deletePathFunc != null)) 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)) if ((didRemove) || (!mShowIgnored))
{ {
listItem.mParentItem.RemoveChildItem(listItem); listItem.mParentItem.RemoveChildItem(listItem);

View file

@ -297,7 +297,7 @@ namespace IDE.ui
{ {
scope AutoBeefPerf("ExpressionEditWidget.UpdateText"); scope AutoBeefPerf("ExpressionEditWidget.UpdateText");
if (keyChar == 0) if ((keyChar == 0) && (doAutoComplete))
return; // Is documentation pass return; // Is documentation pass
DeleteAndNullify!(mLastError); DeleteAndNullify!(mLastError);