--- a/DirectoryTreeBrowser.st Tue Feb 02 13:03:23 2010 +0100
+++ b/DirectoryTreeBrowser.st Tue Feb 02 14:15:13 2010 +0100
@@ -253,6 +253,13 @@
)
(MenuItem
enabled: hasSelection
+ label: 'Rename each to Include Directory in Name'
+ itemValue: renameToIncludeDirectoryInNameInTreeView
+ translateLabel: true
+ isVisible: allowFileOperations
+ )
+ (MenuItem
+ enabled: hasSelection
label: 'Properties...'
itemValue: doShowProperties
translateLabel: true
@@ -560,6 +567,42 @@
].
!
+renameToIncludeDirectoryInNameInTreeView
+ |numAffected|
+
+ numAffected := 0.
+ self withWaitCursorDo:[
+ self selectedDirectories do:[:eachDirectory |
+ |prefix|
+
+ prefix := eachDirectory baseName , '_'.
+ eachDirectory directoryContentsAsFilenamesDo:[:eachFile |
+ (eachFile baseName startsWith:prefix) ifFalse:[
+ numAffected := numAffected + 1.
+ ].
+ ].
+ ].
+ ].
+ numAffected == 0 ifTrue:[
+ Dialog information:(resources string:'No files to rename').
+ ^ self.
+ ].
+ (Dialog confirm:(resources stringWithCRs:'Continue renaming %1 files?' with:numAffected)) ifFalse:[^ self].
+
+ self withWaitCursorDo:[
+ self selectedDirectories do:[:eachDirectory |
+ |prefix|
+
+ prefix := eachDirectory baseName , '_'.
+ eachDirectory directoryContentsAsFilenamesDo:[:eachFile |
+ (eachFile baseName startsWith:prefix) ifFalse:[
+ eachFile renameTo:(eachDirectory construct:(prefix,eachFile baseName)).
+ ].
+ ].
+ ].
+ ].
+!
+
setMatchBlockInList:list
| selection matchBlock filterBlock viewFiles|
@@ -1335,9 +1378,9 @@
!DirectoryTreeBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.113 2009-10-28 18:53:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.114 2010-02-02 13:15:13 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.113 2009-10-28 18:53:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.114 2010-02-02 13:15:13 cg Exp $'
! !