From 2c6c556a3a657e0c33598372f9872ef632cb55d5 Mon Sep 17 00:00:00 2001 From: doug1234 Date: Mon, 6 Mar 2023 22:54:57 -0500 Subject: [PATCH] Project Workspace "Save a Copy As" confusion issue Fix #13135, close #13303 --- .../src/WinControls/ProjectPanel/ProjectPanel.cpp | 9 ++++++--- PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp index b5f9e59f2..585473380 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp @@ -384,7 +384,7 @@ bool ProjectPanel::saveWorkSpace() } } -bool ProjectPanel::writeWorkSpace(const TCHAR *projectFileName) +bool ProjectPanel::writeWorkSpace(const TCHAR *projectFileName, bool doUpdateGUI) { //write : use the default file name if new file name is not given const TCHAR * fn2write = projectFileName?projectFileName:_workSpaceFilePath.c_str(); @@ -429,7 +429,10 @@ bool ProjectPanel::writeWorkSpace(const TCHAR *projectFileName) return false; } TCHAR * fileName = PathFindFileName(fn2write); - _treeView.renameItem(tvRoot, fileName); + if (doUpdateGUI) + { + _treeView.renameItem(tvRoot, fileName); + } return true; } @@ -1194,7 +1197,7 @@ bool ProjectPanel::saveWorkSpaceAs(bool saveCopyAs) if (fn.empty()) return false; - if (!writeWorkSpace(fn.c_str())) + if (!writeWorkSpace(fn.c_str(), !saveCopyAs)) return false; if (!saveCopyAs) diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h index 7bf49e3a6..dc42ee02d 100644 --- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h +++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h @@ -125,7 +125,7 @@ protected: void recursiveAddFilesFrom(const TCHAR *folderPath, HTREEITEM hTreeItem); HTREEITEM addFolder(HTREEITEM hTreeItem, const TCHAR *folderName); - bool writeWorkSpace(const TCHAR *projectFileName = NULL); + bool writeWorkSpace(const TCHAR *projectFileName = NULL, bool doUpdateGUI = true); generic_string getRelativePath(const generic_string & fn, const TCHAR *workSpaceFileName); void buildProjectXml(TiXmlNode *root, HTREEITEM hItem, const TCHAR* fn2write); NodeType getNodeType(HTREEITEM hItem);