better info of replace action (compound-undo-action has info, too)
authorClaus Gittinger <cg@exept.de>
Fri, 25 Feb 2005 12:00:07 +0100
changeset 1525 6384f91af636
parent 1524 57f7055351d6
child 1526 f980a40d3c69
better info of replace action (compound-undo-action has info, too)
UndoSupport.st
--- a/UndoSupport.st	Wed Feb 23 13:33:40 2005 +0100
+++ b/UndoSupport.st	Fri Feb 25 12:00:07 2005 +0100
@@ -13,14 +13,15 @@
 "{ Package: 'stx:libbasic2' }"
 
 Object subclass:#UndoSupport
-	instanceVariableNames:'actionPerformer transaction undoList redoList'
+	instanceVariableNames:'actionPerformer transaction undoList redoList
+		infoOfCurrentTransaction'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Views-Text'
 !
 
 Object subclass:#CompoundAction
-	instanceVariableNames:'actions'
+	instanceVariableNames:'actions userFriendlyInfo'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:UndoSupport
@@ -75,6 +76,12 @@
     ^ self basicNew initialize.
 ! !
 
+!UndoSupport methodsFor:'accessing'!
+
+actionInfo:aString
+    infoOfCurrentTransaction := aString
+! !
+
 !UndoSupport methodsFor:'initialization'!
 
 actionPerformer:something
@@ -100,13 +107,18 @@
 !
 
 closeTransactionAndAddTo:aList
+    |actionToAdd|
+
     transaction notEmptyOrNil ifTrue:[
-        transaction size == 1 ifTrue:[
-            aList add:transaction first
+        (transaction size == 1 and:[infoOfCurrentTransaction isNil]) ifTrue:[
+            actionToAdd := transaction first
         ] ifFalse:[
-            aList add:(CompoundAction new actions:transaction)
-        ]
+            actionToAdd := (CompoundAction new actions:transaction).
+            actionToAdd info:infoOfCurrentTransaction.
+        ].
+        aList add:actionToAdd.
     ].
+    infoOfCurrentTransaction := nil.
     transaction := nil
 !
 
@@ -178,6 +190,16 @@
     ].
 ! !
 
+!UndoSupport::CompoundAction methodsFor:'accessing'!
+
+info
+    ^ userFriendlyInfo
+!
+
+info:aString
+    userFriendlyInfo := aString
+! !
+
 !UndoSupport::CompoundAction methodsFor:'adding'!
 
 actions:aCollection
@@ -195,14 +217,10 @@
 
 executeIn:editor 
     actions reverseDo:[:each | each executeIn:editor ]
-!
-
-info
-    ^ actions first info , '..'
 ! !
 
 !UndoSupport class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/UndoSupport.st,v 1.3 2005-02-02 11:03:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/UndoSupport.st,v 1.4 2005-02-25 11:00:07 cg Exp $'
 ! !