# HG changeset patch # User Claus Gittinger # Date 1242232804 -7200 # Node ID 1f315c18f4da114e8bc8637c73154ab1368181dd # Parent 45f29cf0cc5e94b59b745c0849574fb79bd14159 component handling diff -r 45f29cf0cc5e -r 1f315c18f4da UIPainter.st --- a/UIPainter.st Wed May 13 14:59:09 2009 +0200 +++ b/UIPainter.st Wed May 13 18:40:04 2009 +0200 @@ -6489,15 +6489,16 @@ doStepIn "move the currently selected widget into the next available container below" - + |item oldParentItem newParentItem idx| item := self selectedNode. (item notNil and:[(oldParentItem := item parent) notNil]) ifTrue:[ idx := (oldParentItem indexOfChild:item) + 1. - newParentItem := oldParentItem children detect:[:eachChild| - eachChild contents spec class supportsSubComponents - ] startingAt:idx ifNone:nil. + newParentItem := oldParentItem children + detect:[:eachChild | eachChild contents spec class supportsSubComponents] + startingAt:idx + ifNone:nil. newParentItem notNil ifTrue:[ self doChangeParentOfSelectedItemTo:newParentItem ]. @@ -6516,17 +6517,18 @@ doStepOver:anIndex "moves child 'anIndex' forward or backward in list of children" - |item idx size prnt spVw view canvas| + |item idx size parentItem parentItemsView itemsView canvas| self askForSelectionChangeAllowed ifFalse:[^ self]. ( (item := self selectedNode) isNil - or:[(prnt := item parent) isNil - or:[(size := prnt children size) < 2 - or:[(idx := prnt indexOfChild:item) == 0]]] + or:[(parentItem := item parent) isNil + or:[(size := parentItem children size) < 2 + or:[(idx := parentItem indexOfChild:item) == 0]]] ) ifTrue:[ ^ self ]. + idx := idx + anIndex. idx < 1 ifTrue:[idx := size] @@ -6534,20 +6536,28 @@ self setSelection:nil. model remove:item. - model add:item beforeIndex:idx below:prnt. - - idx := prnt indexOfChild:item. - view := item contents view. - spVw := prnt contents view. + model add:item beforeIndex:idx below:parentItem. + + idx := parentItem indexOfChild:item. + itemsView := item contents view. + parentItemsView := parentItem contents view. + canvas := self canvas. - canvas hideSelection. - spVw changeSequenceOrderFor:view to:idx. - - spVw specClass isLayoutContainer ifFalse:[ + itemsView isView ifFalse:[ + "/ a component - has its own collection (and therefore indexing) - sigh + idx := idx - ((1 to:idx-1) count:[:i | (parentItem children at:i) contents view isView]). + parentItemsView changeSequenceOrderFor:itemsView to:idx. + ] ifTrue:[ + "/ a view - has its own collection (and therefore indexing) - sigh + idx := idx - ((1 to:idx-1) count:[:i | (parentItem children at:i) contents view isView not]). + parentItemsView changeSequenceOrderFor:itemsView to:idx. + ]. + + parentItemsView specClass isLayoutContainer ifFalse:[ "/ spVw components notEmptyOrNil ifTrue:[ self halt ]. - spVw subViews do:[:v| v raise ]. + parentItemsView subViews do:[:v| v raise ]. ]. canvas showSelection. self selectNode:item.