[squeak-dev] The Trunk: Morphic-mt.1549.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Sep 30 09:19:47 UTC 2019


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

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

Name: Morphic-mt.1549
Author: mt
Time: 30 September 2019, 11:19:38.88371 am
UUID: 6bbc0287-72da-fe4c-889d-591c9bec9657
Ancestors: Morphic-mt.1548

Caches "fullList" in pluggable lists to speed up list filtering.

Note that we have now two kinds of caches in PluggableListMorph: (1) inst-var access to "list" with invalidation/update via #getList and (2) the accessor #fullList. In the future, we should harmonize that design ... Since the addition of list filters, we forgot to treat inst-var access to "list" as a cache. There are way too many sends of #getFullList at the moment. So that new cache makes sense.

=============== Diff against Morphic-mt.1548 ===============

Item was changed:
  ScrollPane subclass: #PluggableListMorph
+ 	instanceVariableNames: 'list fullList getListSelector getListSizeSelector getListElementSelector getIndexSelector setIndexSelector keystrokeActionSelector autoDeselect lastKeystrokeTime lastKeystrokes lastClickTime doubleClickSelector handlesBasicKeys potentialDropRow hoverRow listMorph hScrollRangeCache keystrokePreviewSelector priorSelection getIconSelector getHelpSelector'
- 	instanceVariableNames: 'list getListSelector getListSizeSelector getListElementSelector getIndexSelector setIndexSelector keystrokeActionSelector autoDeselect lastKeystrokeTime lastKeystrokes lastClickTime doubleClickSelector handlesBasicKeys potentialDropRow hoverRow listMorph hScrollRangeCache keystrokePreviewSelector priorSelection getIconSelector getHelpSelector'
  	classVariableNames: 'ClearFilterAutomatically FilterableLists HighlightHoveredRow MenuRequestUpdatesSelection'
  	poolDictionaries: ''
  	category: 'Morphic-Pluggable Widgets'!
  
  !PluggableListMorph commentStamp: 'cmm 8/21/2011 23:37' prior: 0!
  When a PluggableListMorph is in focus, type in a letter (or several letters quickly) to go to the next item that begins with that letter (if FilterableLists is false).
  
  Special keys (up, down, home, etc.) are also supported.!

Item was changed:
  ----- Method: PluggableListMorph>>getFullList (in category 'model access') -----
  getFullList
  	"The full, unfiltered list."
+ 	^ fullList ifNil: [fullList := model perform: getListSelector]!
- 	^ model perform: getListSelector!

Item was changed:
  ----- Method: PluggableListMorph>>updateList (in category 'updating') -----
  updateList
+ 
  	| index |
+ 	fullList := nil.
- 	"the list has changed -- update from the model"
  	self listMorph listChanged.
- 	self setScrollDeltas.
  	index := self getCurrentSelectionIndex.
  	self resetPotentialDropRow.
  	self selectionIndex: (self uiIndexFor: index).
  !



More information about the Squeak-dev mailing list