Eliot Miranda uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-eem.200.mcz
==================== Summary ====================
Name: Network-eem.200
Author: eem
Time: 14 June 2017, 11:05:42.684733 am
UUID: 20a689fd-efcd-4072-8d8d-d2dc6cb99a70
Ancestors: Network-pre.199
Make sure that order orf addresses is preserved inMailMessage>>to: and hence fix MailMessageTest>>testCreateAReplyForFrom.
=============== Diff against Network-pre.199 ===============
Item was changed:
----- Method: MailMessage>>to: (in category 'access') -----
to: aString
+ "Set the to address(es). Make sure order is preserved when uniqueing the addresses."
+ | sanitizedMailAddresses uniqueMailAddresses |
+ sanitizedMailAddresses := MailAddressParser addressesIn: aString.
+ ^self setField: 'to' toString: (uniqueMailAddresses withoutDuplicates joinSeparatedBy: ', ')!
-
- | sanitizedMailAddresses |
- sanitizedMailAddresses := (MailAddressParser addressesIn: aString) asSet asArray.
- ^self setField: 'to' toString: (sanitizedMailAddresses joinSeparatedBy: ', ')!
Eliot Miranda uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-eem.756.mcz
==================== Summary ====================
Name: Collections-eem.756
Author: eem
Time: 14 June 2017, 11:03:24.917631 am
UUID: 8d7c03bc-1cdb-44c7-9173-10d50c0dae29
Ancestors: Collections-eem.755
Add SequenceableCollection>>withoutDuplicates for a more elegant fix to MailMessage>>to:
=============== Diff against Collections-eem.755 ===============
Item was added:
+ ----- Method: SequenceableCollection>>withoutDuplicates (in category 'copying') -----
+ withoutDuplicates
+ "Answer a copy of the receiver that preserves order but eliminates any duplicates."
+ | seen |
+ seen := Set new: self size.
+ ^self select: [:each|
+ (seen includes: each)
+ ifTrue: [false]
+ ifFalse: [seen add: each. true]]!
Nicolas Cellier uploaded a new version of Traits to project The Trunk:
http://source.squeak.org/trunk/Traits-nice.311.mcz
==================== Summary ====================
Name: Traits-nice.311
Author: nice
Time: 10 June 2017, 6:00:07.752334 pm
UUID: cc5f8bd4-1879-4453-87cf-337d4ec0da45
Ancestors: Traits-ul.310
Massively replace ifNotNilDo: by ifNotNil:
We don't need two different selectors to do a single thing.
=============== Diff against Traits-ul.310 ===============
Item was changed:
----- Method: Trait>>category (in category 'accessing') -----
category
"Answer the system organization category for the receiver. First check whether the
category name stored in the ivar is still correct and only if this fails look it up
(latter is much more expensive)"
| result |
+ category ifNotNil: [ :symbol |
- category ifNotNilDo: [ :symbol |
((SystemOrganization listAtCategoryNamed: symbol) includes: self name)
ifTrue: [ ^symbol ] ].
category := (result := SystemOrganization categoryOfElement: self name).
^result!
Nicolas Cellier uploaded a new version of ToolBuilder-MVC to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-MVC-nice.48.mcz
==================== Summary ====================
Name: ToolBuilder-MVC-nice.48
Author: nice
Time: 10 June 2017, 5:58:54.129159 pm
UUID: d09d8863-3842-4636-9d43-55e1271ff71e
Ancestors: ToolBuilder-MVC-mt.47
Massively replace ifNotNilDo: by ifNotNil:
We don't need two different selectors to do a single thing.
=============== Diff against ToolBuilder-MVC-mt.47 ===============
Item was changed:
----- Method: MVCToolBuilder>>positionSubviewsWithin: (in category 'private') -----
positionSubviewsWithin: widget
"Translate subviews to position the viewport of each subView relative to
the widget window origin. If subviews are repositioned, as in a row of button
views arranged within a view, then the transformations will later be rescaled
to fit the subviews within the widget window."
+ widget subViews ifNotNil: [:subViews |
- widget subViews ifNotNilDo: [:subViews |
subViews isEmpty ifFalse: [ | translation |
translation := widget window origin - subViews first window origin.
subViews do: [:v |
v setTransformation: (v transformation translateBy: translation)]]].
!
Nicolas Cellier uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-nice.111.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-nice.111
Author: nice
Time: 10 June 2017, 5:57:59.10664 pm
UUID: 2b6dafb5-3394-4149-9a1b-45d363a30c00
Ancestors: ToolBuilder-Kernel-pre.110
Massively replace ifNotNilDo: by ifNotNil:
We don't need two different selectors to do a single thing.
=============== Diff against ToolBuilder-Kernel-pre.110 ===============
Item was changed:
----- Method: UIManager class>>getDefault (in category 'class initialization') -----
getDefault
"Ensure that a more specific manager can always be made by subclassing
a tool builder and implementing a more specific way of reacting to
#isActiveManager. For example, a BobsUIManager can subclass
MorphicUIManager and (if enabled, say Preferences useBobsUI) will
be considered before the parent (generic MorphicUIManager)."
^ (self allSubclasses
detect: [:any | any isActiveManager
and: [any subclasses
noneSatisfy: [:sub | sub isActiveManager]]]
ifNone: [])
+ ifNotNil: [:mgrClass | mgrClass new]!
- ifNotNilDo: [:mgrClass | mgrClass new]!
Nicolas Cellier uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-nice.229.mcz
==================== Summary ====================
Name: ST80-nice.229
Author: nice
Time: 10 June 2017, 5:56:36.105684 pm
UUID: a851baa5-4a34-4857-8bff-8f9dfccc7dfe
Ancestors: ST80-eem.228
Massively replace ifNotNilDo: by ifNotNil:
We don't need two different selectors to do a single thing.
=============== Diff against ST80-eem.228 ===============
Item was changed:
----- Method: StandardSystemView class>>doCacheBits (in category 'class initialization') -----
doCacheBits
"StandardSystemView doCacheBits - Enable fast window repaint feature"
CacheBits := true.
+ ScheduledControllers ifNotNil: [:sc | sc unCacheWindows; restore]!
- ScheduledControllers ifNotNilDo: [:sc | sc unCacheWindows; restore]!