Then I had to close and restart the image and its was working fine.�� So now nothing to examine :(.
Minor side issue that I'm ignoring for now (just reporting for completeness)...��
putting a halt in CatalogProvider>>retrieveProjects and clicking the Catalog <Refresh> button
freezes the UI and ALT-.�� can't break it�� (and neither does CTRL-. )����
GLMPanelMorph(Morph)>>submorphsDo:
Halt
CatalogProvider>>retrieveProjects
[ self retrieveProjects
collect: [ :each | CatalogProject fromDictionary: each ] ] in CatalogProvider>>loadProjects in Block: [ self retrieveProjects...
BlockClosure>>on:do:
CatalogProvider>>loadProjects
CatalogProvider>>loadProjectsIfNeeded
CatalogProvider>>projects
[ :thisProvider | thisProvider projects ] in [ :a |��
a list
title: 'Available';
in: [ :this |��
self buildMenuOn: this.
self buildContextMenuOn: this ];
display: [ :thisProvider | thisProvider projects ];
format: [ :project | project name ];
icon: [ :project | self iconFor: project ];
filterOn: [ :text :each | each matches: text ];
tags: [ :project |��
project keywords isNil
ifTrue: [ #() ]
ifFalse: [ project allKeywords sorted ] ] ] in CatalogBrowser>>buildBrowser in Block: [ :thisProvider | thisProvider projects ]
BlockClosure>>glamourValueWithArgs:
BlockClosure(ProtoObject)>>glamourValue:
GLMListPresentation(GLMPresentation)>>displayValue
GLMListPresentation(GLMListingPresentation)>>displayValue
GLMTreeMorphModel>>displayValue
GLMTreeMorphModel>>roots
GLMTreeMorphModel>>rootNodes
GLMPaginatedMorphTreeMorph(MorphTreeMorph)>>getList
GLMPaginatedMorphTreeMorph(MorphTreeMorph)>>nodeList
MorphTreeChunkPager(MorphTreeNavigationBar)>>nodeList
MorphTreeChunkPager>>computedHeight
GLMPaginatedMorphTreeMorph(PaginatedMorphTreeMorph)>>pagerHeight
GLMPaginatedMorphTreeMorph(PaginatedMorphTreeMorph)>>innerBounds
GLMPaginatedMorphTreeMorph(Morph)>>layoutBounds
GLMPaginatedMorphTreeMorph(Morph)>>minExtent
[ :m |��
| extent frame |
"Map the minimal size of the child through the layout frame.
Note: This is done here and not in the child because its specific
for proportional layouts. Perhaps we'll generalize this for table
layouts but I'm not sure how and when."
extent := m minExtent.
frame := m layoutFrame.
frame ifNotNil: [ extent := frame minExtentFrom: extent ].
min := min max: extent ] in ProportionalLayout>>minExtentOf:in: in Block: [ :m | ...
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphsDo:
ProportionalLayout>>minExtentOf:in:
GLMPanelMorph(Morph)>>minExtent
[ :m |��
| sizeX sizeY |
m disableTableLayout
ifFalse: [ n := n + 1.
size := m minExtent.
sizeX := size x.
sizeY := size y.
sizeX < minX
ifTrue: [ sizeX := minX ]
ifFalse: [ sizeX > maxX
ifTrue: [ sizeX := maxX ] ].
sizeY < minY
ifTrue: [ sizeY := minY ]
ifFalse: [ sizeY > maxY
ifTrue: [ sizeY := maxY ] ].
height := height + sizeY.
sizeX > width
ifTrue: [ width := sizeX ] ] ] in TableLayout>>minExtentVertical: in Block: [ :m | ...
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphsDo:
Halt
CatalogProvider>>retrieveProjects
[ self retrieveProjects
collect: [ :each | CatalogProject fromDictionary: each ] ] in CatalogProvider>>loadProjects in Block: [ self retrieveProjects...
BlockClosure>>on:do:
CatalogProvider>>loadProjects
CatalogProvider>>loadProjectsIfNeeded
CatalogProvider>>projects
[ :thisProvider | thisProvider projects ] in [ :a |��
a list
title: 'Available';
in: [ :this |��
self buildMenuOn: this.
self buildContextMenuOn: this ];
display: [ :thisProvider | thisProvider projects ];
format: [ :project | project name ];
icon: [ :project | self iconFor: project ];
filterOn: [ :text :each | each matches: text ];
tags: [ :project |��
project keywords isNil
ifTrue: [ #() ]
ifFalse: [ project allKeywords sorted ] ] ] in CatalogBrowser>>buildBrowser in Block: [ :thisProvider | thisProvider projects ]
BlockClosure>>glamourValueWithArgs:
BlockClosure(ProtoObject)>>glamourValue:
GLMListPresentation(GLMPresentation)>>displayValue
GLMListPresentation(GLMListingPresentation)>>displayValue
GLMTreeMorphModel>>displayValue
GLMTreeMorphModel>>roots
GLMTreeMorphModel>>rootNodes
GLMPaginatedMorphTreeMorph(MorphTreeMorph)>>getList
GLMPaginatedMorphTreeMorph(MorphTreeMorph)>>nodeList
MorphTreeChunkPager(MorphTreeNavigationBar)>>nodeList
MorphTreeChunkPager>>computedHeight
GLMPaginatedMorphTreeMorph(PaginatedMorphTreeMorph)>>pagerHeight
GLMPaginatedMorphTreeMorph(PaginatedMorphTreeMorph)>>innerBounds
GLMPaginatedMorphTreeMorph(Morph)>>layoutBounds
GLMPaginatedMorphTreeMorph(Morph)>>minExtent
[ :m |��
| extent frame |
"Map the minimal size of the child through the layout frame.
Note: This is done here and not in the child because its specific
for proportional layouts. Perhaps we'll generalize this for table
layouts but I'm not sure how and when."
extent := m minExtent.
frame := m layoutFrame.
frame ifNotNil: [ extent := frame minExtentFrom: extent ].
min := min max: extent ] in ProportionalLayout>>minExtentOf:in: in Block: [ :m | ...
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphsDo:
ProportionalLayout>>minExtentOf:in:
GLMPanelMorph(Morph)>>minExtent
[ :m |��
| sizeX sizeY |
m disableTableLayout
ifFalse: [ n := n + 1.
size := m minExtent.
sizeX := size x.
sizeY := size y.
sizeX < minX
ifTrue: [ sizeX := minX ]
ifFalse: [ sizeX > maxX
ifTrue: [ sizeX := maxX ] ].
sizeY < minY
ifTrue: [ sizeY := minY ]
ifFalse: [ sizeY > maxY
ifTrue: [ sizeY := maxY ] ].
height := height + sizeY.
sizeX > width
ifTrue: [ width := sizeX ] ] ] in TableLayout>>minExtentVertical: in Block: [ :m | ...
Array(SequenceableCollection)>>do:
GLMPanelMorph(Morph)>>submorphsDo:
Halt
CatalogProvider>>retrieveProjects