2
0
Эх сурвалжийг харах

Fixed multi-project deletion, adding project with implicitly-loaded deps

Brian Fiete 5 жил өмнө
parent
commit
a62a995472

+ 5 - 1
IDE/src/Compiler/BfCompiler.bf

@@ -366,7 +366,9 @@ namespace IDE.Compiler
 
                 if (command is SetupProjectSettingsCommand)
                 {
-                    var setupProjectSettingsCommand = (SetupProjectSettingsCommand)command;                    
+                    var setupProjectSettingsCommand = (SetupProjectSettingsCommand)command;
+					if (setupProjectSettingsCommand.mProject.mDeleted)
+						continue;
                     gApp.SetupBeefProjectSettings(mBfSystem, this, setupProjectSettingsCommand.mProject);
                 }
 
@@ -381,6 +383,8 @@ namespace IDE.Compiler
 				ProjectSourceCommandBlock:
                 {
                     var projectSourceCommand = (ProjectSourceCommand)command;
+					if (projectSourceCommand.mProjectSource.mProject.mDeleted)
+						continue;
                     bool worked = true;
                     String sourceFilePath = scope String();
                     var projectSource = projectSourceCommand.mProjectSource;

+ 1 - 0
IDE/src/Project.bf

@@ -1257,6 +1257,7 @@ namespace IDE
 		public bool mEnabled = true;
 		public bool mLocked;
 		public bool mLockedDefault;
+		public bool mDeleted;
 
         public int32 [] mColorDialogCustomColors;
 

+ 1 - 0
IDE/src/Workspace.bf

@@ -386,6 +386,7 @@ namespace IDE
 		public List<ProjectSpec> mProjectSpecs = new .() ~ DeleteContainerAndItems!(_);
 		public Dictionary<String, Project> mProjectNameMap = new .() ~ DeleteDictionaryAndKeys!(_);
         public Project mStartupProject;
+		public bool mLoading;
 		public bool mNeedsCreate;
         public bool mHasChanged;
 		public bool mHadHotCompileSinceLastFullCompile;

+ 4 - 3
IDE/src/ui/ProjectPanel.bf

@@ -1854,7 +1854,7 @@ namespace IDE.ui
 				return null;
 			}
 
-			bool failed = false;                    
+			bool failed = false;
 			String projName = scope String();
 			Path.GetFileNameWithoutExtension(filePath, projName);
 			if (gApp.mWorkspace.FindProject(projName) != null)
@@ -1871,8 +1871,9 @@ namespace IDE.ui
 			IDEUtils.FixFilePath(projFilePath);
 			proj.mProjectPath.Set(projFilePath);
 			proj.Load(projFilePath);
-			IDEApp.sApp.AddNewProjectToWorkspace(proj, verSpec);
-			IDEApp.sApp.mWorkspace.FixOptions();
+			gApp.AddNewProjectToWorkspace(proj, verSpec);
+			gApp.mWorkspace.FixOptions();
+			gApp.[Friend]FlushDeferredLoadProjects(true);
 			InitProject(proj);
 			if (failed)
 			{