diff -r d388699ae421 -r 13b7e24a9074 DirectoryView.st --- a/DirectoryView.st Thu May 12 02:29:54 2016 +0200 +++ b/DirectoryView.st Thu May 12 16:57:20 2016 +0200 @@ -502,7 +502,7 @@ readTask notNil ifTrue: [readTask terminate]. readBlock := [ - |dir currentFilenames oldListOfFiles| + |dir currentFilenames oldListOfFiles listOfFiles| dir := directory asFilename. currentFilenames := OrderedCollection new. @@ -517,23 +517,30 @@ ]. ]. ]. - oldListOfFiles := self listOfFiles copy. + listOfFiles := self listOfFiles. + + oldListOfFiles := listOfFiles copy. (currentFilenames asSortedCollection: [:f1 :f2| f1 baseName < f2 baseName]) asSet do: [:fileName| (oldListOfFiles detect: [:fileRow| fileRow fileName = fileName] ifNone: nil) isNil ifTrue: [ - |nearestFileRow r| - nearestFileRow := self listOfFiles indexOf: (self listOfFiles detect: [:fileRow| fileRow baseName > fileName baseName] ifNone: nil). + |nearestFileRow newRow r| + + newRow := FileRow new fileName: fileName asFilename. + "/ cg: how stupid is that? + "/ nearestFileRow := listOfFiles indexOf: (listOfFiles detect: [:fileRow| fileRow baseName > fileName baseName] ifNone: nil). + nearestFileRow := listOfFiles findFirst:[:fileRow | fileRow baseName > fileName baseName]. nearestFileRow = 0 - ifTrue: [self listOfFiles add: (r := FileRow new fileName: fileName asFilename)] - ifFalse: [self listOfFiles add: (r := FileRow new fileName: fileName asFilename) beforeIndex: nearestFileRow]. + ifTrue: [listOfFiles add: newRow] + ifFalse: [listOfFiles add: newRow beforeIndex: nearestFileRow]. monitoring ifTrue: [self selectionOfFile value: r]. ] ]. - self listOfFiles + + listOfFiles reverseDo: [:fileRow| (currentFilenames includes: fileRow fileName) - ifFalse: [self listOfFiles remove: fileRow] + ifFalse: [listOfFiles remove: fileRow] ] ]. @@ -1050,5 +1057,9 @@ version ^ '$Header$' +! + +version_CVS + ^ '$Header$' ! !