[squeak-dev] The Inbox: Morphic-pre.1490.mcz

Levente Uzonyi leves at caesar.elte.hu
Wed Jun 26 17:37:38 UTC 2019


On Wed, 26 Jun 2019, commits at source.squeak.org wrote:

> Patrick Rein uploaded a new version of Morphic to project The Inbox:
> http://source.squeak.org/inbox/Morphic-pre.1490.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-pre.1490
> Author: pre
> Time: 26 June 2019, 2:27:35.772055 pm
> UUID: 95570b89-47fd-8e4f-86ec-f075734e1fb0
> Ancestors: Morphic-pre.1489
>
> Fixes a defect preventing colored line items in pluggable tree morphs. The infrastructure was already in place (see StringMorph>>#contents:), however, the ListMorph overrides the determined color later. This changes this overriding to be more conservative to preserve any pre-determined color.
>
> =============== Diff against Morphic-pre.1489 ===============
>
> Item was changed:
>  ----- Method: SimpleHierarchicalListMorph>>addMorphsTo:from:allowSorting:withExpandedItems:atLevel: (in category 'private') -----
>  addMorphsTo: morphList from: aCollection allowSorting: sortBoolean withExpandedItems: expandedItems atLevel: newIndent
>
>  	| priorMorph newCollection firstAddition |
>  	priorMorph := nil.
>  	newCollection := (sortBoolean and: [sortingSelector notNil]) ifTrue: [
>  		aCollection sorted: [ :a :b |
>  			(a perform: sortingSelector) <= (b perform: sortingSelector)]
>  	] ifFalse: [
>  		aCollection
>  	].
>  	firstAddition := nil.
>  	newCollection do: [:item |
>  		priorMorph := self indentingItemClass basicNew
>  			initWithContents: item
>  			prior: priorMorph
>  			forList: self
>  			indentLevel: newIndent.
>  		priorMorph

What's the purpose of the ifNotNil: branch below?

Levente

> + 			color: (priorMorph color ifNil: [self textColor] ifNotNil: [:c | c]);
> - 			color: self textColor;
>  			font: self font;
>  			selectionColor: self selectionColor;
>  			selectionTextColor: self selectionTextColor;
>  			hoverColor: self hoverColor;
>  			highlightTextColor: self highlightTextColor;
>  			filterColor: self filterColor;
>  			filterTextColor: self filterTextColor.
>  		firstAddition ifNil: [firstAddition := priorMorph].
>  		morphList add: priorMorph.
>  		((item hasEquivalentIn: expandedItems) or: [priorMorph isExpanded]) ifTrue: [
>  			priorMorph isExpanded: true.
>  			priorMorph
>  				addChildrenForList: self
>  				addingTo: morphList
>  				withExpandedItems: expandedItems.
>  		].
>  	].
>  	^firstAddition
>
>  !
>
> Item was changed:
>  ----- Method: SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting: (in category 'private') -----
>  addSubmorphsAfter: parentMorph fromCollection: aCollection allowSorting: sortBoolean
>
>  	| priorMorph morphList newCollection |
>  	priorMorph := nil.
>  	newCollection := (sortBoolean and: [sortingSelector notNil]) ifTrue: [
>  		aCollection sorted: [ :a :b |
>  			(a perform: sortingSelector) <= (b perform: sortingSelector)]
>  	] ifFalse: [
>  		aCollection
>  	].
>  	morphList := OrderedCollection new.
>  	newCollection do: [:item |
>  		priorMorph := self indentingItemClass basicNew
>  			initWithContents: item
>  			prior: priorMorph
>  			forList: self
>  			indentLevel: parentMorph indentLevel + 1.
>  		priorMorph
> + 			color: (priorMorph color ifNil: [self textColor] ifNotNil: [:c | c]);
> - 			color: self textColor;
>  			font: self font;
>  			selectionColor: self selectionColor;
>  			selectionTextColor: self selectionTextColor;
>  			hoverColor: self hoverColor;
>  			highlightTextColor: self highlightTextColor;
>  			filterColor: self filterColor;
>  			filterTextColor: self filterTextColor.
>  		morphList add: priorMorph.
>  	].
>  	scroller addAllMorphs: morphList after: parentMorph.
>  	^morphList
>
>  !


More information about the Squeak-dev mailing list