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

Marcel Taeumel marcel.taeumel at hpi.de
Fri Jul 5 07:54:44 UTC 2019


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

!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190705/77deb2d0/attachment.html>


More information about the Squeak-dev mailing list