#BUGFIX by exept
class: ShowMeHowItWorks
changed:
#do:from:
#doStream:from:
#findComponent:in:
#waitFor:timeout:
--- a/ShowMeHowItWorks.st Mon Feb 03 19:20:47 2020 +0100
+++ b/ShowMeHowItWorks.st Thu Feb 06 17:52:08 2020 +0100
@@ -627,7 +627,9 @@
].
Delay waitForSeconds:0.1.
Timestamp now > endTime ifTrue:[
- self error:('component %1 not present after %2' bindWith:componentName with:seconds)
+ self error:('component %1 not present after %2' bindWith:componentName with:seconds).
+ "/ if proceeded, just return.
+ ^ self.
]
] loop
! !
@@ -1624,15 +1626,18 @@
item := anApplicationOrViewOrMenuItem tabAtIndex:idx.
] ifFalse:[
idxString := idxString withoutQuotes.
- item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab tabItem rawLabel = idxString].
+ item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab tabItem label = idxString].
item isNil ifTrue:[
- item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab printableLabel = idxString].
+ item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab tabItem rawLabel = idxString].
item isNil ifTrue:[
- item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab activeHelpKey = idxString].
+ item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab printableLabel = idxString].
+ item isNil ifTrue:[
+ item := anApplicationOrViewOrMenuItem tabForWhich:[:tab | tab activeHelpKey = idxString].
+ ].
].
].
].
- self assert:item notNil.
+ self assert:item notNil message:('No tab named: %1' bindWith:idxString).
^ ItemInView new view:anApplicationOrViewOrMenuItem item:item boundsInView:(item layout)
].
@@ -2313,8 +2318,8 @@
[
Error handle:[:ex |
- Dialog warn:(self class classResources
- stringWithCRs:'An error was encountered in the show:\\%1'
+ Dialog information:(self class classResources
+ stringWithCRs:'Sorry, the show is over\\(due to: %1)'
with:ex description withCRs)
] do:[
self doStream:(specArray readStream) from:startLabelOrNil
@@ -2467,7 +2472,16 @@
[opStream atEnd] whileFalse:[
nextCommand := opStream next.
- self doCommand:nextCommand.
+ Error handle:[:ex |
+ (Dialog confirm:(self class classResources
+ stringWithCRs:'An error was encountered in the show:\\%1\\Proceed anyway (may result in followup errors to be encountered)?'
+ with:ex description withCRs)
+ ) ifFalse:[
+ ex reject
+ ].
+ ] do:[
+ self doCommand:nextCommand.
+ ].
Display shiftDown ifTrue:[
(IntroShownCount ? 0) > 3 ifFalse:[