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

Marcel Taeumel marcel.taeumel at hpi.de
Thu Jun 27 07:42:18 UTC 2019


All morphs should have a non-nil #color and so should priorMorph ... Hmm...

Best,
Marcel
Am 26.06.2019 20:43:32 schrieb Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
Note that you do not need the ifNotNil: part

Le mer. 26 juin 2019 à 14:27, <commits at source.squeak.org [mailto:commits at source.squeak.org]> a écrit :

Patrick Rein uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-pre.1490.mcz [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
+                       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

  !


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190627/6726eb39/attachment-0001.html>


More information about the Squeak-dev mailing list