@@ -227,8 +227,9 @@ export class ModelingStore extends DisposableObject {
227227 public addModeledMethods (
228228 dbItem : DatabaseItem ,
229229 methods : Record < string , ModeledMethod [ ] > ,
230+ setModified : boolean ,
230231 ) {
231- this . changeModeledMethods ( dbItem , ( state ) => {
232+ this . changeModeledAndModifiedMethods ( dbItem , ( state ) => {
232233 const newModeledMethods = {
233234 ...methods ,
234235 // Keep all methods that are already modeled in some form in the state
@@ -239,14 +240,22 @@ export class ModelingStore extends DisposableObject {
239240 ) ,
240241 } ;
241242 state . modeledMethods = newModeledMethods ;
243+
244+ if ( setModified ) {
245+ const newModifiedMethods = new Set ( [
246+ ...state . modifiedMethodSignatures ,
247+ ...new Set ( Object . keys ( methods ) ) ,
248+ ] ) ;
249+ state . modifiedMethodSignatures = newModifiedMethods ;
250+ }
242251 } ) ;
243252 }
244253
245254 public setModeledMethods (
246255 dbItem : DatabaseItem ,
247256 methods : Record < string , ModeledMethod [ ] > ,
248257 ) {
249- this . changeModeledMethods ( dbItem , ( state ) => {
258+ this . changeModeledAndModifiedMethods ( dbItem , ( state ) => {
250259 state . modeledMethods = { ...methods } ;
251260 } ) ;
252261 }
@@ -255,45 +264,28 @@ export class ModelingStore extends DisposableObject {
255264 dbItem : DatabaseItem ,
256265 signature : string ,
257266 modeledMethods : ModeledMethod [ ] ,
267+ setModified : boolean ,
258268 ) {
259- this . changeModeledMethods ( dbItem , ( state ) => {
269+ this . changeModeledAndModifiedMethods ( dbItem , ( state ) => {
260270 const newModeledMethods = { ...state . modeledMethods } ;
261271 newModeledMethods [ signature ] = modeledMethods ;
262272 state . modeledMethods = newModeledMethods ;
263- } ) ;
264- }
265-
266- public setModifiedMethods (
267- dbItem : DatabaseItem ,
268- methodSignatures : Set < string > ,
269- ) {
270- this . changeModifiedMethods ( dbItem , ( state ) => {
271- state . modifiedMethodSignatures = new Set ( methodSignatures ) ;
272- } ) ;
273- }
274273
275- public addModifiedMethods (
276- dbItem : DatabaseItem ,
277- methodSignatures : Iterable < string > ,
278- ) {
279- this . changeModifiedMethods ( dbItem , ( state ) => {
280- const newModifiedMethods = new Set ( [
281- ...state . modifiedMethodSignatures ,
282- ...methodSignatures ,
283- ] ) ;
284- state . modifiedMethodSignatures = newModifiedMethods ;
274+ if ( setModified ) {
275+ const newModifiedMethods = new Set ( [
276+ ...state . modifiedMethodSignatures ,
277+ signature ,
278+ ] ) ;
279+ state . modifiedMethodSignatures = newModifiedMethods ;
280+ }
285281 } ) ;
286282 }
287283
288- public addModifiedMethod ( dbItem : DatabaseItem , methodSignature : string ) {
289- this . addModifiedMethods ( dbItem , [ methodSignature ] ) ;
290- }
291-
292284 public removeModifiedMethods (
293285 dbItem : DatabaseItem ,
294286 methodSignatures : string [ ] ,
295287 ) {
296- this . changeModifiedMethods ( dbItem , ( state ) => {
288+ this . changeModeledAndModifiedMethods ( dbItem , ( state ) => {
297289 const newModifiedMethods = Array . from (
298290 state . modifiedMethodSignatures ,
299291 ) . filter ( ( s ) => ! methodSignatures . includes ( s ) ) ;
@@ -447,31 +439,17 @@ export class ModelingStore extends DisposableObject {
447439 ) ;
448440 }
449441
450- private changeModifiedMethods (
442+ private changeModeledAndModifiedMethods (
451443 dbItem : DatabaseItem ,
452444 updateState : ( state : InternalDbModelingState ) => void ,
453445 ) {
454446 const state = this . getState ( dbItem ) ;
455447
456448 updateState ( state ) ;
457449
458- this . modelingEvents . fireModifiedMethodsChangedEvent (
459- state . modifiedMethodSignatures ,
460- dbItem . databaseUri . toString ( ) ,
461- dbItem . databaseUri . toString ( ) === this . activeDb ,
462- ) ;
463- }
464-
465- private changeModeledMethods (
466- dbItem : DatabaseItem ,
467- updateState : ( state : InternalDbModelingState ) => void ,
468- ) {
469- const state = this . getState ( dbItem ) ;
470-
471- updateState ( state ) ;
472-
473- this . modelingEvents . fireModeledMethodsChangedEvent (
450+ this . modelingEvents . fireModeledAndModifiedMethodsChangedEvent (
474451 state . modeledMethods ,
452+ state . modifiedMethodSignatures ,
475453 dbItem . databaseUri . toString ( ) ,
476454 dbItem . databaseUri . toString ( ) === this . activeDb ,
477455 ) ;
0 commit comments