[squeak-dev] The Trunk: Morphic-mt.1711.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Nov 4 15:26:53 UTC 2020
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1711.mcz
==================== Summary ====================
Name: Morphic-mt.1711
Author: mt
Time: 4 November 2020, 4:26:48.73762 pm
UUID: bfe511e4-840d-9742-a340-11c2a470d5f7
Ancestors: Morphic-mt.1710, Morphic-kfr.1469
In progress indication for project loading, remove target-owner-visibility magic as suggested by Karl (kfr). When this indicator is used as part of InternalThreadNavigationMorph or ProjectViewMorph, hiding them (and keeping them hidden for quick workBlocks) makes no sense. Those are more than just layout containers.
(Note that this is unrelated to system-progress indication.)
=============== Diff against Morphic-mt.1710 ===============
Item was changed:
----- Method: ComplexProgressIndicator>>withProgressDo: (in category 'as yet unclassified') -----
withProgressDo: aBlock
+ | safetyFactor totals trialRect delta |
- | safetyFactor totals trialRect delta targetOwner |
Smalltalk isMorphic ifFalse: [^aBlock value].
formerProject := Project current.
formerWorld := formerProject world.
formerProcess := Processor activeProcess.
targetMorph
ifNil: [targetMorph := ProgressTargetRequestNotification signal].
targetMorph ifNil: [
trialRect := Rectangle center: Sensor cursorPoint extent: 80 at 80.
delta := trialRect amountToTranslateWithin: formerWorld bounds.
trialRect := trialRect translateBy: delta.
translucentMorph := TranslucentProgessMorph new
opaqueBackgroundColor: Color white;
bounds: trialRect;
openInWorld: formerWorld.
] ifNotNil: [
- targetOwner := targetMorph owner.
translucentMorph := TranslucentProgessMorph new
setProperty: #morphicLayerNumber toValue: targetMorph morphicLayerNumber - 0.1;
bounds: targetMorph boundsInWorld;
openInWorld: targetMorph world.
].
stageCompleted := 0.
safetyFactor := 1.1. "better to guess high than low"
translucentMorph setProperty: #progressStageNumber toValue: 1.
translucentMorph hide.
- targetOwner ifNotNil: [targetOwner hide].
totals := self loadingHistoryDataForKey: 'total'.
newRatio := 1.0.
estimate := totals size < 2 ifTrue: [
15000 "be a pessimist"
] ifFalse: [
(totals sum - totals max) / (totals size - 1 max: 1) * safetyFactor.
].
start := Time millisecondClockValue.
self forkProgressWatcher.
[
aBlock
on: ProgressInitiationException
do: [ :ex |
ex sendNotificationsTo: [ :min :max :curr |
"ignore this as it is inaccurate"
].
].
] on: ProgressNotification do: [ :note | | stageCompletedString |
translucentMorph show.
- targetOwner ifNotNil: [targetOwner show].
note extraParam ifNotNil:[self addProgressDecoration: note extraParam].
stageCompletedString := (note messageText findTokens: ' ') first.
stageCompleted := (stageCompletedString copyUpTo: $:) asNumber.
cumulativeStageTime := Time millisecondClockValue - start max: 1.
prevData := self loadingHistoryDataForKey: stageCompletedString.
prevData isEmpty ifFalse: [
newRatio := (cumulativeStageTime / (prevData average max: 1)) asFloat.
].
self
loadingHistoryAt: stageCompletedString
add: cumulativeStageTime.
translucentMorph
setProperty: #progressStageNumber
toValue: stageCompleted + 1.
note resume.
].
stageCompleted := 999. "we may or may not get here"
!
More information about the Squeak-dev
mailing list
|