The Trunk: Tools-mt.896.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-mt.896.mcz

commits-2
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.896.mcz

==================== Summary ====================

Name: Tools-mt.896
Author: mt
Time: 1 October 2019, 12:51:43.394611 pm
UUID: 64caf9cf-236a-a744-9d3d-2f33f66647d9
Ancestors: Tools-mt.895

Fixes a tool-update bug when drag-dropping classes or methods between categories.

This surfaced only now because I recently cached #getFullList in PluggableListMorph. Now we notice those missing "self changed: #myListSelector" in tool models. I suppose that only "more recent" features - such as this drag-and-drop feature - might be affected because list filtering is not around *that* long.

=============== Diff against Tools-mt.895 ===============

Item was changed:
  ----- Method: Browser>>dropOnMessageCategories:at: (in category 'drag and drop') -----
  dropOnMessageCategories: method at: index
 
  | sourceClass destinationClass category copy |
  copy := Sensor shiftPressed.
  (method isKindOf: CompiledMethod)
  ifFalse:[^self inform: 'Can only drop methods'].
  sourceClass := method methodClass.
  destinationClass := self selectedClassOrMetaClass.
  sourceClass == destinationClass ifTrue:[
  category := self messageCategoryList at: index.
  category = ClassOrganizer allCategory ifTrue: [^false].
  destinationClass organization classify: method selector  under: category suppressIfDefault: false logged: true.
+ self changed: #messageCategoryList.
+ self changed: #messageList.
  ^true ].
  (copy
  or: [ (destinationClass inheritsFrom: sourceClass)
  or: [ (sourceClass inheritsFrom: destinationClass)
  or: [ sourceClass theNonMetaClass == destinationClass theNonMetaClass ] ] ])
  ifFalse: [
  (self confirm: (
  'Classes "{1}" and "{2}" are unrelated.{3}Are you sure you want to move this method?'
  format: { sourceClass. destinationClass. Character cr }))
  ifFalse: [ ^false ] ].
  destinationClass
  compile: method getSource
  classified: (self messageCategoryList at: index)
  withStamp: method timeStamp
  notifying: nil.
  copy ifFalse: [
  sourceClass removeSelector: method selector ].
  ^true!

Item was changed:
  ----- Method: Browser>>dropOnSystemCategories:at: (in category 'drag and drop') -----
  dropOnSystemCategories: aClass at: index
  | category |
  (aClass isBehavior) ifFalse:[^self inform: 'Can only drop classes'].
  category := self systemCategoryList at: index.
  self selectedEnvironment organization classify: aClass instanceSide name  under: category.
+ self changed: #systemCategoryList.
+ self changed: #classList.
  ^true!