#BUGFIX by exept
class: FileDialog
changed: #fileSelectionChanged
do not clobber the filename in the entry field,
when the folder selection changes.
--- a/FileDialog.st Sun Sep 08 00:17:27 2019 +0200
+++ b/FileDialog.st Sun Sep 08 12:47:41 2019 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2002 by eXept Software AG
All Rights Reserved
@@ -1810,40 +1812,46 @@
!
fileSelectionChanged
- |files newFile entryFieldFilename filenameHolder|
+ |files singleSelectedFileOrDirectory newFile entryFieldFilename filenameHolder|
+ "/ the name in the entry field
filenameHolder := self filenameHolder.
+ "/ the selection in the tree
files := treeBrowser currentFileNameHolder value.
+ files size == 1 ifTrue:[
+ singleSelectedFileOrDirectory := files first.
+ ].
+ singleSelectedFileOrDirectory isNil ifTrue:[
+ "/ self halt.
+ ^ self.
+ ].
+ singleSelectedFileOrDirectory := singleSelectedFileOrDirectory asFilename.
- (files isEmpty) ifTrue:[
- newFile := nil.
- ] ifFalse:[
- files size == 1 ifTrue:[
- newFile := files first.
+ singleSelectedFileOrDirectory isDirectory ifFalse:[
+ newFile := singleSelectedFileOrDirectory.
+ ] ifTrue:[
+ (entryFieldFilename := filenameHolder value) notEmptyOrNil ifTrue:[
+ entryFieldFilename := entryFieldFilename asFilename.
+ self startFilename asFilename baseName = entryFieldFilename baseName ifTrue:[
+ entryFieldFilename isDirectory ifFalse:[
+ newFile := singleSelectedFileOrDirectory construct:entryFieldFilename baseName.
+ ].
+ ].
] ifFalse:[
- newFile := ''.
+ "/ self halt.
].
].
- (filenameHolder value notNil
- and:[newFile notNil
- and:[newFile asFilename isDirectory]]) ifTrue:[
- entryFieldFilename := filenameHolder value asFilename.
- self startFilename asFilename baseName = entryFieldFilename baseName ifTrue:[
- entryFieldFilename isDirectory ifFalse:[
- newFile := newFile asFilename construct:entryFieldFilename baseName.
- ].
+ newFile notNil ifTrue:[
+ filenameHolder value:newFile withoutNotifying:self.
+
+ OperatingSystem supportsVolumes ifTrue:[
+ | volume |
+
+ volume := newFile volume.
+ self selectedDeviceDrive value:volume withoutNotifying:self.
].
].
- filenameHolder value:newFile withoutNotifying:self.
-
- OperatingSystem supportsVolumes ifTrue:[
- | volume |
- volume := (files size >= 1)
- ifTrue:[files first volume]
- ifFalse:nil.
- self selectedDeviceDrive value:volume.
- ].
"Created: / 14-02-2011 / 17:54:08 / cg"
"Modified (format): / 14-02-2017 / 12:50:11 / cg"