[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
|