@@ -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