[squeak-dev] Re: The Trunk: Morphic-mt.1196.mcz
marcel.taeumel
Marcel.Taeumel at hpi.de
Fri Jul 22 07:17:22 UTC 2016
Chris Muller-3 wrote
> The original intent was to have a working #flash, and do that when the
> very next keystroke would result in an empty filter.
>
> Because by the time you've emptied the list, you can't use backspace
> to see where the matching started to fail, and the results thus far.
> So does this option lead the user into a dead-end?
>
> The system is too fast, #flash is rather useless, I think we should
> put the delay back in to #flash, so it can be a the good indicator it
> was meant to be of "no more results"...
>
>
> On Thu, Jul 21, 2016 at 4:23 AM, <
> commits at .squeak
> > wrote:
>> Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
>> http://source.squeak.org/trunk/Morphic-mt.1196.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Morphic-mt.1196
>> Author: mt
>> Time: 21 July 2016, 11:23:40.453126 am
>> UUID: d866228c-fedc-2147-afd9-821191a84612
>> Ancestors: Morphic-mt.1195
>>
>> For lists, add an option to allow empty filter results. Also support
>> setting the current filter string programmatically.
>>
>> =============== Diff against Morphic-mt.1195 ===============
>>
>> Item was added:
>> + ----- Method: PluggableListMorph>>allowEmptyFilterResult (in category
>> 'filtering') -----
>> + allowEmptyFilterResult
>> + ^ self valueOfProperty: #allowEmptyFilterResult ifAbsent:
>> [false]!
>>
>> Item was added:
>> + ----- Method: PluggableListMorph>>allowEmptyFilterResult: (in category
>> 'filtering') -----
>> + allowEmptyFilterResult: aBoolean
>> +
>> + self
>> + setProperty: #allowEmptyFilterResult
>> + toValue: aBoolean.!
>>
>> Item was changed:
>> ----- Method: PluggableListMorph>>filterList (in category 'filtering')
>> -----
>> filterList
>> self hasFilter
>> ifTrue:
>> [ | frontMatching substringMatching newList |
>> self indicateFiltered.
>> frontMatching := OrderedCollection new.
>> substringMatching := OrderedCollection new.
>> list withIndexDo:
>> [ : each : n | | foundPos |
>> foundPos := each asString
>> findString: lastKeystrokes
>> startingAt: 1
>> caseSensitive: false.
>> foundPos = 1
>> ifTrue: [ frontMatching add: each
>> ]
>> ifFalse:
>> [ foundPos = 0 ifFalse: [
>> substringMatching add: each ] ] ].
>> newList := frontMatching , substringMatching.
>> + (newList isEmpty not or: [ self
>> allowEmptyFilterResult ])
>> + ifTrue: [ list := newList ]
>> + ifFalse:
>> - newList
>> - ifEmpty:
>> [ lastKeystrokes :=
>> lastKeystrokes allButLast: 1.
>> self
>> flash ;
>> + filterList ] ]
>> - filterList ]
>> - ifNotEmpty: [ list := newList ] ]
>> ifFalse: [ self indicateUnfiltered ]!
>>
>> Item was added:
>> + ----- Method: PluggableListMorph>>filterList: (in category 'filtering')
>> -----
>> + filterList: aString
>> + "Manually set the list filter."
>> +
>> + lastKeystrokes := aString.
>> + self filterList.
>> + self updateList.
>> + self changeModelSelection: (list ifEmpty: [0] ifNotEmpty: [self
>> modelIndexFor: 1]).!
>>
>>
Hi Chris,
sure, we can make the flash work again. Still, I want to support a filter
that does not matches any results to use it in our ListChooser. :-)
Best,
Marcel
--
View this message in context: http://forum.world.st/The-Trunk-Morphic-mt-1196-mcz-tp4907320p4907433.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.
More information about the Squeak-dev
mailing list
|