The Trunk: Tools-ul.662.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-ul.662.mcz

commits-2
Levente Uzonyi uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ul.662.mcz

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

Name: Tools-ul.662
Author: ul
Time: 9 January 2016, 5:14:35.787432 pm
UUID: 3972f226-5c3e-4479-bbac-cea2f7e30e3b
Ancestors: Tools-ul.661

Improved method to method category drops in Browser: moving methods from classes related by inheritance or by being meta-non-meta pairs won't have to be confirmed any more.

=============== Diff against Tools-ul.661 ===============

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