Marcel Taeumel uploaded a new version of PreferenceBrowser to project The Trunk:
http://source.squeak.org/trunk/PreferenceBrowser-mt.109.mcz ==================== Summary ==================== Name: PreferenceBrowser-mt.109 Author: mt Time: 4 January 2021, 1:15:55.86444 pm UUID: 42f005a2-2686-4bda-8d58-486b6881ae54 Ancestors: PreferenceBrowser-mt.108 Speed up preference wizard open about 10x =============== Diff against PreferenceBrowser-mt.108 =============== Item was changed: ----- Method: PreferenceWizardMorph>>initialize (in category 'initialization') ----- initialize super initialize. isFullScreen := false. self hasLowPerformance ifTrue: [self color: self defaultColor] ifFalse: [self color: (self defaultColor alpha: 0.75)]. self setProperty: #indicateKeyboardFocus toValue: #never. - Preferences enable: #systemWindowEmbedOK. - - titleMorph := ('Welcome to Squeak' translated asText - addAttribute: (TextColor color: self defaultTextColor); - addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20)); - yourself) asMorph lock. - titleMorph margins: (10@0 corner: 10@10). - titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). - self - initializePages; - initializeButtons; - initializeControlMorph; - initializePreviewWorld; - initializeForLowPerformance. - - self changeProportionalLayout; layoutInset: 20; cellGap: 10; + cellPositioning: #center. + - cellPositioning: #center; - addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton. lowPerformanceMorph}. - self addKeyboardCaptureFilter: self.! Item was changed: + ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization - playfield') ----- - ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization') ----- initializeButtons buttonRowMorph := Morph new color: Color transparent; changeTableLayout; listDirection: #leftToRight; cellGap: 10; layoutInset: (0@20 corner: 0@0); vResizing: #shrinkWrap; hResizing: #spaceFill; yourself. buttonRowMorph addAllMorphs: { previousButton := self createButton action: #previous; label: 'Previous' translated. pagesLabel := (self createLabel: '0 / 0') hResizing: #shrinkWrap; margins: (20@0 corner: 20@0); fullBounds; yourself. nextButton := self createButton action: #next; label: 'Next' translated. self createHorizontalSpacer. self createButton action: #accept; label: 'Done' translated}. - buttonRowMorph fullBounds. + buttonRowMorph layoutFrame: (LayoutFrame fractions: (0 @ 1 corner: 1 @ 1) offsets: (0@ buttonRowMorph height negated corner: 0 @ 0)).! - buttonRowMorph layoutFrame: (LayoutFrame fractions: (0 @ 1 corner: 1 @ 1) offsets: (0@ buttonRowMorph height negated corner: 0 @ 0)). - - - - startButton := (self createButton action: #showPlayfield; label: 'Configure' translated). - skipButton := (self createButton action: #showSqueak; label: 'Skip' translated). - - (startButton width max: skipButton width) in: [:w | - startButton hResizing: #rigid; width: w. - skipButton hResizing: #rigid; width: w. - - startButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (2*w negated @ 0 corner: 0 @ 0)). - skipButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (0@ 0 corner: 2*w @ 0))].! Item was changed: + ----- Method: PreferenceWizardMorph>>initializeControlMorph (in category 'initialization - playfield') ----- - ----- Method: PreferenceWizardMorph>>initializeControlMorph (in category 'initialization') ----- initializeControlMorph controlMorph := Morph new color: Color transparent; changeTableLayout; listDirection: #topToBottom; hResizing: #spaceFill; vResizing: #spaceFill; layoutInset: (0@0 corner: 10@0); layoutFrame: (LayoutFrame fractions: (0.0 @ 0 corner: 0.3 @ 1.0) offsets: (0@ titleMorph height corner: 0 @ buttonRowMorph height negated)); yourself. controlMorph addMorph: (self createLabel: 'Please take a few minutes and configure the look-and-feel of the environment. You can always adjust these settings later. You can see the effects of these settings in the live and editable windows to the right.' translated).! Item was removed: - ----- Method: PreferenceWizardMorph>>initializeForLowPerformance (in category 'initialization') ----- - initializeForLowPerformance - - lowPerformanceMorph := TextMorph new lock.! Item was changed: + ----- Method: PreferenceWizardMorph>>initializePages (in category 'initialization - playfield') ----- - ----- Method: PreferenceWizardMorph>>initializePages (in category 'initialization') ----- initializePages pages := OrderedCollection new. currentPageIndex := 0. self initializePage01Themes; initializePage02Visuals; initializePage02bVisualsMore; initializePage03Interaction; initializePage04InteractionMore; initializePage05Tools.! Item was added: + ----- Method: PreferenceWizardMorph>>initializePlayfield (in category 'initialization') ----- + initializePlayfield + + self + initializePages; + initializeButtons; + initializeControlMorph; + initializePreviewWorld. + + self + addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton. lowPerformanceMorph}.! Item was changed: + ----- Method: PreferenceWizardMorph>>initializePreviewWorld (in category 'initialization - playfield') ----- - ----- Method: PreferenceWizardMorph>>initializePreviewWorld (in category 'initialization') ----- initializePreviewWorld | w1 w2 w3 | + Preferences enable: #systemWindowEmbedOK. previewWorld := PasteUpMorph new hResizing: #spaceFill; vResizing: #spaceFill; viewBox: (0@0 corner: 500@500); layoutFrame: (LayoutFrame fractions: (0.3 @ 0 corner: 1.0 @ 1.0) offsets: (0@ titleMorph height corner: 0 @ buttonRowMorph height negated)); fillStyle: Project current world fillStyle; borderWidth: 2; borderColor: Color white; cornerStyle: (self hasLowPerformance ifTrue: [#square] ifFalse: [#rounded]); yourself. w1 := (ToolSet browse: Morph selector: #drawOn:) dependents detect: [:ea | ea isSystemWindow]. w2 := ToolSet browseMessageSet: (SystemNavigation default allCallsOn: #negated) name: 'Senders' translated autoSelect: 'negated'. w3 := (Workspace new contents: '3+4 "Select and hit [CMD]+[P]."') openLabel: 'Workspace'. {w1. w2. w3} do: [:ea | ea makeUnclosable. previewWorld addMorph: ea]. self updateWindowBounds.! Item was added: + ----- Method: PreferenceWizardMorph>>initializeWelcome (in category 'initialization') ----- + initializeWelcome + + titleMorph := ('Welcome to Squeak' translated asText + addAttribute: (TextColor color: self defaultTextColor); + addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20)); + yourself) asMorph lock. + titleMorph margins: (10@0 corner: 10@10). + titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). + + startButton := (self createButton action: #showPlayfield; label: 'Configure' translated). + skipButton := (self createButton action: #showSqueak; label: 'Skip' translated). + + (startButton width max: skipButton width) in: [:w | + startButton hResizing: #rigid; width: w. + skipButton hResizing: #rigid; width: w. + + startButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (2*w negated @ 0 corner: 0 @ 0)). + skipButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (0@ 0 corner: 2*w @ 0))]. + + lowPerformanceMorph := TextMorph new lock. + + self addAllMorphs: {titleMorph. startButton. skipButton. lowPerformanceMorph}.! Item was changed: ----- Method: PreferenceWizardMorph>>isInPlayfield (in category 'testing') ----- isInPlayfield + ^ previewWorld notNil and: [previewWorld visible]! - ^ previewWorld visible! Item was changed: ----- Method: PreferenceWizardMorph>>showPlayfield (in category 'actions') ----- showPlayfield + previewWorld ifNil: [self initializePlayfield]. + startButton hide. skipButton hide. lowPerformanceMorph hide. isFullScreen := true. self step. titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). self refreshWorld. 500 milliSeconds wait. controlMorph show. previewWorld show. buttonRowMorph show. self next. self refreshWorld. ! Item was changed: ----- Method: PreferenceWizardMorph>>showWelcome (in category 'actions') ----- showWelcome + self isInPlayfield ifTrue: [^ self "Not possible to go back due to fast-init strategy."]. + titleMorph ifNil: [self initializeWelcome]. + titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.65) offsets: (0 @0 corner: 0@0)). isFullScreen := false. self height: titleMorph fullBounds height * 4. - controlMorph hide. - previewWorld hide. - buttonRowMorph hide. - - titleMorph show. - startButton show. - skipButton show. self hasLowPerformance ifFalse: [lowPerformanceMorph hide] ifTrue: [lowPerformanceMorph show]. self hasLowPerformance ifTrue: [Cursor wait showWhile: [self adjustSettingsForLowPerformance]]. self refreshWorld. ! Item was changed: ----- Method: PreferenceWizardMorph>>updateWindowBounds (in category 'layout') ----- updateWindowBounds | windows offset margin extentToUse pointsToUse | isFullScreen == false ifTrue: [^ self]. + previewWorld ifNil: [^ self]. self fullBounds. margin := 20@20. extentToUse := (previewWorld extent - (margin * 2)) // 3 * (1.8 @ 1.5). pointsToUse := { previewWorld center - (previewWorld extent // (5.5 @ 4.5)). previewWorld center + (previewWorld width // 5.5 @ 0). previewWorld center + (0 @ (previewWorld width // 5))}. windows := previewWorld submorphs. offset := 50@50. windows reversed withIndexDo: [:ea :i | ea extent: extentToUse; center: (pointsToUse atWrap: i). offset := offset + (50@50)].! |
Thank you, Marcel! This is great!
Fabio On Mon, Jan 4, 2021 at 1:16 PM <[hidden email]> wrote: > > Marcel Taeumel uploaded a new version of PreferenceBrowser to project The Trunk: > http://source.squeak.org/trunk/PreferenceBrowser-mt.109.mcz > > ==================== Summary ==================== > > Name: PreferenceBrowser-mt.109 > Author: mt > Time: 4 January 2021, 1:15:55.86444 pm > UUID: 42f005a2-2686-4bda-8d58-486b6881ae54 > Ancestors: PreferenceBrowser-mt.108 > > Speed up preference wizard open about 10x > > =============== Diff against PreferenceBrowser-mt.108 =============== > > Item was changed: > ----- Method: PreferenceWizardMorph>>initialize (in category 'initialization') ----- > initialize > > super initialize. > > isFullScreen := false. > > self hasLowPerformance > ifTrue: [self color: self defaultColor] > ifFalse: [self color: (self defaultColor alpha: 0.75)]. > > self setProperty: #indicateKeyboardFocus toValue: #never. > > - Preferences enable: #systemWindowEmbedOK. > - > - titleMorph := ('Welcome to Squeak' translated asText > - addAttribute: (TextColor color: self defaultTextColor); > - addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20)); > - yourself) asMorph lock. > - titleMorph margins: (10@0 corner: 10@10). > - titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). > - > self > - initializePages; > - initializeButtons; > - initializeControlMorph; > - initializePreviewWorld; > - initializeForLowPerformance. > - > - self > changeProportionalLayout; > layoutInset: 20; > cellGap: 10; > + cellPositioning: #center. > + > - cellPositioning: #center; > - addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton. lowPerformanceMorph}. > - > self addKeyboardCaptureFilter: self.! > > Item was changed: > + ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization - playfield') ----- > - ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization') ----- > initializeButtons > > buttonRowMorph := Morph new > color: Color transparent; > changeTableLayout; > listDirection: #leftToRight; > cellGap: 10; > layoutInset: (0@20 corner: 0@0); > vResizing: #shrinkWrap; > hResizing: #spaceFill; > yourself. > > buttonRowMorph addAllMorphs: { > previousButton := self createButton action: #previous; label: 'Previous' translated. > pagesLabel := (self createLabel: '0 / 0') hResizing: #shrinkWrap; margins: (20@0 corner: 20@0); fullBounds; yourself. > nextButton := self createButton action: #next; label: 'Next' translated. > self createHorizontalSpacer. > self createButton action: #accept; label: 'Done' translated}. > > - > buttonRowMorph fullBounds. > + buttonRowMorph layoutFrame: (LayoutFrame fractions: (0 @ 1 corner: 1 @ 1) offsets: (0@ buttonRowMorph height negated corner: 0 @ 0)).! > - buttonRowMorph layoutFrame: (LayoutFrame fractions: (0 @ 1 corner: 1 @ 1) offsets: (0@ buttonRowMorph height negated corner: 0 @ 0)). > - > - > - > - startButton := (self createButton action: #showPlayfield; label: 'Configure' translated). > - skipButton := (self createButton action: #showSqueak; label: 'Skip' translated). > - > - (startButton width max: skipButton width) in: [:w | > - startButton hResizing: #rigid; width: w. > - skipButton hResizing: #rigid; width: w. > - > - startButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (2*w negated @ 0 corner: 0 @ 0)). > - skipButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (0@ 0 corner: 2*w @ 0))].! > > Item was changed: > + ----- Method: PreferenceWizardMorph>>initializeControlMorph (in category 'initialization - playfield') ----- > - ----- Method: PreferenceWizardMorph>>initializeControlMorph (in category 'initialization') ----- > initializeControlMorph > > controlMorph := Morph new > color: Color transparent; > changeTableLayout; > listDirection: #topToBottom; > hResizing: #spaceFill; > vResizing: #spaceFill; > layoutInset: (0@0 corner: 10@0); > layoutFrame: (LayoutFrame fractions: (0.0 @ 0 corner: 0.3 @ 1.0) offsets: (0@ titleMorph height corner: 0 @ buttonRowMorph height negated)); > yourself. > > controlMorph addMorph: (self createLabel: 'Please take a few minutes and configure the look-and-feel of the environment. You can always adjust these settings later. You can see the effects of these settings in the live and editable windows to the right.' translated).! > > Item was removed: > - ----- Method: PreferenceWizardMorph>>initializeForLowPerformance (in category 'initialization') ----- > - initializeForLowPerformance > - > - lowPerformanceMorph := TextMorph new lock.! > > Item was changed: > + ----- Method: PreferenceWizardMorph>>initializePages (in category 'initialization - playfield') ----- > - ----- Method: PreferenceWizardMorph>>initializePages (in category 'initialization') ----- > initializePages > > pages := OrderedCollection new. > currentPageIndex := 0. > > self > initializePage01Themes; > initializePage02Visuals; > initializePage02bVisualsMore; > initializePage03Interaction; > initializePage04InteractionMore; > initializePage05Tools.! > > Item was added: > + ----- Method: PreferenceWizardMorph>>initializePlayfield (in category 'initialization') ----- > + initializePlayfield > + > + self > + initializePages; > + initializeButtons; > + initializeControlMorph; > + initializePreviewWorld. > + > + self > + addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton. lowPerformanceMorph}.! > > Item was changed: > + ----- Method: PreferenceWizardMorph>>initializePreviewWorld (in category 'initialization - playfield') ----- > - ----- Method: PreferenceWizardMorph>>initializePreviewWorld (in category 'initialization') ----- > initializePreviewWorld > > | w1 w2 w3 | > + Preferences enable: #systemWindowEmbedOK. > > previewWorld := PasteUpMorph new > hResizing: #spaceFill; > vResizing: #spaceFill; > viewBox: (0@0 corner: 500@500); > layoutFrame: (LayoutFrame fractions: (0.3 @ 0 corner: 1.0 @ 1.0) offsets: (0@ titleMorph height corner: 0 @ buttonRowMorph height negated)); > fillStyle: Project current world fillStyle; > borderWidth: 2; > borderColor: Color white; > cornerStyle: (self hasLowPerformance ifTrue: [#square] ifFalse: [#rounded]); > yourself. > > w1 := (ToolSet browse: Morph selector: #drawOn:) dependents detect: [:ea | ea isSystemWindow]. > w2 := ToolSet browseMessageSet: (SystemNavigation default allCallsOn: #negated) name: 'Senders' translated autoSelect: 'negated'. > w3 := (Workspace new contents: '3+4 "Select and hit [CMD]+[P]."') openLabel: 'Workspace'. > > {w1. w2. w3} do: [:ea | > ea makeUnclosable. > previewWorld addMorph: ea]. > > self updateWindowBounds.! > > Item was added: > + ----- Method: PreferenceWizardMorph>>initializeWelcome (in category 'initialization') ----- > + initializeWelcome > + > + titleMorph := ('Welcome to Squeak' translated asText > + addAttribute: (TextColor color: self defaultTextColor); > + addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20)); > + yourself) asMorph lock. > + titleMorph margins: (10@0 corner: 10@10). > + titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). > + > + startButton := (self createButton action: #showPlayfield; label: 'Configure' translated). > + skipButton := (self createButton action: #showSqueak; label: 'Skip' translated). > + > + (startButton width max: skipButton width) in: [:w | > + startButton hResizing: #rigid; width: w. > + skipButton hResizing: #rigid; width: w. > + > + startButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (2*w negated @ 0 corner: 0 @ 0)). > + skipButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (0@ 0 corner: 2*w @ 0))]. > + > + lowPerformanceMorph := TextMorph new lock. > + > + self addAllMorphs: {titleMorph. startButton. skipButton. lowPerformanceMorph}.! > > Item was changed: > ----- Method: PreferenceWizardMorph>>isInPlayfield (in category 'testing') ----- > isInPlayfield > > + ^ previewWorld notNil and: [previewWorld visible]! > - ^ previewWorld visible! > > Item was changed: > ----- Method: PreferenceWizardMorph>>showPlayfield (in category 'actions') ----- > showPlayfield > > + previewWorld ifNil: [self initializePlayfield]. > + > startButton hide. > skipButton hide. > lowPerformanceMorph hide. > isFullScreen := true. > self step. > > titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)). > > self refreshWorld. > 500 milliSeconds wait. > > controlMorph show. > previewWorld show. > buttonRowMorph show. > > self next. > self refreshWorld. > > ! > > Item was changed: > ----- Method: PreferenceWizardMorph>>showWelcome (in category 'actions') ----- > showWelcome > > + self isInPlayfield ifTrue: [^ self "Not possible to go back due to fast-init strategy."]. > + titleMorph ifNil: [self initializeWelcome]. > + > titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.65) offsets: (0 @0 corner: 0@0)). > isFullScreen := false. > self height: titleMorph fullBounds height * 4. > > - controlMorph hide. > - previewWorld hide. > - buttonRowMorph hide. > - > - titleMorph show. > - startButton show. > - skipButton show. > self hasLowPerformance > ifFalse: [lowPerformanceMorph hide] > ifTrue: [lowPerformanceMorph show]. > > self hasLowPerformance > ifTrue: [Cursor wait showWhile: [self adjustSettingsForLowPerformance]]. > > self refreshWorld. > ! > > Item was changed: > ----- Method: PreferenceWizardMorph>>updateWindowBounds (in category 'layout') ----- > updateWindowBounds > > | windows offset margin extentToUse pointsToUse | > isFullScreen == false ifTrue: [^ self]. > + previewWorld ifNil: [^ self]. > > self fullBounds. > > margin := 20@20. > extentToUse := (previewWorld extent - (margin * 2)) // 3 * (1.8 @ 1.5). > pointsToUse := { > previewWorld center - (previewWorld extent // (5.5 @ 4.5)). > previewWorld center + (previewWorld width // 5.5 @ 0). > previewWorld center + (0 @ (previewWorld width // 5))}. > > windows := previewWorld submorphs. > offset := 50@50. > > windows reversed withIndexDo: [:ea :i | > ea > extent: extentToUse; > center: (pointsToUse atWrap: i). > offset := offset + (50@50)].! > > |
In reply to this post by commits-2
On Mon, Jan 04, 2021 at 12:15:57PM +0000, [hidden email] wrote:
> Marcel Taeumel uploaded a new version of PreferenceBrowser to project The Trunk: > http://source.squeak.org/trunk/PreferenceBrowser-mt.109.mcz > > ==================== Summary ==================== > > Name: PreferenceBrowser-mt.109 > Author: mt > Time: 4 January 2021, 1:15:55.86444 pm > UUID: 42f005a2-2686-4bda-8d58-486b6881ae54 > Ancestors: PreferenceBrowser-mt.108 > > Speed up preference wizard open about 10x > Yay! Thank you. Dave |
Free forum by Nabble | Edit this page |