Skip to content

Commit 63de6ce

Browse files
Allow changeModeledMethods to also call fireModifiedMethodsChangedEvent
1 parent 59118f6 commit 63de6ce

File tree

1 file changed

+27
-23
lines changed

1 file changed

+27
-23
lines changed

extensions/ql-vscode/src/model-editor/modeling-store.ts

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ export class ModelingStore extends DisposableObject {
216216
methods: Record<string, ModeledMethod[]>,
217217
setModified: boolean,
218218
) {
219-
this.changeModeledMethods(dbItem, (state) => {
219+
this.changeModeledMethods(dbItem, setModified, (state) => {
220220
const newModeledMethods = {
221221
...methods,
222222
// Keep all methods that are already modeled in some form in the state
@@ -227,18 +227,22 @@ export class ModelingStore extends DisposableObject {
227227
),
228228
};
229229
state.modeledMethods = newModeledMethods;
230-
});
231230

232-
if (setModified) {
233-
this.addModifiedMethods(dbItem, new Set(Object.keys(methods)));
234-
}
231+
if (setModified) {
232+
const newModifiedMethods = new Set([
233+
...state.modifiedMethodSignatures,
234+
...new Set(Object.keys(methods)),
235+
]);
236+
state.modifiedMethodSignatures = newModifiedMethods;
237+
}
238+
});
235239
}
236240

237241
public setModeledMethods(
238242
dbItem: DatabaseItem,
239243
methods: Record<string, ModeledMethod[]>,
240244
) {
241-
this.changeModeledMethods(dbItem, (state) => {
245+
this.changeModeledMethods(dbItem, false, (state) => {
242246
state.modeledMethods = { ...methods };
243247
});
244248
}
@@ -249,27 +253,18 @@ export class ModelingStore extends DisposableObject {
249253
modeledMethods: ModeledMethod[],
250254
setModified: boolean,
251255
) {
252-
this.changeModeledMethods(dbItem, (state) => {
256+
this.changeModeledMethods(dbItem, setModified, (state) => {
253257
const newModeledMethods = { ...state.modeledMethods };
254258
newModeledMethods[signature] = modeledMethods;
255259
state.modeledMethods = newModeledMethods;
256-
});
257260

258-
if (setModified) {
259-
this.addModifiedMethods(dbItem, [signature]);
260-
}
261-
}
262-
263-
public addModifiedMethods(
264-
dbItem: DatabaseItem,
265-
methodSignatures: Iterable<string>,
266-
) {
267-
this.changeModifiedMethods(dbItem, (state) => {
268-
const newModifiedMethods = new Set([
269-
...state.modifiedMethodSignatures,
270-
...methodSignatures,
271-
]);
272-
state.modifiedMethodSignatures = newModifiedMethods;
261+
if (setModified) {
262+
const newModifiedMethods = new Set([
263+
...state.modifiedMethodSignatures,
264+
signature,
265+
]);
266+
state.modifiedMethodSignatures = newModifiedMethods;
267+
}
273268
});
274269
}
275270

@@ -422,6 +417,7 @@ export class ModelingStore extends DisposableObject {
422417

423418
private changeModeledMethods(
424419
dbItem: DatabaseItem,
420+
modifiedMethodsChanged: boolean,
425421
updateState: (state: InternalDbModelingState) => void,
426422
) {
427423
const state = this.getState(dbItem);
@@ -433,6 +429,14 @@ export class ModelingStore extends DisposableObject {
433429
dbItem.databaseUri.toString(),
434430
dbItem.databaseUri.toString() === this.activeDb,
435431
);
432+
433+
if (modifiedMethodsChanged) {
434+
this.modelingEvents.fireModifiedMethodsChangedEvent(
435+
state.modifiedMethodSignatures,
436+
dbItem.databaseUri.toString(),
437+
dbItem.databaseUri.toString() === this.activeDb,
438+
);
439+
}
436440
}
437441

438442
private changeInProgressMethods(

0 commit comments

Comments
 (0)