Christoph Thiede uploaded a new version of Morphic to project The Treated Inbox: http://source.squeak.org/treated/Morphic-ct.1905.mcz
==================== Summary ====================
Name: Morphic-ct.1905 Author: ct Time: 24 February 2022, 11:59:10.222147 am UUID: ac4eb336-4623-5f48-9485-b4e46c636580 Ancestors: Morphic-mt.1904
Proposal: For Morph extensions, establish the common return value semantics known from most other collection protocols. I.e., #setProperty:... now answers the added value and #removeProperty: answers the removed value.
This can also help us to clean up a number of senders, browse this for an impression: self systemNavigation browseAllCallsOn: #removeProperty: and: #valueOfProperty:
=============== Diff against Morphic-mt.1904 ===============
Item was changed: ----- Method: Morph>>removeProperty: (in category 'accessing - properties') ----- removeProperty: aSymbol + "Remove the property named aSymbol if it exists. Answer the old value or nil." - "removes the property named aSymbol if it exists" extension ifNil: [^ self]. + ^ extension removeProperty: aSymbol! - extension removeProperty: aSymbol!
Item was changed: ----- Method: Morph>>setProperties: (in category 'accessing - properties') ----- setProperties: aList + "Set many properties at once from a list of prop, value, prop, value. Answer the list." - "Set many properties at once from a list of prop, value, prop, value"
1 to: aList size by: 2 do: [:ii | + self setProperty: (aList at: ii) toValue: (aList at: ii+1)]. + ^ aList! - self setProperty: (aList at: ii) toValue: (aList at: ii+1)].!
Item was changed: ----- Method: Morph>>setProperty:toValue: (in category 'accessing - properties') ----- setProperty: aSymbol toValue: anObject + "Change the receiver's property named aSymbol to anObject. Answer anObject." - "change the receiver's property named aSymbol to anObject" anObject ifNil: [^ self removeProperty: aSymbol]. + ^ self assureExtension setProperty: aSymbol toValue: anObject! - self assureExtension setProperty: aSymbol toValue: anObject!
Item was changed: ----- Method: MorphExtension>>removeProperty: (in category 'accessing - other properties') ----- removeProperty: aSymbol + "Removes the property named aSymbol if it exists. Answer the old value or nil." + | value | - "removes the property named aSymbol if it exists" otherProperties ifNil: [^ self]. + value := otherProperties removeKey: aSymbol ifAbsent: []. + otherProperties isEmpty ifTrue: [self removeOtherProperties]. + ^ value! - otherProperties removeKey: aSymbol ifAbsent: []. - otherProperties isEmpty ifTrue: [self removeOtherProperties]!
Item was changed: ----- Method: MorphExtension>>setProperty:toValue: (in category 'accessing - other properties') ----- setProperty: aSymbol toValue: abObject + "Change the receiver's property named aSymbol to anObject. Answer anObject." + ^ self assureOtherProperties at: aSymbol put: abObject! - "change the receiver's property named aSymbol to anObject" - self assureOtherProperties at: aSymbol put: abObject!
packages@lists.squeakfoundation.org