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

Patrick Rein patrick.rein at hpi.uni-potsdam.de
Sun Jul 7 19:25:04 UTC 2019


That is not what this fix provides. If you have a PluggableTree and you return a Text with a TextColor as a label for list items the color will not be rendered. With the fix below this works without requiring special classes or callbacks. 

Bests
Patrick

Am 5. Juli 2019, 09:54, um 09:54, Marcel Taeumel <marcel.taeumel at hpi.de> schrieb:
>Hi all! :-)
>
>I double-checked this. I don't think it is necessary.
>
>In IndentingListItemMorph >> #colorToUse, the last line falls back to
>ListItemWrapper >> #preferredColor, which is the extension point for
>models via PluggableTreeViewSpec >> #nodeClass:.
>
>You can try by changing ListItemWrapper >> #preferredColor from "nil"
>to "Color red". It just works as intended.
>
>For the UI themes, I chose to use #color in instances
>of IndentingListItemMorph to hold the current theme's text color for
>items.
>
>Best,
>Marcel
>Am 27.06.2019 14:16:17 schrieb commits at source.squeak.org
><commits at source.squeak.org>:
>A new version of Morphic was added to project The Inbox:
>http://source.squeak.org/inbox/Morphic-pre.1491.mcz
>
>==================== Summary ====================
>
>Name: Morphic-pre.1491
>Author: pre
>Time: 27 June 2019, 2:15:55.295956 pm
>UUID: 4b4c32a0-1907-0046-8d95-0b8adf1dcf6b
>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:="">
>] 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]);
>- 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:="">
>] 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]);
>- 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