ensure that acceptAction of renameField is only
onvoked once (tried to rename twice)
--- a/DirectoryTreeBrowser.st Wed Mar 19 17:29:40 2003 +0100
+++ b/DirectoryTreeBrowser.st Wed Mar 19 23:12:16 2003 +0100
@@ -1271,11 +1271,19 @@
!
postBuildDirBrowser:aWidget
-
dirBrowser := aWidget scrolledView.
dirBrowser hasConstantHeight:true.
- dirBrowser openEditorAction:[:ln :aGC| |field item filename newFileString rename newFilename|
+ dirBrowser openEditorAction:[:ln :aGC|
+ |field item filename newFileString rename newFilename alreadyAccepted|
+
+ alreadyAccepted := false.
+ dirBrowser closeEditorAction:[:editor |
+ alreadyAccepted ifFalse:[
+ editor acceptAction value:(editor contents).
+ ].
+ ].
+
self allowFileOperations value ifTrue:[
item := self fileList at:ln.
@@ -1286,10 +1294,12 @@
field level:0.
field acceptOnReturn:true.
field acceptOnLeave:true.
- field acceptAction:[:x|
+ field acceptAction:[:x|
+ alreadyAccepted := true.
+
filename := item fileName.
newFileString := x at:1.
- filename baseName = newFileString ifFalse:[
+ filename baseName ~= newFileString ifTrue:[
(self renameFile:filename to:newFileString update:false) ifTrue:[
newFilename := filename directory construct:newFileString.
self updateAndSelect:(OrderedCollection with:newFilename).
@@ -1302,10 +1312,9 @@
field contents:(item label).
].
field
- ].
- ].
- dirBrowser closeEditorAction:[:ln |
- ln acceptAction value:ln list.
+ ] ifFalse:[
+ nil
+ ]
].
dirBrowser multipleSelectOk:self multipleSelect.
!
@@ -1386,5 +1395,5 @@
!DirectoryTreeBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.50 2003-03-19 10:06:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.51 2003-03-19 22:12:16 cg Exp $'
! !