Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.1191.mcz
==================== Summary ====================
Name: Tools-mt.1191
Author: mt
Time: 27 February 2023, 3:34:31.568644 pm
UUID: b6ead586-b005-7143-ac17-513acd0404a4
Ancestors: Tools-mt.1190
Fixes shortcut inconsistency in single-category browsers. Now it matches the popup menu again.
=============== Diff against Tools-mt.1190 ===============
Item was changed:
----- Method: Browser>>systemCatSingletonKey:from: (in category 'initialize-release') -----
systemCatSingletonKey: aChar from: aView
+ ^ self systemCatListKey: aChar from: aView!
- ^ self messageListKey: aChar from: aView!
Item was removed:
- ----- Method: HierarchyBrowser>>systemCatSingletonKey:from: (in category 'menu messages') -----
- systemCatSingletonKey: aChar from: aView
- "This appears to be obsolete now that the hierarchybrowser has not category view"
- ^ self systemCatListKey: aChar from: aView!
Marcel Taeumel uploaded a new version of fromCamelCaseBugFix to project The Treated Inbox:
http://source.squeak.org/treated/fromCamelCaseBugFix-rpb.2.mcz
==================== Summary ====================
Name: fromCamelCaseBugFix-rpb.2
Author: rpb
Time: 23 February 2023, 5:30:54.911688 pm
UUID: d2c3cefb-be54-457d-bb50-9e522c3de213
Ancestors: fromCamelCaseBugFix-rpb.1
This code fixes a bug in fromCameCase.
The old code would do: 'AnExampleString' fromCamelCase -> ' anExampleString'.
The leading space should not be there.
The problem occurs when the leading character is capitalized.
==================== Snapshot ====================
SystemOrganization addCategory: #fromCamelCaseBugFix!
----- Method: SequenceableCollection>>asSpaceInterleavedString (in category '*fromCamelCaseBugFix') -----
asSpaceInterleavedString
"Convert to a string with a space between items.
Assumes Elements are strings."
| stream |
stream := WriteStream on: (String new: 100).
self do: [:each |
stream nextPutAll: each; space].
self size > 0 ifTrue: [stream skip: -1]. "remove trailing space"
^stream contents.!
----- Method: String>>fromCamelCase (in category '*fromCamelCaseBugFix') -----
fromCamelCase
"convert 'anExampleString' to 'an example string'"
^self findFeatures asSpaceInterleavedString!
----- Method: String>>fromCamelCaseBugFixComment (in category '*fromCamelCaseBugFix') -----
fromCamelCaseBugFixComment
"
The new code fixes a bug in fromCameCase.
The old code would do: 'AnExampleString' fromCamelCase -> ' anExampleString'.
The leading space should not be there.
The problem occurs when the leading character is capitalized.
"!
Marcel Taeumel uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-mt.493.mcz
==================== Summary ====================
Name: EToys-mt.493
Author: mt
Time: 24 February 2023, 10:57:32.196067 am
UUID: 026f5e7f-48a8-df46-9d7f-dd63f4acf991
Ancestors: EToys-mt.492
Merges a fix from Ralph (rpb):
"This code fixes a bug in fromCameCase.
The old code would do: 'AnExampleString' fromCamelCase -> ' anExampleString'.
The leading space should not be there.
The problem occurs when the leading character is capitalized."
=============== Diff against EToys-mt.492 ===============
Item was changed:
----- Method: String>>fromCamelCase (in category '*Etoys-Squeakland-converting') -----
fromCamelCase
"convert 'anExampleString' to 'an example string'"
+ ^self findFeatures joinSeparatedBy: String space!
- | upper nextWord start |
- upper := ($A to: $Z) asCharacterSet.
- nextWord := self indexOfAnyOf: upper.
- nextWord = 0 ifTrue: [^self].
- start := 1.
-
- ^String streamContents: [:strm |
- [
- strm nextPutAll: (self copyFrom: start to: nextWord-1).
- strm space; nextPut: (self at: nextWord) asLowercase.
- start := nextWord+1.
- nextWord := self indexOfAnyOf: upper startingAt: start.
- nextWord = 0
- ] whileFalse.
- strm nextPutAll: (self copyFrom: start to: self size).
- ].!
Marcel Taeumel uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-mt.163.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-mt.163
Author: mt
Time: 23 February 2023, 3:14:21.577976 pm
UUID: 8ef4f45f-fbff-bb4e-80fd-33c453125c0d
Ancestors: ToolBuilder-Kernel-mt.162
Complements ToolBuilder-Morphic-mt.335
=============== Diff against ToolBuilder-Kernel-mt.162 ===============
Item was changed:
PluggableWidgetSpec subclass: #PluggableTreeSpec
+ instanceVariableNames: 'roots getSelectedPath setSelectedPath setSelected getSelected setSelectedParent getChildren hasChildren label icon unusedVar menu keyPress doubleClick dropItem dropAccept autoDeselect dragItem dragType nodeClass columns vScrollBarPolicy hScrollBarPolicy dragStarted filterMode searchMode'
- instanceVariableNames: 'roots getSelectedPath setSelectedPath setSelected getSelected setSelectedParent getChildren hasChildren label icon unusedVar menu keyPress doubleClick dropItem dropAccept autoDeselect dragItem dragType nodeClass columns vScrollBarPolicy hScrollBarPolicy dragStarted'
classVariableNames: ''
poolDictionaries: ''
category: 'ToolBuilder-Kernel'!
!PluggableTreeSpec commentStamp: 'pre 4/24/2018 10:20' prior: 0!
A pluggable tree widget. PluggableTrees are slightly different from lists in such that they ALWAYS store the actual objects and use the label selector to query for the label of the item. PluggableTrees also behave somewhat differently in such that they do not have a "getSelected" message but only a getSelectedPath message. The difference is that getSelectedPath is used to indicate by the model that the tree should select the appropriate path. This allows disambiguation of items. Because of this, implementations of PluggableTrees must always set their internal selection directly, e.g., rather than sending the model a setSelected message and wait for an update of the #getSelected the implementation must set the selection before sending the #setSelected message. If a client doesn't want this, it can always just signal a change of getSelectedPath to revert to whatever is needed.
Instance variables:
roots <Symbol> The message to retrieve the roots of the tree.
getSelectedPath <Symbol> The message to retrieve the selected path in the tree.
setSelectedPath <Symbol> The message to set the selected path in the tree.
setSelected <Symbol> The message to set the selected item in the tree.
getChildren <Symbol> The message to retrieve the children of an item
hasChildren <Symbol> The message to query for children of an item
label <Symbol> The message to query for the label of an item.
icon <Symbol> The message to query for the icon of an item.
help <Symbol> The message to query for the help of an item.
menu <Symbol> The message to query for the tree's menu
keyPress <Symbol> The message to process a keystroke.
wantsDrop <Symbol> The message to query whether a drop might be accepted.
dropItem <Symbol> The message to drop an item.
enableDrag <Boolean> Enable dragging from this tree.
autoDeselect <Boolean> Whether the tree should allow automatic deselection or not.
unusedVar (unused) This variable is a placeholder to fix problems with loading packages in 3.10.!
Item was added:
+ ----- Method: PluggableTreeSpec>>filterMode (in category 'accessing') -----
+ filterMode
+
+ ^ filterMode ifNil: [#siblings]!
Item was added:
+ ----- Method: PluggableTreeSpec>>filterMode: (in category 'accessing') -----
+ filterMode: aSymbol
+ "#siblings (default), #visible, #all"
+
+ filterMode := aSymbol.!
Item was added:
+ ----- Method: PluggableTreeSpec>>searchMode (in category 'accessing') -----
+ searchMode
+
+ ^ searchMode ifNil: [#breadthFirst]!
Item was added:
+ ----- Method: PluggableTreeSpec>>searchMode: (in category 'accessing') -----
+ searchMode: aSymbol
+ "#breadthFirst (default), #depthFirst"
+
+ searchMode := aSymbol.!