--- a/FindFileApplication.st Tue Feb 11 16:04:30 2014 +0100
+++ b/FindFileApplication.st Tue Feb 11 18:27:25 2014 +0100
@@ -21,10 +21,12 @@
contentsInfoCache contentsInfoCacheAccessLock
fileSizeOperatorHolder fileSizeHolder enableFileSizeFilter
fileSizeUnitHolder modificationTimeOperatorHolder
- modificationTimeHolder enableModificationTimeFilter'
+ modificationTimeHolder enableModificationTimeFilter
+ showUnreadableFilesAndDirectoriesHolder'
classVariableNames:'ContentsInfoCache ContentsInfoCacheAccessLock LastRememberInCache
LastSearchIgnoredCaseInContents LastSearchIgnoredCaseInFilename
- SearchStringHistory LastSearchIgnoredCaseInExcludedFilename'
+ SearchStringHistory LastSearchIgnoredCaseInExcludedFilename
+ LastShowUnreadableFilesAndDirectories'
poolDictionaries:''
category:'Interface-Tools-File'
!
@@ -177,365 +179,373 @@
<resource: #canvas>
^
- #(FullSpec
- name: windowSpec
- window:
- (WindowSpec
- label: 'File Search'
- name: 'File Search'
- min: (Point 377 131)
- bounds: (Rectangle 0 0 758 419)
- )
- component:
- (SpecCollection
- collection: (
- (MenuPanelSpec
- name: 'ToolBar1'
- layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
- level: 0
- menu: searchMenu
- textDefault: true
- )
- (ProgressIndicatorSpec
- name: 'ProgressIndicator1'
- layout: (LayoutFrame 125 0 11 0 231 0 21 0)
- visibilityChannel: enableStop
- backgroundColor: (Color 0.0 66.9993133440146 66.9993133440146)
- showPercentage: false
- isActivityIndicator: true
- )
- (ViewSpec
- name: 'Box1'
- layout: (LayoutFrame 0 0.0 32 0 0 1.0 231 0)
- component:
- (SpecCollection
- collection: (
- (LabelSpec
- label: 'Directory:'
- name: 'DirectoryLabel'
- layout: (LayoutFrame 2 0 7 0 154 0 24 0)
- activeHelpKey: searchDirectory
- translateLabel: true
- adjust: right
- )
- (FilenameInputFieldSpec
- name: 'DirectoryEntryField'
- layout: (LayoutFrame 156 0 4 0 -315 1 24 0)
- activeHelpKey: searchDirectory
- model: searchDirectoryHolder
- immediateAccept: true
- acceptOnPointerLeave: false
- )
- (LabelSpec
- label: 'Search Files Named:'
- name: 'FileNameLabel'
- layout: (LayoutFrame 2 0 31 0 154 0 48 0)
- activeHelpKey: namePattern
- translateLabel: true
- adjust: right
- )
- (InputFieldSpec
- name: 'FileNameEntryField'
- layout: (LayoutFrame 156 0 28 0 -315 1 48 0)
- activeHelpKey: namePattern
- tabable: true
- model: namePatternHolder
- immediateAccept: true
- acceptOnLeave: false
- acceptOnPointerLeave: false
- )
- (LabelSpec
- label: 'But not Named:'
- name: 'Label1'
- layout: (LayoutFrame 2 0 55 0 154 0 72 0)
- activeHelpKey: excludedNamePattern
- translateLabel: true
- adjust: right
- )
- (InputFieldSpec
- name: 'EntryField1'
- layout: (LayoutFrame 156 0 52 0 -315 1 72 0)
- activeHelpKey: excludedNamePattern
- tabable: true
- model: excludedNamePatternHolder
- immediateAccept: true
- acceptOnLeave: false
- acceptOnPointerLeave: false
- )
- (LabelSpec
- label: 'Containing:'
- name: 'ContentsLabel'
- layout: (LayoutFrame 2 0 79 0 154 0 96 0)
- activeHelpKey: contentsPattern
- translateLabel: true
- adjust: right
- )
- (ComboBoxSpec
- name: 'ComboBox1'
- layout: (LayoutFrame 156 0 76 0 -315 1 96 0)
- activeHelpKey: contentsPattern
- enableChannel: notSearchForSameContents
- tabable: true
- model: contentsPatternHolder
- immediateAccept: true
- acceptOnPointerLeave: false
- comboList: searchStringHistory
- )
- (LabelSpec
- label: 'Not Containing:'
- name: 'NotContentsLabel'
- layout: (LayoutFrame 2 0 103 0 154 0 120 0)
- activeHelpKey: notContentsPattern
- translateLabel: true
- adjust: right
- )
- (InputFieldSpec
- name: 'NotContentsEntryField'
- layout: (LayoutFrame 156 0 100 0 -315 1 120 0)
- activeHelpKey: notContentsPattern
- enableChannel: notSearchForSameContents
- tabable: true
- model: notContentsPatternHolder
- immediateAccept: true
- acceptOnPointerLeave: false
- )
- (LabelSpec
- label: 'Same Contents As:'
- name: 'SameContentsAsLabel'
- layout: (LayoutFrame 2 0 127 0 154 0 144 0)
- activeHelpKey: sameContents
- translateLabel: true
- adjust: right
- )
- (InputFieldSpec
- name: 'SameContentsAsEntryField'
- layout: (LayoutFrame 156 0 124 0 -339 1 144 0)
- activeHelpKey: sameContents
- enableChannel: searchForSameContents
- tabable: true
- model: sameContentsAsHolder
- immediateAccept: true
- acceptOnPointerLeave: false
- )
- (CheckToggleSpec
- name: 'EnableSameContentsCheckToggle'
- layout: (LayoutOrigin -334 1 128 0)
- activeHelpKey: sameContents
- model: searchForSameContents
- isTriggerOnDown: true
- showLamp: false
- lampColor: (Color 100.0 100.0 0.0)
- )
- (LabelSpec
- label: 'File Size:'
- name: 'FileSizeLabel'
- layout: (LayoutFrame 2 0 151 0 154 0 168 0)
- activeHelpKey: fileSize
- translateLabel: true
- adjust: right
- )
- (PopUpListSpec
- label: 'PopUp List'
- name: 'FileSizeOperatorPopUpList'
- layout: (LayoutFrame 157 0 148 0 212 0 168 0)
- activeHelpKey: fileSize
- tabable: true
- model: fileSizeOperatorHolder
- enableChannel: enableFileSizeFilterAndNotSearchForSameContents
- menu:
- (Array
- ' >' ' < '
- ' !!= ' ' = '
- ' ~ '
- )
- )
- (InputFieldSpec
- name: 'FileSizeEntryField'
- layout: (LayoutFrame 219 0 148 0 -349 1 168 0)
- activeHelpKey: fileSize
- enableChannel: enableFileSizeFilterAndNotSearchForSameContents
- tabable: true
- model: fileSizeHolder
- type: fileSize
- immediateAccept: false
- acceptOnLeave: true
- acceptOnLostFocus: true
- acceptOnPointerLeave: true
- )
- (CheckToggleSpec
- name: 'EnableSizeCheckToggle'
- layout: (LayoutOrigin -334 1 151 0)
- activeHelpKey: fileSize
- model: enableFileSizeFilter
- enableChannel: notSearchForSameContents
- isTriggerOnDown: true
- showLamp: false
- lampColor: (Color 100.0 100.0 0.0)
- )
- (LabelSpec
- label: 'Modified:'
- name: 'Label2'
- layout: (LayoutFrame 2 0 175 0 154 0 192 0)
- activeHelpKey: modificationTime
- translateLabel: true
- adjust: right
- )
- (PopUpListSpec
- label: 'PopUp List'
- name: 'PopUpList1'
- layout: (LayoutFrame 157 0 172 0 212 0 192 0)
- activeHelpKey: modificationTime
- tabable: true
- model: modificationTimeOperatorHolder
- enableChannel: enableModificationTimeFilter
- menu:
- (Array
- ' before' ' after '
- )
- )
- (InputFieldSpec
- name: 'EntryField2'
- layout: (LayoutFrame 219 0 172 0 -349 1 192 0)
- activeHelpKey: modificationTime
- enableChannel: enableModificationTimeFilter
- tabable: true
- model: modificationTimeHolder
- type: timestamp
- immediateAccept: false
- acceptOnLeave: true
- acceptOnLostFocus: true
- acceptOnPointerLeave: true
- )
- (CheckToggleSpec
- name: 'CheckToggle1'
- layout: (LayoutOrigin -334 1 175 0)
- activeHelpKey: modificationTime
- model: enableModificationTimeFilter
- isTriggerOnDown: true
- showLamp: false
- lampColor: (Color 100.0 100.0 0.0)
- )
- (CheckBoxSpec
- label: 'Use ''locate'' Cmd'
- name: 'UseLocateCheckBox'
- layout: (LayoutFrame -309 1 5 0 -167 1 28 0)
- activeHelpKey: useLocate
- visibilityChannel: canUseLocate
- tabable: true
- model: useLocate
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Recursive'
- name: 'RecursiveSearchCheckBox'
- layout: (LayoutFrame -169 1 5 0 -4 1 28 0)
- activeHelpKey: recursiveSearch
- tabable: true
- model: searchRecursively
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Directories'
- name: 'SearchDirectoriesCheckBox'
- layout: (LayoutFrame -309 1 29 0 -167 1 52 0)
- enableChannel: notSearchForSameContents
- tabable: true
- model: searchDirectories
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Ignore Case'
- name: 'IgnoreCaseInNameCheckBox'
- layout: (LayoutFrame -169 1 29 0 -4 1 52 0)
- activeHelpKey: ignoreCase
- tabable: true
- model: ignoreCaseInName
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Ignore Case'
- name: 'CheckBox1'
- layout: (LayoutFrame -169 1 53 0 -4 1 76 0)
- activeHelpKey: ignoreCase
- tabable: true
- model: ignoreCaseInExcludedName
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Use ''grep'' Cmd'
- name: 'UseGrepCheckBox'
- layout: (LayoutFrame -309 1 77 0 -167 1 100 0)
- visibilityChannel: canUseGrep
- enableChannel: notSearchForSameContents
- tabable: true
- model: useGrep
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Ignore Case'
- name: 'IgnoreCaseInContentsCheckBox'
- layout: (LayoutFrame -169 1 77 0 -4 1 100 0)
- activeHelpKey: ignoreCase
- enableChannel: notSearchForSameContents
- tabable: true
- model: ignoreCaseInContents
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Ignore Case'
- name: 'IgnoreCaseInNotContentsCheckBox'
- layout: (LayoutFrame -169 1 101 0 -4 1 124 0)
- activeHelpKey: ignoreCase
- enableChannel: notSearchForSameContents
- tabable: true
- model: ignoreCaseInNotContents
- translateLabel: true
- )
- (CheckBoxSpec
- label: 'Cache Info'
- name: 'RememberInCacheCheckBox'
- layout: (LayoutFrame -309 1 125 0 -167 1 148 0)
- visibilityChannel: canUseGrep
- enableChannel: searchForSameContents
- tabable: true
- model: rememberInCache
- translateLabel: true
- )
- (ActionButtonSpec
- label: 'Clear Cache'
- name: 'ClearCacheButton'
- layout: (LayoutFrame -169 1 125 0 -44 1 147 0)
- translateLabel: true
- model: clearCache
- )
+ #(FullSpec
+ name: windowSpec
+ window:
+ (WindowSpec
+ label: 'File Search'
+ name: 'File Search'
+ min: (Point 377 131)
+ bounds: (Rectangle 0 0 759 420)
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (MenuPanelSpec
+ name: 'ToolBar1'
+ layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
+ level: 0
+ menu: searchMenu
+ textDefault: true
+ )
+ (ProgressIndicatorSpec
+ name: 'ProgressIndicator1'
+ layout: (LayoutFrame 125 0 11 0 231 0 21 0)
+ visibilityChannel: enableStop
+ backgroundColor: (Color 0.0 66.9993133440147 66.9993133440147)
+ showPercentage: false
+ isActivityIndicator: true
+ )
+ (ViewSpec
+ name: 'Box1'
+ layout: (LayoutFrame 0 0.0 32 0 0 1.0 231 0)
+ component:
+ (SpecCollection
+ collection: (
+ (LabelSpec
+ label: 'Directory:'
+ name: 'DirectoryLabel'
+ layout: (LayoutFrame 2 0 7 0 154 0 24 0)
+ activeHelpKey: searchDirectory
+ translateLabel: true
+ adjust: right
+ )
+ (FilenameInputFieldSpec
+ name: 'DirectoryEntryField'
+ layout: (LayoutFrame 156 0 4 0 -315 1 24 0)
+ activeHelpKey: searchDirectory
+ model: searchDirectoryHolder
+ immediateAccept: true
+ acceptOnPointerLeave: false
+ )
+ (LabelSpec
+ label: 'Search Files Named:'
+ name: 'FileNameLabel'
+ layout: (LayoutFrame 2 0 31 0 154 0 48 0)
+ activeHelpKey: namePattern
+ translateLabel: true
+ adjust: right
+ )
+ (InputFieldSpec
+ name: 'FileNameEntryField'
+ layout: (LayoutFrame 156 0 28 0 -315 1 48 0)
+ activeHelpKey: namePattern
+ tabable: true
+ model: namePatternHolder
+ immediateAccept: true
+ acceptOnLeave: false
+ acceptOnPointerLeave: false
+ )
+ (LabelSpec
+ label: 'But not Named:'
+ name: 'Label1'
+ layout: (LayoutFrame 2 0 55 0 154 0 72 0)
+ activeHelpKey: excludedNamePattern
+ translateLabel: true
+ adjust: right
+ )
+ (InputFieldSpec
+ name: 'EntryField1'
+ layout: (LayoutFrame 156 0 52 0 -315 1 72 0)
+ activeHelpKey: excludedNamePattern
+ tabable: true
+ model: excludedNamePatternHolder
+ immediateAccept: true
+ acceptOnLeave: false
+ acceptOnPointerLeave: false
+ )
+ (LabelSpec
+ label: 'Containing:'
+ name: 'ContentsLabel'
+ layout: (LayoutFrame 2 0 79 0 154 0 96 0)
+ activeHelpKey: contentsPattern
+ translateLabel: true
+ adjust: right
+ )
+ (ComboBoxSpec
+ name: 'ComboBox1'
+ layout: (LayoutFrame 156 0 76 0 -315 1 96 0)
+ activeHelpKey: contentsPattern
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: contentsPatternHolder
+ immediateAccept: true
+ acceptOnPointerLeave: false
+ comboList: searchStringHistory
+ )
+ (LabelSpec
+ label: 'Not Containing:'
+ name: 'NotContentsLabel'
+ layout: (LayoutFrame 2 0 103 0 154 0 120 0)
+ activeHelpKey: notContentsPattern
+ translateLabel: true
+ adjust: right
+ )
+ (InputFieldSpec
+ name: 'NotContentsEntryField'
+ layout: (LayoutFrame 156 0 100 0 -315 1 120 0)
+ activeHelpKey: notContentsPattern
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: notContentsPatternHolder
+ immediateAccept: true
+ acceptOnPointerLeave: false
+ )
+ (LabelSpec
+ label: 'Same Contents As:'
+ name: 'SameContentsAsLabel'
+ layout: (LayoutFrame 2 0 127 0 154 0 144 0)
+ activeHelpKey: sameContents
+ translateLabel: true
+ adjust: right
+ )
+ (InputFieldSpec
+ name: 'SameContentsAsEntryField'
+ layout: (LayoutFrame 156 0 124 0 -339 1 144 0)
+ activeHelpKey: sameContents
+ enableChannel: searchForSameContents
+ tabable: true
+ model: sameContentsAsHolder
+ immediateAccept: true
+ acceptOnPointerLeave: false
+ )
+ (CheckToggleSpec
+ name: 'EnableSameContentsCheckToggle'
+ layout: (LayoutOrigin -334 1 128 0)
+ activeHelpKey: sameContents
+ model: searchForSameContents
+ isTriggerOnDown: true
+ showLamp: false
+ lampColor: (Color 100.0 100.0 0.0)
+ )
+ (LabelSpec
+ label: 'File Size:'
+ name: 'FileSizeLabel'
+ layout: (LayoutFrame 2 0 151 0 154 0 168 0)
+ activeHelpKey: fileSize
+ translateLabel: true
+ adjust: right
+ )
+ (PopUpListSpec
+ label: 'PopUp List'
+ name: 'FileSizeOperatorPopUpList'
+ layout: (LayoutFrame 157 0 148 0 212 0 168 0)
+ activeHelpKey: fileSize
+ tabable: true
+ model: fileSizeOperatorHolder
+ enableChannel: enableFileSizeFilterAndNotSearchForSameContents
+ menu:
+ (Array
+ ' >' ' < '
+ ' !!= ' ' = '
+ ' ~ '
+ )
)
-
- )
- )
- (SequenceViewSpec
- name: 'List1'
- layout: (LayoutFrame 0 0.0 238 0 0 1.0 0 1)
- model: selectionHolder
- menu: menu
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- isMultiSelect: true
- doubleClickSelector: fileDoubleClick:
- valueChangeSelector: fileSelected:
- useIndex: true
- sequenceList: shownListHolder
- properties:
- (PropertyListDictionary
- dragArgument: findFileList
- startDragSelector: doStartDrag:in:
- displayObjectSelector: getDisplayObjects:
- dropObjectSelector: getDropObjects:
- )
- )
+ (InputFieldSpec
+ name: 'FileSizeEntryField'
+ layout: (LayoutFrame 219 0 148 0 -349 1 168 0)
+ activeHelpKey: fileSize
+ enableChannel: enableFileSizeFilterAndNotSearchForSameContents
+ tabable: true
+ model: fileSizeHolder
+ type: fileSize
+ immediateAccept: false
+ acceptOnLeave: true
+ acceptOnLostFocus: true
+ acceptOnPointerLeave: true
+ )
+ (CheckToggleSpec
+ name: 'EnableSizeCheckToggle'
+ layout: (LayoutOrigin -334 1 151 0)
+ activeHelpKey: fileSize
+ model: enableFileSizeFilter
+ enableChannel: notSearchForSameContents
+ isTriggerOnDown: true
+ showLamp: false
+ lampColor: (Color 100.0 100.0 0.0)
+ )
+ (LabelSpec
+ label: 'Modified:'
+ name: 'Label2'
+ layout: (LayoutFrame 2 0 175 0 154 0 192 0)
+ activeHelpKey: modificationTime
+ translateLabel: true
+ adjust: right
+ )
+ (PopUpListSpec
+ label: 'PopUp List'
+ name: 'PopUpList1'
+ layout: (LayoutFrame 157 0 172 0 212 0 192 0)
+ activeHelpKey: modificationTime
+ tabable: true
+ model: modificationTimeOperatorHolder
+ enableChannel: enableModificationTimeFilter
+ menu:
+ (Array
+ ' before' ' after '
+ )
+ )
+ (InputFieldSpec
+ name: 'EntryField2'
+ layout: (LayoutFrame 219 0 172 0 -349 1 192 0)
+ activeHelpKey: modificationTime
+ enableChannel: enableModificationTimeFilter
+ tabable: true
+ model: modificationTimeHolder
+ type: timestamp
+ immediateAccept: false
+ acceptOnLeave: true
+ acceptOnLostFocus: true
+ acceptOnPointerLeave: true
+ )
+ (CheckToggleSpec
+ name: 'CheckToggle1'
+ layout: (LayoutOrigin -334 1 175 0)
+ activeHelpKey: modificationTime
+ model: enableModificationTimeFilter
+ isTriggerOnDown: true
+ showLamp: false
+ lampColor: (Color 100.0 100.0 0.0)
+ )
+ (CheckBoxSpec
+ label: 'Use ''locate'' Cmd'
+ name: 'UseLocateCheckBox'
+ layout: (LayoutFrame -309 1 5 0 -167 1 28 0)
+ activeHelpKey: useLocate
+ visibilityChannel: canUseLocate
+ tabable: true
+ model: useLocate
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Recursive'
+ name: 'RecursiveSearchCheckBox'
+ layout: (LayoutFrame -169 1 5 0 -4 1 28 0)
+ activeHelpKey: recursiveSearch
+ tabable: true
+ model: searchRecursively
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Directories'
+ name: 'SearchDirectoriesCheckBox'
+ layout: (LayoutFrame -309 1 29 0 -167 1 52 0)
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: searchDirectories
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Ignore Case'
+ name: 'IgnoreCaseInNameCheckBox'
+ layout: (LayoutFrame -169 1 29 0 -4 1 52 0)
+ activeHelpKey: ignoreCase
+ tabable: true
+ model: ignoreCaseInName
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Ignore Case'
+ name: 'CheckBox1'
+ layout: (LayoutFrame -169 1 53 0 -4 1 76 0)
+ activeHelpKey: ignoreCase
+ tabable: true
+ model: ignoreCaseInExcludedName
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Use ''grep'' Cmd'
+ name: 'UseGrepCheckBox'
+ layout: (LayoutFrame -309 1 77 0 -167 1 100 0)
+ visibilityChannel: canUseGrep
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: useGrep
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Ignore Case'
+ name: 'IgnoreCaseInContentsCheckBox'
+ layout: (LayoutFrame -169 1 77 0 -4 1 100 0)
+ activeHelpKey: ignoreCase
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: ignoreCaseInContents
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Ignore Case'
+ name: 'IgnoreCaseInNotContentsCheckBox'
+ layout: (LayoutFrame -169 1 101 0 -4 1 124 0)
+ activeHelpKey: ignoreCase
+ enableChannel: notSearchForSameContents
+ tabable: true
+ model: ignoreCaseInNotContents
+ translateLabel: true
+ )
+ (CheckBoxSpec
+ label: 'Cache Info'
+ name: 'RememberInCacheCheckBox'
+ layout: (LayoutFrame -309 1 125 0 -167 1 148 0)
+ visibilityChannel: canUseGrep
+ enableChannel: searchForSameContents
+ tabable: true
+ model: rememberInCache
+ translateLabel: true
+ )
+ (ActionButtonSpec
+ label: 'Clear Cache'
+ name: 'ClearCacheButton'
+ layout: (LayoutFrame -169 1 125 0 -44 1 147 0)
+ translateLabel: true
+ model: clearCache
+ )
+ (CheckBoxSpec
+ label: 'Show Unreadable Files and Folders'
+ name: 'CheckBox2'
+ layout: (LayoutFrame -309 1 149 0 0 1 172 0)
+ tabable: true
+ model: showUnreadableFilesAndDirectoriesHolder
+ translateLabel: true
+ )
+ )
+
+ )
)
-
- )
- )
+ (SequenceViewSpec
+ name: 'List1'
+ layout: (LayoutFrame 0 0.0 238 0 0 1.0 0 1)
+ model: selectionHolder
+ menu: menu
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ isMultiSelect: true
+ doubleClickSelector: fileDoubleClick:
+ valueChangeSelector: fileSelected:
+ useIndex: true
+ sequenceList: shownListHolder
+ properties:
+ (PropertyListDictionary
+ displayObjectSelector: getDisplayObjects:
+ startDragSelector: doStartDrag:in:
+ dropObjectSelector: getDropObjects:
+ dragArgument: findFileList
+ )
+ )
+ )
+
+ )
+ )
! !
!FindFileApplication class methodsFor:'menu specs'!
@@ -811,6 +821,7 @@
^ self.
].
+ LastShowUnreadableFilesAndDirectories := showUnreadableFilesAndDirectoriesHolder value.
LastSearchIgnoredCaseInFilename := ignoreCaseInName := self ignoreCaseInName value.
LastSearchIgnoredCaseInExcludedFilename := ignoreCaseInExcludedName := self ignoreCaseInExcludedName value.
LastSearchIgnoredCaseInContents := ignoreCaseInContents := self ignoreCaseInContents value.
@@ -1172,6 +1183,13 @@
^ searchOnlyInCache.
!
+showUnreadableFilesAndDirectoriesHolder
+ showUnreadableFilesAndDirectoriesHolder isNil ifTrue:[
+ showUnreadableFilesAndDirectoriesHolder := (LastShowUnreadableFilesAndDirectories ? false) asValue.
+ ].
+ ^ showUnreadableFilesAndDirectoriesHolder.
+!
+
showingMatchedFiles
^ self shownList == self matchedFilesList
!
@@ -1478,26 +1496,34 @@
"/ string search ...
contentsMatches := true.
(f exists and:[f isReadable]) ifFalse:[
- resultList add: (('*** ' , f pathName , ' skipped - unreadable or bad symbolic link ***') colorizeAllWith:(Color red darkened)).
+ showUnreadableFilesAndDirectoriesHolder value ifTrue:[
+ resultList add: (('*** ' , f pathName , ' skipped - unreadable or bad symbolic link ***') colorizeAllWith:(Color red darkened)).
+ ].
contentsMatches := false.
] ifTrue:[
hugeFile := f fileSize > (4024*1024).
bigFile := f fileSize > (512*1024).
hugeFile ifTrue:[
- resultList add: (('*** ' , f pathName , ' skipped - too large ***') colorizeAllWith:(Color red darkened)).
+ showUnreadableFilesAndDirectoriesHolder value ifTrue:[
+ resultList add: (('*** ' , f pathName , ' skipped - too large ***') colorizeAllWith:(Color red darkened)).
+ ].
contentsMatches := false.
] ifFalse:[
Stream lineTooLongErrorSignal handle:[:ex |
|cont|
"/ "/ this typically happens, when a binary file is read linewise ...
- resultList add: (('*** ' , f pathName , ' skipped - binary/long line ***') colorizeAllWith:(Color red darkened)).
+ showUnreadableFilesAndDirectoriesHolder value ifTrue:[
+ resultList add: (('*** ' , f pathName , ' skipped - binary/long line ***') colorizeAllWith:(Color red darkened)).
+ ].
contentsMatches := false.
] do:[
bigFile ifTrue:[
Stream lineTooLongErrorSignal handle:[:ex |
- resultList add: (('*** ' , f pathName , ' skipped - too large ***') colorizeAllWith:(Color red darkened)).
+ showUnreadableFilesAndDirectoriesHolder value ifTrue:[
+ resultList add: (('*** ' , f pathName , ' skipped - too large ***') colorizeAllWith:(Color red darkened)).
+ ].
contentsMatches := false.
] do:[
contentsMatches := false.
@@ -1848,10 +1874,10 @@
!FindFileApplication class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FindFileApplication.st,v 1.110 2014-01-22 16:24:53 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FindFileApplication.st,v 1.111 2014-02-11 17:27:25 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/FindFileApplication.st,v 1.110 2014-01-22 16:24:53 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FindFileApplication.st,v 1.111 2014-02-11 17:27:25 cg Exp $'
! !