--- a/UIPainterView.st Wed Jul 08 22:18:47 1998 +0200
+++ b/UIPainterView.st Wed Jul 08 22:58:41 1998 +0200
@@ -197,64 +197,57 @@
!
deleteSelection
+ "delete the selection buffered
+ "
+ self deleteSelectionBuffered: true
+!
+
+deleteSelectionBuffered: buffered
"cut the selection into the cut&paste-buffer
and open a transaction
"
- |specs coll oldSelectedNode newSelectedNode|
+ |specs coll oldSelectedNode newSelectedNode newSelection|
coll := self minSetOfSuperViews:(self selection).
coll notNil ifTrue:[
treeView cvsEventsDisabledDo:[
- oldSelectedNode := treeView selectedNode.
- oldSelectedNode parent children size <= 1 ifTrue: [
- newSelectedNode := oldSelectedNode parent
- ]
- ifFalse: [
- newSelectedNode := oldSelectedNode parent children
- at: (oldSelectedNode parent indexOfChild: oldSelectedNode) - 1
- ifAbsent: [oldSelectedNode parent children at: 2]
+ (oldSelectedNode := (treeView model selectedNodes at: 1 ifAbsent: nil)) notNil ifTrue: [
+ oldSelectedNode parent children size <= 1 ifTrue: [
+ newSelectedNode := oldSelectedNode parent
+ ]
+ ifFalse: [
+ newSelectedNode := oldSelectedNode parent children
+ at: (oldSelectedNode parent indexOfChild: oldSelectedNode) - 1
+ ifAbsent: [oldSelectedNode parent children at: 2]
+ ].
].
-
- selection := nil.
+ self hideSelection.
+ selection := nil.
specs := coll collect:[:aView| self fullSpecFor:aView ].
self withinTransaction:#cut objects:coll do:[
coll reverseDo:[:aView|
self createUndoRemove:aView.
- self remove:aView
+ self remove:aView.
]
].
+ buffered ifTrue: [self setSelection: specs].
treeView selection: nil.
- treeView selection: (treeView model indexOf:newSelectedNode).
+ (newSelection := (treeView model indexOf:newSelectedNode)) > 0 ifFalse: [
+ newSelection := 1
+ ].
+ treeView selection: (Array with: newSelection).
self setSelection:treeView selectedNode contents view withRedraw: true.
-
]
]
!
deleteTotalSelection
- "delete the selection; copy the selection into the cut&paste-buffer
- and open a transaction
- "
- |specs coll|
-
- coll := self minSetOfSuperViews:(self selection).
-
- coll notNil ifTrue:[
- treeView cvsEventsDisabledDo:[
- self select:nil.
- specs := coll collect:[:aView| self fullSpecFor:aView ].
-
- self withinTransaction:#cut objects:coll do:[
- coll reverseDo:[:aView|
- self remove:aView
- ]
- ].
- treeView selection: (Array with: 1)
- ]
- ]
+ "delete the selection
+ "
+ self deleteSelectionBuffered: false
!
pasteBuffer