From 64700d7a95d62f62da72267eef742fe4b450f0bb Mon Sep 17 00:00:00 2001 From: disarray2077 <86157825+disarray2077@users.noreply.github.com> Date: Fri, 5 May 2023 15:03:24 -0300 Subject: [PATCH] Fix detection of external modifications --- IDE/src/IDEApp.bf | 10 ++++++++-- IDE/src/Project.bf | 2 +- IDE/src/Workspace.bf | 11 ++++++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index 3beffae9..7dea8cff 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -1473,6 +1473,12 @@ namespace IDE if (strOutDlg != null) strOutDlg(useText); + for (var entry in mWorkspace.mProjectFileEntries) + { + if (entry.mPath == path) + entry.UpdateLastWriteTime(); + } + return true; } @@ -2868,7 +2874,7 @@ namespace IDE } else { - mWorkspace.mProjectFileEnties.Add(new .(workspaceFileName)); + mWorkspace.mProjectFileEntries.Add(new .(workspaceFileName)); if (mVerb == .New) { @@ -13871,7 +13877,7 @@ namespace IDE CheckReloadSettings(); bool hadChange = false; - for (var entry in mWorkspace.mProjectFileEnties) + for (var entry in mWorkspace.mProjectFileEntries) { if (entry.HasFileChanged()) { diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index 0e8d4b72..73c51f29 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -1536,7 +1536,7 @@ namespace IDE if (mProjectName != null) { - gApp.mWorkspace.mProjectFileEnties.Add(new .(path, mProjectName)); + gApp.mWorkspace.mProjectFileEntries.Add(new .(path, mProjectName)); } return true; diff --git a/IDE/src/Workspace.bf b/IDE/src/Workspace.bf index 04808000..66959065 100644 --- a/IDE/src/Workspace.bf +++ b/IDE/src/Workspace.bf @@ -60,8 +60,7 @@ namespace IDE mPath.Set(path); if (projectName != default) mProjectName = new .(projectName); - if (File.GetLastWriteTime(mPath) case .Ok(var dt)) - mLastWriteTime = dt; + UpdateLastWriteTime(); } public bool HasFileChanged() @@ -78,6 +77,12 @@ namespace IDE } return false; } + + public void UpdateLastWriteTime() + { + if (File.GetLastWriteTime(mPath) case .Ok(var dt)) + mLastWriteTime = dt; + } } public enum IntermediateType @@ -490,7 +495,7 @@ namespace IDE public List mWorkspaceFolders = new List() ~ DeleteContainerAndItems!(_); public List mProjects = new List() ~ DeleteContainerAndItems!(_); public List mProjectSpecs = new .() ~ DeleteContainerAndItems!(_); - public List mProjectFileEnties = new .() ~ DeleteContainerAndItems!(_); + public List mProjectFileEntries = new .() ~ DeleteContainerAndItems!(_); public Dictionary mProjectNameMap = new .() ~ DeleteDictionaryAndKeys!(_); public Dictionary mProjectLockMap = new .() ~ DeleteDictionaryAndKeysAndValues!(_); public Project mStartupProject;