@@ -170,7 +170,7 @@ async function saveProject(targetWindow, projectFile, projectContents, externalF
170
170
// the result will contain only sections that were updated due to save, such as model.archiveFiles
171
171
const saveResult = { } ;
172
172
173
- _addOpenProject ( targetWindow , projectFile , false ) ;
173
+ _assignProjectFile ( targetWindow , projectFile ) ;
174
174
saveResult [ 'model' ] = await _saveExternalFileContents ( _getProjectDirectory ( targetWindow ) , externalFileContents ) ;
175
175
await _saveProjectFile ( targetWindow , projectFile , projectContents ) ;
176
176
const wktWindow = require ( './wktWindow' ) ;
@@ -729,6 +729,17 @@ function _addOpenProject(targetWindow, file, pending, credentialManager) {
729
729
openProjects . set ( targetWindow , value ) ;
730
730
}
731
731
732
+ // assign project file to window if none is assigned, or file path changes.
733
+ // avoid unnecessary reassignments in order to keep credential manager between saves.
734
+ function _assignProjectFile ( targetWindow , projectFile ) {
735
+ const openProject = openProjects . get ( targetWindow ) ;
736
+ const oldFile = openProject ? openProject . projectDirectory + '|' + openProject . projectFile : '' ;
737
+ const newFile = path . resolve ( path . dirname ( projectFile ) ) + '|' + path . basename ( projectFile ) ;
738
+ if ( newFile !== oldFile ) {
739
+ _addOpenProject ( targetWindow , projectFile , false ) ;
740
+ }
741
+ }
742
+
732
743
async function _createCredentialManager ( targetWindow , projectFileJsonContent ) {
733
744
let credentialStorePolicy = _getProjectCredentialStorePolicy ( projectFileJsonContent ) ;
734
745
return new Promise ( ( resolve , reject ) => {
0 commit comments