[Pkg] The Trunk: Morphic-mt.1252.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Aug 10 12:58:23 UTC 2016


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1252.mcz

==================== Summary ====================

Name: Morphic-mt.1252
Author: mt
Time: 10 August 2016, 2:57:41.114966 pm
UUID: 018bb58d-a1dd-9e43-9e29-8ed7e534aeb1
Ancestors: Morphic-mt.1251

Make disabling the preference "filterable list" work again.

=============== Diff against Morphic-mt.1251 ===============

Item was changed:
  ----- Method: LazyListMorph>>displayFilterOn:for:in:font: (in category 'drawing') -----
  displayFilterOn: canvas for: row in: drawBounds font: font
  	"Draw filter matches if any."
  	
  	| fill |
+ 	listSource filterableList ifFalse: [^ self].
+ 	
  	fill := self filterColor isColor
  		ifTrue: [SolidFillStyle color: self filterColor]
  		ifFalse: [self filterColor].
  	fill isGradientFill ifTrue: [
  		fill origin: drawBounds topLeft.
  		fill direction: 0@ drawBounds height].
  	
  	(self filterOffsets: row) do: [:offset | | r |
  		r := ((drawBounds left + offset first first) @ drawBounds top corner: (drawBounds left + offset first last) @ drawBounds bottom).
  		canvas
  			frameAndFillRoundRect: (r outsetBy: 1 at 0)
  			radius: 3
  			fillStyle: fill
  			borderWidth: 1
  			borderColor: fill asColor twiceDarker.
  		canvas
  			drawString: offset second
  			in: r
  			font: font
  			color: self filterTextColor].!

Item was changed:
  ----- Method: PluggableListMorph>>basicKeyPressed: (in category 'model access') -----
  basicKeyPressed: aChar 
  	| milliseconds slowKeyStroke listSize newSelectionIndex oldSelectionIndex startIndex |
  	oldSelectionIndex := newSelectionIndex := self getCurrentSelectionIndex.
  	listSize := self getListSize.
  	listSize = 0 ifTrue: [ ^self flash ].
  	milliseconds := Time millisecondClockValue.
  	slowKeyStroke := (Time
  		milliseconds: milliseconds
+ 		since: lastKeystrokeTime) > (self filterableList ifTrue: [500] ifFalse: [ 300 ]).
- 		since: lastKeystrokeTime) > (self class filterableLists ifTrue: [500] ifFalse: [ 300 ]).
  	lastKeystrokeTime := milliseconds.
  	slowKeyStroke
  		ifTrue:
+ 			[ self filterableList ifTrue: [ self hasFilter ifFalse: [ priorSelection := self modelIndexFor: self selectionIndex] ].
- 			[ self class filterableLists ifTrue: [ self hasFilter ifFalse: [ priorSelection := self modelIndexFor: self selectionIndex] ].
  			"forget previous keystrokes and search in following elements"
  			lastKeystrokes := aChar asLowercase asString.
  			newSelectionIndex := newSelectionIndex \\ listSize + 1.
+ 			self filterableList ifTrue: [ list := self getFullList ] ]
- 			self class filterableLists ifTrue: [ list := self getFullList ] ]
  		ifFalse: [ "append quick keystrokes but don't move selection if it still matches"
  			lastKeystrokes := lastKeystrokes , aChar asLowercase asString.
  			newSelectionIndex := newSelectionIndex max: 1 ].
  	"No change if model is locked"
  	model okToChange ifFalse: [ ^ self ].
+ 	self filterableList
- 	self class filterableLists
  		ifTrue:
  			[ self
  				 filterList ;
  				 updateList.
  			newSelectionIndex := self modelIndexFor: 1 ]
  		ifFalse:
  			[ startIndex := newSelectionIndex.
  			listSize := self getListSize.
  			[ (self getListItem: newSelectionIndex) asString withBlanksTrimmed asLowercase beginsWith: lastKeystrokes ] whileFalse:
  				[ (newSelectionIndex := newSelectionIndex \\ listSize + 1) = startIndex ifTrue: [ ^ self flash"Not in list." ] ].
  			newSelectionIndex = oldSelectionIndex ifTrue: [ ^ self flash ] ].
  	(self hasFilter and: [(self getCurrentSelectionIndex = newSelectionIndex) not]) ifTrue:
  		[self changeModelSelection: newSelectionIndex]!

Item was added:
+ ----- Method: PluggableListMorph>>filterableList (in category 'accessing') -----
+ filterableList
+ 	^ (self valueOfProperty: #filterableList ifAbsent: [false]) or: [self class filterableLists]!

Item was added:
+ ----- Method: PluggableListMorph>>filterableList: (in category 'accessing') -----
+ filterableList: aBoolean
+ 	self setProperty: #filterableList toValue: aBoolean.!

Item was changed:
  ----- Method: PluggableListMorph>>getList (in category 'model access') -----
  getList
  	"Answer the list to be displayed.  Caches the returned list in the 'list' ivar"
  	getListSelector == nil ifTrue: [ ^ Array empty ].
  	list := self getFullList.
+ 	self filterableList ifTrue: [ self filterList ].
- 	self class filterableLists ifTrue: [ self filterList ].
  	^ list ifNil: [ Array empty ]!



More information about the Packages mailing list