Skip to content

Commit 105ff06

Browse files
authored
Only update project file assignment if changed (#88)
1 parent 11b9ed1 commit 105ff06

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

electron/app/js/project.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ async function saveProject(targetWindow, projectFile, projectContents, externalF
170170
// the result will contain only sections that were updated due to save, such as model.archiveFiles
171171
const saveResult = {};
172172

173-
_addOpenProject(targetWindow, projectFile, false);
173+
_assignProjectFile(targetWindow, projectFile);
174174
saveResult['model'] = await _saveExternalFileContents(_getProjectDirectory(targetWindow), externalFileContents);
175175
await _saveProjectFile(targetWindow, projectFile, projectContents);
176176
const wktWindow = require('./wktWindow');
@@ -729,6 +729,17 @@ function _addOpenProject(targetWindow, file, pending, credentialManager) {
729729
openProjects.set(targetWindow, value);
730730
}
731731

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+
732743
async function _createCredentialManager(targetWindow, projectFileJsonContent) {
733744
let credentialStorePolicy = _getProjectCredentialStorePolicy(projectFileJsonContent);
734745
return new Promise((resolve, reject) => {

0 commit comments

Comments
 (0)