[squeak-dev] The Trunk: ToolBuilder-Kernel-cmm.52.mcz
leves at elte.hu
Wed Oct 19 10:45:26 UTC 2011
On Wed, 19 Oct 2011, commits at source.squeak.org wrote:
> Chris Muller uploaded a new version of ToolBuilder-Kernel to project The Trunk:
> ==================== Summary ====================
> Name: ToolBuilder-Kernel-cmm.52
> Author: cmm
> Time: 18 October 2011, 8:12:42.168 pm
> UUID: 54416a65-63c1-4ba4-959e-7f1f7db3aa62
> Ancestors: ToolBuilder-Kernel-dtl.51
> Fix ability to safely catch Notification so that, if #displayProgressAt:from:to:during: is sent, will actually execute the during block.
I don't like this change, because it breaks existing code and supports a
bad pattern. For example ComplexProgressIndicator and Installer assumes
that ProgressInitiationException >> #resume just resumes with nil without
any side effects, so these are broken now.
Catching all Notifications and just resuming them is something that
doesn't work, because there may be other handlers which expect to catch
them, so you should #pass the notifications that you don't want to
swallow. Using Notification instead of specific subclasses is also a bad
idea unless you really want to process all notifications. Maybe
we should raise an error when someone is trying to signal a Notification,
because that class is just a marker and not something that should be used
as a Notification (I could say it's abstract, but I don't like this term,
because in Smalltalk it doesn't have a well-defined meaning).
> =============== Diff against ToolBuilder-Kernel-dtl.51 ===============
> Item was changed:
> ----- Method: ProgressInitiationException>>defaultAction (in category 'as yet unclassified') -----
> + self resume!
> - | result |
> - result := UIManager default
> - displayProgress: progressTitle
> - at: aPoint
> - from: minVal
> - to: maxVal
> - during: workBlock.
> - self resume: result!
> Item was added:
> + ----- Method: ProgressInitiationException>>defaultResumeValue (in category 'as yet unclassified') -----
> + defaultResumeValue
> + ^ UIManager default
> + displayProgress: progressTitle
> + at: aPoint
> + from: minVal
> + to: maxVal
> + during: workBlock!
More information about the Squeak-dev