--- a/FBrowser.st Tue Sep 08 12:23:56 1998 +0200
+++ b/FBrowser.st Tue Sep 08 12:24:20 1998 +0200
@@ -99,7 +99,7 @@
f := aFilename asFilename.
f isDirectory ifTrue:[
- ^ self openOn:aFilename
+ ^ self openOn:aFilename
].
browser := self new.
@@ -128,35 +128,35 @@
Icons := Dictionary new.
#(
- "/ internal-type to icon mappings.
- (#directory 'ICON_DIRECTORY' 'tiny_yellow_dir.xpm' )
- (#directoryLocked 'ICON_DIRECTORY_LOCKED' 'tiny_yellow_dir_locked.xpm')
- (#directoryLink 'ICON_DIRECTORY_LINK' 'tiny_yellow_dir_link.xpm' )
- (#file 'ICON_FILE' 'tiny_file_plain.xpm' )
- (#fileLink 'ICON_FILE_LINK' 'tiny_file_link.xpm' )
- (#fileLocked 'ICON_FILE_LOCKED' 'tiny_file_lock.xpm' )
- (#imageFile 'ICON_IMAGE_FILE' 'tiny_file_pix.xpm' )
- (#textFile 'ICON_TEXT_FILE' 'tiny_file_text.xpm' )
- (#executableFile 'ICON_EXECUTABLEFILE' 'tiny_file_exec.xpm' )
-
- "/ mime-type to icon mappings.
- ('text/plain' nil 'tiny_file_text.xpm' )
- ('text/html' nil 'tiny_file_text.xpm' )
- ('application/x-smalltalk-source' nil 'tiny_file_st.xpm' )
+ "/ internal-type to icon mappings.
+ (#directory 'ICON_DIRECTORY' 'tiny_yellow_dir.xpm' )
+ (#directoryLocked 'ICON_DIRECTORY_LOCKED' 'tiny_yellow_dir_locked.xpm')
+ (#directoryLink 'ICON_DIRECTORY_LINK' 'tiny_yellow_dir_link.xpm' )
+ (#file 'ICON_FILE' 'tiny_file_plain.xpm' )
+ (#fileLink 'ICON_FILE_LINK' 'tiny_file_link.xpm' )
+ (#fileLocked 'ICON_FILE_LOCKED' 'tiny_file_lock.xpm' )
+ (#imageFile 'ICON_IMAGE_FILE' 'tiny_file_pix.xpm' )
+ (#textFile 'ICON_TEXT_FILE' 'tiny_file_text.xpm' )
+ (#executableFile 'ICON_EXECUTABLEFILE' 'tiny_file_exec.xpm' )
+
+ "/ mime-type to icon mappings.
+ ('text/plain' nil 'tiny_file_text.xpm' )
+ ('text/html' nil 'tiny_file_text.xpm' )
+ ('application/x-smalltalk-source' nil 'tiny_file_st.xpm' )
) do:[:entry |
- |key resource defaultName nm|
-
- key := entry at:1.
- resource := entry at:2.
- defaultName := entry at:3.
-
- resource notNil ifTrue:[
- nm := resources at:resource default:nil.
- ].
- nm isNil ifTrue:[
- nm := 'bitmaps/xpmBitmaps/document_images/' , defaultName
- ].
- Icons at:key put:(Image fromFile:nm).
+ |key resource defaultName nm|
+
+ key := entry at:1.
+ resource := entry at:2.
+ defaultName := entry at:3.
+
+ resource notNil ifTrue:[
+ nm := resources at:resource default:nil.
+ ].
+ nm isNil ifTrue:[
+ nm := 'bitmaps/xpmBitmaps/document_images/' , defaultName
+ ].
+ Icons at:key put:(Image fromFile:nm).
]
"
@@ -245,43 +245,43 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'Copy Path'
- #translateLabel: true
- #value: #copyPath
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Up'
- #translateLabel: true
- #value: #changeToParentDirectory
- #enabled: #currentDirectoryIsNotTop
- )
- #(#MenuItem
- #label: 'Back'
- #translateLabel: true
- #value: #changeToPreviousDirectory
- )
- #(#MenuItem
- #label: 'Home'
- #translateLabel: true
- #value: #changeToHomeDirectory
- )
- #(#MenuItem
- #label: 'Default'
- #translateLabel: true
- #value: #changeToDefaultDirectory
- )
- #(#MenuItem
- #label: 'Goto...'
- #translateLabel: true
- #value: #changeCurrentDirectory
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'Copy Path'
+ #translateLabel: true
+ #value: #copyPath
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Up'
+ #translateLabel: true
+ #value: #changeToParentDirectory
+ #enabled: #currentDirectoryIsNotTop
+ )
+ #(#MenuItem
+ #label: 'Back'
+ #translateLabel: true
+ #value: #changeToPreviousDirectory
+ )
+ #(#MenuItem
+ #label: 'Home'
+ #translateLabel: true
+ #value: #changeToHomeDirectory
+ )
+ #(#MenuItem
+ #label: 'Default'
+ #translateLabel: true
+ #value: #changeToDefaultDirectory
+ )
+ #(#MenuItem
+ #label: 'Goto...'
+ #translateLabel: true
+ #value: #changeCurrentDirectory
+ )
+ ) nil
+ nil
)
"Created: / 4.8.1998 / 17:21:16 / cg"
@@ -310,12 +310,12 @@
"/ add the history items ...
DirectoryHistory size > 0 ifTrue:[
- base addItem:(MenuItem labeled:'-').
- DirectoryHistory do:[:dirName |
- base addItem:((MenuItem label:dirName value:#changeDirectoryTo:)
- argument:dirName;
- yourself).
- ].
+ base addItem:(MenuItem labeled:'-').
+ DirectoryHistory do:[:dirName |
+ base addItem:((MenuItem label:dirName value:#changeDirectoryTo:)
+ argument:dirName;
+ yourself).
+ ].
].
^ base
@@ -341,151 +341,151 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'Spawn'
- #translateLabel: true
- #value: #fileSpawn
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Get Contents'
- #translateLabel: true
- #value: #fileGet
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Insert Contents'
- #translateLabel: true
- #value: #fileInsert
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'FileIn'
- #translateLabel: true
- #value: #fileFileIn
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Unix Command...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'DOS Command...'
- #translateLabel: true
- #isVisible: #systemIsDOS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'VMS Command...'
- #translateLabel: true
- #isVisible: #systemIsVMS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'ST/X Tools'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Spawn'
+ #translateLabel: true
+ #value: #fileSpawn
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Get Contents'
+ #translateLabel: true
+ #value: #fileGet
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Insert Contents'
+ #translateLabel: true
+ #value: #fileInsert
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'FileIn'
+ #translateLabel: true
+ #value: #fileFileIn
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Unix Command...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'DOS Command...'
+ #translateLabel: true
+ #isVisible: #systemIsDOS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'VMS Command...'
+ #translateLabel: true
+ #isVisible: #systemIsVMS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'ST/X Tools'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Changes Browser'
- #translateLabel: true
- #value: #openChangesBrowser
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Editor'
- #translateLabel: true
- #value: #openEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'HTML Reader'
- #translateLabel: true
- #value: #openHTMLReader
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Inspect'
- #translateLabel: true
- #value: #openImageInspector
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Editor'
- #translateLabel: true
- #value: #openImageEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'ZipFile Tool'
- #translateLabel: true
- #value: #openZipTool
- #enabled: #hasZipFileSelected
- )
- #(#MenuItem
- #label: 'Show File Differences'
- #translateLabel: true
- #value: #openDiffView
- )
- #(#MenuItem
- #label: 'Terminal'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #openTerminal
- #enabled: #systemIsUnix
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Remove...'
- #translateLabel: true
- #value: #fileRemove
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Rename...'
- #translateLabel: true
- #value: #fileRename
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'New Directory...'
- #translateLabel: true
- #value: #newDirectory
- )
- #(#MenuItem
- #label: 'New File...'
- #translateLabel: true
- #value: #newFile
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Update'
- #translateLabel: true
- #value: #updateCurrentDirectory
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'Changes Browser'
+ #translateLabel: true
+ #value: #openChangesBrowser
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Editor'
+ #translateLabel: true
+ #value: #openEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'HTML Reader'
+ #translateLabel: true
+ #value: #openHTMLReader
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Inspect'
+ #translateLabel: true
+ #value: #openImageInspector
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Editor'
+ #translateLabel: true
+ #value: #openImageEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'ZipFile Tool'
+ #translateLabel: true
+ #value: #openZipTool
+ #enabled: #hasZipFileSelected
+ )
+ #(#MenuItem
+ #label: 'Show File Differences'
+ #translateLabel: true
+ #value: #openDiffView
+ )
+ #(#MenuItem
+ #label: 'Terminal'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #openTerminal
+ #enabled: #systemIsUnix
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Remove...'
+ #translateLabel: true
+ #value: #fileRemove
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Rename...'
+ #translateLabel: true
+ #value: #fileRename
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'New Directory...'
+ #translateLabel: true
+ #value: #newDirectory
+ )
+ #(#MenuItem
+ #label: 'New File...'
+ #translateLabel: true
+ #value: #newFile
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Update'
+ #translateLabel: true
+ #value: #updateCurrentDirectory
+ )
+ ) nil
+ nil
)
"Modified: / 26.8.1998 / 16:34:00 / cg"
@@ -509,325 +509,325 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'About'
- #translateLabel: true
- #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'About'
+ #translateLabel: true
+ #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'About Smalltalk/X...'
- #translateLabel: true
- #value: #showAboutSTX
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'About FileBrowser...'
- #translateLabel: true
- #value: #openAboutThisApplication
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'File'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'About Smalltalk/X...'
+ #translateLabel: true
+ #value: #showAboutSTX
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'About FileBrowser...'
+ #translateLabel: true
+ #value: #openAboutThisApplication
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'File'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Open'
- #translateLabel: true
- #value: #menuOpen
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'FileIn'
- #translateLabel: true
- #value: #fileFileIn
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'New'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Open'
+ #translateLabel: true
+ #value: #menuOpen
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'FileIn'
+ #translateLabel: true
+ #value: #fileFileIn
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'New'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Directory...'
- #translateLabel: true
- #value: #newDirectory
- )
- #(#MenuItem
- #label: 'File...'
- #translateLabel: true
- #value: #newFile
- )
- #(#MenuItem
- #label: 'Hard Link...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #newHardLink
- )
- #(#MenuItem
- #label: 'Symbolic Link...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #newSoftLink
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Remove'
- #translateLabel: true
- #value: #fileRemove
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Rename'
- #translateLabel: true
- #value: #fileRename
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Properties...'
- #translateLabel: true
- #value: #fileGetLongInfo
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Spawn'
- #translateLabel: true
- #value: #fileSpawn
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Exit'
- #translateLabel: true
- #value: #menuExit
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Directory'
- #translateLabel: true
- #submenuChannel: #directoryMenuSpec
- )
- #(#MenuItem
- #label: 'Edit'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Directory...'
+ #translateLabel: true
+ #value: #newDirectory
+ )
+ #(#MenuItem
+ #label: 'File...'
+ #translateLabel: true
+ #value: #newFile
+ )
+ #(#MenuItem
+ #label: 'Hard Link...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #newHardLink
+ )
+ #(#MenuItem
+ #label: 'Symbolic Link...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #newSoftLink
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Remove'
+ #translateLabel: true
+ #value: #fileRemove
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Rename'
+ #translateLabel: true
+ #value: #fileRename
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Properties...'
+ #translateLabel: true
+ #value: #fileGetLongInfo
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Spawn'
+ #translateLabel: true
+ #value: #fileSpawn
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Exit'
+ #translateLabel: true
+ #value: #menuExit
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Directory'
+ #translateLabel: true
+ #submenuChannel: #directoryMenuSpec
+ )
+ #(#MenuItem
+ #label: 'Edit'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Get Contents'
- #translateLabel: true
- #value: #fileGet
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Insert Contents'
- #translateLabel: true
- #value: #fileInsert
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Copy File List'
- #translateLabel: true
- #value: #copyFileList
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'View'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Get Contents'
+ #translateLabel: true
+ #value: #fileGet
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Insert Contents'
+ #translateLabel: true
+ #value: #fileInsert
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Copy File List'
+ #translateLabel: true
+ #value: #copyFileList
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'View'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Details'
- #translateLabel: true
- #indication: #showingDetails
- )
- #(#MenuItem
- #label: 'Show Hidden Files'
- #translateLabel: true
- #indication: #showingHiddenFiles
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Sort By Name'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #name
- )
- #(#MenuItem
- #label: 'Sort By Type'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #type
- )
- #(#MenuItem
- #label: 'Sort By Time'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #time
- )
- #(#MenuItem
- #label: 'Ignore Case'
- #translateLabel: true
- #enabled: #sortByName
- #indication: #sortCaseless
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Encoding...'
- #translateLabel: true
- #value: #fileEncoding
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Update'
- #translateLabel: true
- #value: #updateCurrentDirectory
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Tools'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Details'
+ #translateLabel: true
+ #indication: #showingDetails
+ )
+ #(#MenuItem
+ #label: 'Show Hidden Files'
+ #translateLabel: true
+ #indication: #showingHiddenFiles
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Sort By Name'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #name
+ )
+ #(#MenuItem
+ #label: 'Sort By Type'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #type
+ )
+ #(#MenuItem
+ #label: 'Sort By Time'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #time
+ )
+ #(#MenuItem
+ #label: 'Ignore Case'
+ #translateLabel: true
+ #enabled: #sortByName
+ #indication: #sortCaseless
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Encoding...'
+ #translateLabel: true
+ #value: #fileEncoding
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Update'
+ #translateLabel: true
+ #value: #updateCurrentDirectory
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Tools'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Unix Command'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'DOS Command'
- #translateLabel: true
- #isVisible: #systemIsDOS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'VMS Command'
- #translateLabel: true
- #isVisible: #systemIsVMS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Changes Browser'
- #translateLabel: true
- #value: #openChangesBrowser
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Editor'
- #translateLabel: true
- #value: #openEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'HTML Reader'
- #translateLabel: true
- #value: #openHTMLReader
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Inspector'
- #translateLabel: true
- #value: #openImageInspector
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Editor'
- #translateLabel: true
- #value: #openImageEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'ZipFile Tool'
- #translateLabel: true
- #value: #openZipTool
- #enabled: #hasZipFileSelected
- )
- #(#MenuItem
- #label: 'File Differences...'
- #translateLabel: true
- #value: #openDiffView
- )
- #(#MenuItem
- #label: 'Shell Terminal'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #openTerminal
- #enabled: #systemIsUnix
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Help'
- #translateLabel: true
- #startGroup: #right
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Unix Command'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'DOS Command'
+ #translateLabel: true
+ #isVisible: #systemIsDOS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'VMS Command'
+ #translateLabel: true
+ #isVisible: #systemIsVMS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Changes Browser'
+ #translateLabel: true
+ #value: #openChangesBrowser
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Editor'
+ #translateLabel: true
+ #value: #openEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'HTML Reader'
+ #translateLabel: true
+ #value: #openHTMLReader
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Inspector'
+ #translateLabel: true
+ #value: #openImageInspector
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Editor'
+ #translateLabel: true
+ #value: #openImageEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'ZipFile Tool'
+ #translateLabel: true
+ #value: #openZipTool
+ #enabled: #hasZipFileSelected
+ )
+ #(#MenuItem
+ #label: 'File Differences...'
+ #translateLabel: true
+ #value: #openDiffView
+ )
+ #(#MenuItem
+ #label: 'Shell Terminal'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #openTerminal
+ #enabled: #systemIsUnix
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Help'
+ #translateLabel: true
+ #startGroup: #right
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'FileBrowser Documentation'
- #translateLabel: true
- #value: #openHTMLDocument:
- #argument: 'tools/fbrowser/TOP.html'
- )
- ) nil
- nil
- )
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'FileBrowser Documentation'
+ #translateLabel: true
+ #value: #openHTMLDocument:
+ #argument: 'tools/fbrowser/TOP.html'
+ )
+ ) nil
+ nil
+ )
+ )
+ ) nil
+ nil
)
"Modified: / 26.8.1998 / 16:33:44 / cg"
@@ -859,10 +859,10 @@
hasZipFileSelected
^ [|sel fn|
- sel := fileListView selectionValue.
- sel size == 1
- and:[ ((fn := self getSelectedFileName asFilename) hasSuffix:'zip')
- or:[fn hasSuffix:'jar']]
+ sel := fileListView selectionValue.
+ sel size == 1
+ and:[ ((fn := self getSelectedFileName asFilename) hasSuffix:'zip')
+ or:[fn hasSuffix:'jar']]
]
"Created: / 26.8.1998 / 16:15:26 / cg"
@@ -1063,11 +1063,11 @@
wasVisible := shown.
super visibilityChange:how.
(wasVisible not and:[shown]) ifTrue:[
- "
- start checking again
- "
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ "
+ start checking again
+ "
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
]
"Modified: / 18.2.1998 / 17:57:44 / cg"
@@ -1202,74 +1202,74 @@
|aStream path oldPath wasLazy bos prevCurrentFileName|
self selectedFilesDo:[:fileName |
- path := currentDirectory filenameFor:fileName.
- path type == #regular ifTrue:[
- prevCurrentFileName := currentFileInFileName.
- currentFileInFileName := fileName.
-
- (ObjectFileLoader notNil
- and:[ObjectFileLoader hasValidBinaryExtension:fileName]) ifTrue:[
- Object abortSignal catch:[
- |p|
-
- "/
- "/ look if already loaded ... then unload first
- "/
- p := path pathName.
- (ObjectFileLoader loadedObjectFiles includes:p) ifTrue:[
- (Dialog confirm:(resources
- string:'%1 is already loaded; load anyway ?'
- with:p)) ifFalse:[
- ^ self
- ].
- Transcript showCR:'unloading old ' , p , ' ...'.
- ObjectFileLoader unloadObjectFile:p.
- ].
-
- Transcript showCR:'loading ' , p , ' ...'.
- ObjectFileLoader loadObjectFile:p.
- Class addInfoRecord:('fileIn ' , fileName)
- ]
- ] ifFalse:[
- (path hasSuffix:'cls') ifTrue:[
- aStream := path readStream.
- aStream notNil ifTrue:[
- bos := BinaryObjectStorage onOld:aStream.
- Class nameSpaceQuerySignal
- answer:Smalltalk
- do:[
- bos next.
- ].
- bos close
- ]
- ] ifFalse:[
- ((path hasSuffix:'class')
- or:[(path hasSuffix:'cla')]) ifTrue:[
- JavaClassReader notNil ifTrue:[
- JavaClassReader loadFile:(path pathName)
- ]
- ] ifFalse:[
- aStream := path readStream.
- aStream notNil ifTrue:[
- [
- Class withoutUpdatingChangesDo:[
- oldPath := Smalltalk systemPath.
- Smalltalk systemPath:(oldPath copy addFirst:currentDirectory pathName; yourself).
- wasLazy := Compiler compileLazy:lazy.
- aStream fileIn.
- ].
- Class addInfoRecord:('fileIn ' , fileName)
- ] valueNowOrOnUnwindDo:[
- Compiler compileLazy:wasLazy.
- Smalltalk systemPath:oldPath.
- aStream close
- ]
- ]
- ]
- ]
- ]
- ].
- currentFileInFileName := prevCurrentFileName
+ path := currentDirectory filenameFor:fileName.
+ path type == #regular ifTrue:[
+ prevCurrentFileName := currentFileInFileName.
+ currentFileInFileName := fileName.
+
+ (ObjectFileLoader notNil
+ and:[ObjectFileLoader hasValidBinaryExtension:fileName]) ifTrue:[
+ Object abortSignal catch:[
+ |p|
+
+ "/
+ "/ look if already loaded ... then unload first
+ "/
+ p := path pathName.
+ (ObjectFileLoader loadedObjectFiles includes:p) ifTrue:[
+ (Dialog confirm:(resources
+ string:'%1 is already loaded; load anyway ?'
+ with:p)) ifFalse:[
+ ^ self
+ ].
+ Transcript showCR:'unloading old ' , p , ' ...'.
+ ObjectFileLoader unloadObjectFile:p.
+ ].
+
+ Transcript showCR:'loading ' , p , ' ...'.
+ ObjectFileLoader loadObjectFile:p.
+ Class addInfoRecord:('fileIn ' , fileName)
+ ]
+ ] ifFalse:[
+ (path hasSuffix:'cls') ifTrue:[
+ aStream := path readStream.
+ aStream notNil ifTrue:[
+ bos := BinaryObjectStorage onOld:aStream.
+ Class nameSpaceQuerySignal
+ answer:Smalltalk
+ do:[
+ bos next.
+ ].
+ bos close
+ ]
+ ] ifFalse:[
+ ((path hasSuffix:'class')
+ or:[(path hasSuffix:'cla')]) ifTrue:[
+ JavaClassReader notNil ifTrue:[
+ JavaClassReader loadFile:(path pathName)
+ ]
+ ] ifFalse:[
+ aStream := path readStream.
+ aStream notNil ifTrue:[
+ [
+ Class withoutUpdatingChangesDo:[
+ oldPath := Smalltalk systemPath.
+ Smalltalk systemPath:(oldPath copy addFirst:currentDirectory pathName; yourself).
+ wasLazy := Compiler compileLazy:lazy.
+ aStream fileIn.
+ ].
+ Class addInfoRecord:('fileIn ' , fileName)
+ ] valueNowOrOnUnwindDo:[
+ Compiler compileLazy:wasLazy.
+ Smalltalk systemPath:oldPath.
+ aStream close
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+ currentFileInFileName := prevCurrentFileName
]
"Modified: / 19.9.1997 / 23:42:22 / stefan"
@@ -1330,18 +1330,18 @@
string := self getFileInfoString:longInfo.
string notNil ifTrue:[
- box := InfoBox title:string.
- updater := [
- [true] whileTrue:[
- Delay waitForSeconds:2.
- string := self getFileInfoString:longInfo.
- box title:string
- ]
- ] fork.
-
- box showAtPointer.
- updater terminate.
- box destroy
+ box := InfoBox title:string.
+ updater := [
+ [true] whileTrue:[
+ Delay waitForSeconds:2.
+ string := self getFileInfoString:longInfo.
+ box title:string
+ ]
+ ] fork.
+
+ box showAtPointer.
+ updater terminate.
+ box destroy
]
!
@@ -1387,87 +1387,87 @@
|items m sel ns subMenu subItems|
items := #(
- ('spawn' fileSpawn )
- ('-' nil )
- ('get contents' fileGet GotoLine)
- ('insert contents' fileInsert )
- ('show info' fileGetInfo InspectIt)
- ('show full info' fileGetLongInfo CmdI)
- ).
+ ('spawn' fileSpawn )
+ ('-' nil )
+ ('get contents' fileGet GotoLine)
+ ('insert contents' fileInsert )
+ ('show info' fileGetInfo InspectIt)
+ ('show full info' fileGetLongInfo CmdI)
+ ).
((ns := Project current defaultNameSpace) notNil
and:[ns ~~ Smalltalk]) ifTrue:[
- items := items copyWith:(Array
- with:(resources string:'fileIn (into ''%1'')' with:(Project current defaultNameSpace name))
- with:#fileFileIn
- with:#Accept)
+ items := items copyWith:(Array
+ with:(resources string:'fileIn (into ''%1'')' with:(Project current defaultNameSpace name))
+ with:#fileFileIn
+ with:#Accept)
] ifFalse:[
- items := items copyWith:#( 'fileIn' #fileFileIn #Accept)
+ items := items copyWith:#( 'fileIn' #fileFileIn #Accept)
].
items := items , #(
- ('-' )
- ('update' updateCurrentDirectory Cmdu)
- ('-' )
- ('execute unix command ...' fileExecute DoIt)
- ('st/x tools' stxTools )
- ('-' )
- ('remove' fileRemove Delete)
- ('rename ...' fileRename )
- ('-' )
- ('display long list' changeDisplayMode )
- ('show all files' changeDotFileVisibility )
- ('encoding ...' fileEncoding )
- ('-' )
- ('create directory ...' newDirectory CmdD)
- ('create file ...' newFile CmdF)
- ).
+ ('-' )
+ ('update' updateCurrentDirectory Cmdu)
+ ('-' )
+ ('execute unix command ...' fileExecute DoIt)
+ ('st/x tools' stxTools )
+ ('-' )
+ ('remove' fileRemove Delete)
+ ('rename ...' fileRename )
+ ('-' )
+ ('display long list' changeDisplayMode )
+ ('show all files' changeDotFileVisibility )
+ ('encoding ...' fileEncoding )
+ ('-' )
+ ('create directory ...' newDirectory CmdD)
+ ('create file ...' newFile CmdF)
+ ).
m := PopUpMenu
- itemList:items
- resources:resources.
+ itemList:items
+ resources:resources.
showingHiddenFiles value "showDotFiles" ifTrue:[
- m labelAt:#changeDotFileVisibility put:(resources string:'hide hidden files')
+ m labelAt:#changeDotFileVisibility put:(resources string:'hide hidden files')
].
showingDetails value "showLongList" ifTrue:[
- m labelAt:#changeDisplayMode put:(resources string:'display short list')
+ m labelAt:#changeDisplayMode put:(resources string:'display short list')
].
items := #(
- ('Changes browser' openChangesBrowser )
- ('Editor' openEditor )
- ('HTML reader' openHTMLReader )
- ('Image inspect' openImageInspector )
- ('show file differences' openDiffView )
- ).
+ ('Changes browser' openChangesBrowser )
+ ('Editor' openEditor )
+ ('HTML reader' openHTMLReader )
+ ('Image inspect' openImageInspector )
+ ('show file differences' openDiffView )
+ ).
OperatingSystem isUNIXlike ifTrue:[
- items := items , #( ('terminal' openTerminal )).
+ items := items , #( ('terminal' openTerminal )).
].
JavaInterpreter notNil ifTrue:[
- items := items , #( ('Java Applet Viewer' openAppletViewer)).
+ items := items , #( ('Java Applet Viewer' openAppletViewer)).
].
m subMenuAt:#stxTools
- put:(PopUpMenu
- itemList:items
- resources:resources).
+ put:(PopUpMenu
+ itemList:items
+ resources:resources).
((sel := fileListView selection) isNil
or:[sel isEmpty]) ifTrue:[
- m disableAll:#(fileGet fileInsert
- fileGetInfo fileGetLongInfo
- fileFileIn fileFileInLazy
- fileRemove fileRename).
- (m subMenuAt:#stxTools)
- disableAll:#(openChangesBrowser openEditor openHTMLReader openImageInspector)
+ m disableAll:#(fileGet fileInsert
+ fileGetInfo fileGetLongInfo
+ fileFileIn fileFileInLazy
+ fileRemove fileRename).
+ (m subMenuAt:#stxTools)
+ disableAll:#(openChangesBrowser openEditor openHTMLReader openImageInspector)
] ifFalse:[
- fileListView selection size > 1 ifTrue:[
- m disableAll:#( fileGet fileInsert fileGetInfo fileGetLongInfo fileRename )
- ]
+ fileListView selection size > 1 ifTrue:[
+ m disableAll:#( fileGet fileInsert fileGetInfo fileGetLongInfo fileRename )
+ ]
].
^m
@@ -1575,15 +1575,15 @@
|img path|
self selectedFilesDo:[:fileName |
- path := currentDirectory filenameFor:fileName.
- path isDirectory ifFalse:[
- img := Image fromFile:(path pathName).
- img notNil ifTrue:[
- img perform:aSelector
- ] ifFalse:[
- self warn:'unknown format: ' , fileName
- ]
- ]
+ path := currentDirectory filenameFor:fileName.
+ path isDirectory ifFalse:[
+ img := Image fromFile:(path pathName).
+ img notNil ifTrue:[
+ img perform:aSelector
+ ] ifFalse:[
+ self warn:'unknown format: ' , fileName
+ ]
+ ]
].
"Modified: / 17.9.1995 / 17:41:24 / claus"
@@ -1633,9 +1633,9 @@
orgName1 := ''.
(sel size > 0) ifTrue:[
- (currentDirectory construct:sel) isDirectory ifFalse:[
- orgName1 := sel
- ]
+ (currentDirectory construct:sel) isDirectory ifFalse:[
+ orgName1 := sel
+ ]
].
name1 := orgName1 asValue.
@@ -1650,45 +1650,45 @@
box addAbortButton; addOkButton.
orgName1 size > 0 ifTrue:[
- box focusOnField:if2.
+ box focusOnField:if2.
].
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f1 := name1 asFilename.
- name2 := name2 value.
- (name2 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f2 := name2 asFilename.
- f2 exists ifTrue:[
- err := '''%2'' already exists'.
- ] ifFalse:[
- f1 exists ifFalse:[
- err := '''%1'' does not exist'.
- ] ifTrue:[
- f1 isDirectory ifTrue:[
- err := '''%1'' is a directory'.
- ] ifFalse:[
- ErrorSignal handle:[:ex |
- err := ex errorString
- ] do:[
- OperatingSystem createHardLinkFrom:name1 to:name2
- ]
- ]
- ]
- ]
- ]
- ].
-
- err notNil ifTrue:[
- self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
- ^ self
- ].
+ name1 := name1 value.
+ (name1 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f1 := name1 asFilename.
+ name2 := name2 value.
+ (name2 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f2 := name2 asFilename.
+ f2 exists ifTrue:[
+ err := '''%2'' already exists'.
+ ] ifFalse:[
+ f1 exists ifFalse:[
+ err := '''%1'' does not exist'.
+ ] ifTrue:[
+ f1 isDirectory ifTrue:[
+ err := '''%1'' is a directory'.
+ ] ifFalse:[
+ ErrorSignal handle:[:ex |
+ err := ex errorString
+ ] do:[
+ OperatingSystem createHardLinkFrom:name1 to:name2
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ err notNil ifTrue:[
+ self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
+ ^ self
+ ].
].
"Modified: / 13.8.1998 / 21:47:01 / cg"
@@ -1703,7 +1703,7 @@
orgName1 := ''.
(sel size > 0) ifTrue:[
- orgName1 := sel
+ orgName1 := sel
].
name1 := orgName1 asValue.
@@ -1718,40 +1718,40 @@
box addAbortButton; addOkButton.
orgName1 size > 0 ifTrue:[
- box focusOnField:if2.
+ box focusOnField:if2.
].
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f1 := name1 asFilename.
- name2 := name2 value.
- (name2 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f2 := name2 asFilename.
- f2 exists ifTrue:[
- err := '''%2'' already exists'.
- ] ifFalse:[
- f1 exists ifFalse:[
- err := '''%1'' does not exist (link created anyway)'.
- ].
- ErrorSignal handle:[:ex |
- err := ex errorString
- ] do:[
- OperatingSystem createSymbolicLinkFrom:name1 to:name2
- ]
- ]
- ]
- ].
-
- err notNil ifTrue:[
- self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
- ^ self
- ].
+ name1 := name1 value.
+ (name1 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f1 := name1 asFilename.
+ name2 := name2 value.
+ (name2 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f2 := name2 asFilename.
+ f2 exists ifTrue:[
+ err := '''%2'' already exists'.
+ ] ifFalse:[
+ f1 exists ifFalse:[
+ err := '''%1'' does not exist (link created anyway)'.
+ ].
+ ErrorSignal handle:[:ex |
+ err := ex errorString
+ ] do:[
+ OperatingSystem createSymbolicLinkFrom:name1 to:name2
+ ]
+ ]
+ ]
+ ].
+
+ err notNil ifTrue:[
+ self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
+ ^ self
+ ].
].
"Modified: / 13.8.1998 / 21:26:59 / cg"
@@ -1805,11 +1805,11 @@
(sel size > 0
and:[lastFileDiffDirectory notNil
and:[lastFileDiffDirectory asFilename isDirectory]]) ifTrue:[
- f := lastFileDiffDirectory asFilename construct:sel.
- (f exists
- and:[f isReadable]) ifTrue:[
- orgName1 := f name
- ]
+ f := lastFileDiffDirectory asFilename construct:sel.
+ (f exists
+ and:[f isReadable]) ifTrue:[
+ orgName1 := f name
+ ]
].
name1 := orgName1 asValue.
@@ -1827,57 +1827,57 @@
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 isNil or:[name1 isEmpty]) ifTrue:[
- text1 := subView contents.
- name1 := nil.
- l1 := 'browser contents'
- ] ifFalse:[
- name1 := currentDirectory filenameFor:name1.
- name1 isReadable ifFalse:[
- nm := name1.
- name1 exists ifFalse:[
- err := '%1 does not exist'.
- ] ifTrue:[
- err := '%1 is not readable'
- ].
- ].
- l1 := name1 pathName
- ].
-
- name2 := currentDirectory filenameFor:name2 value.
- err isNil ifTrue:[
- name2 isReadable ifFalse:[
- nm := name2.
- name2 exists ifFalse:[
- err := '%1 does not exist'.
- ] ifTrue:[
- err := '%1 is not readable'
- ].
- ].
- ].
- err notNil ifTrue:[
- self warn:(resources string:err with:nm pathName).
- ^ self
- ].
-
- self withWaitCursorDo:[
- (name1 notNil and:[name1 name ~= orgName1]) ifTrue:[
- lastFileDiffDirectory := name1 directoryName
- ].
- name1 notNil ifTrue:[
- text1 := name1 contents.
- ].
- text2 := name2 contents.
- text1 = text2 ifTrue:[
- self information:'same contents'
- ] ifFalse:[
- d := DiffTextView
- openOn:text1 label:l1
- and:text2 label:name2 pathName.
- d label:'file differences'.
- ]
- ]
+ name1 := name1 value.
+ (name1 isNil or:[name1 isEmpty]) ifTrue:[
+ text1 := subView contents.
+ name1 := nil.
+ l1 := 'browser contents'
+ ] ifFalse:[
+ name1 := currentDirectory filenameFor:name1.
+ name1 isReadable ifFalse:[
+ nm := name1.
+ name1 exists ifFalse:[
+ err := '%1 does not exist'.
+ ] ifTrue:[
+ err := '%1 is not readable'
+ ].
+ ].
+ l1 := name1 pathName
+ ].
+
+ name2 := currentDirectory filenameFor:name2 value.
+ err isNil ifTrue:[
+ name2 isReadable ifFalse:[
+ nm := name2.
+ name2 exists ifFalse:[
+ err := '%1 does not exist'.
+ ] ifTrue:[
+ err := '%1 is not readable'
+ ].
+ ].
+ ].
+ err notNil ifTrue:[
+ self warn:(resources string:err with:nm pathName).
+ ^ self
+ ].
+
+ self withWaitCursorDo:[
+ (name1 notNil and:[name1 name ~= orgName1]) ifTrue:[
+ lastFileDiffDirectory := name1 directoryName
+ ].
+ name1 notNil ifTrue:[
+ text1 := name1 contents.
+ ].
+ text2 := name2 contents.
+ text1 = text2 ifTrue:[
+ self information:'same contents'
+ ] ifFalse:[
+ d := DiffTextView
+ openOn:text1 label:l1
+ and:text2 label:name2 pathName.
+ d label:'file differences'.
+ ]
+ ]
].
"Created: / 7.12.1995 / 20:33:58 / cg"
@@ -1951,25 +1951,25 @@
"depending on the showLongList setting, show or hde the tabSpec view"
showingDetails value "showLongList" ifTrue:[
- tabRulerView isNil ifTrue:[
- self createTabRulerIn:scrollView superView.
- ].
- tabRulerView beVisible.
+ tabRulerView isNil ifTrue:[
+ self createTabRulerIn:scrollView superView.
+ ].
+ tabRulerView beVisible.
- false "self is3D" ifTrue:[
- scrollView topInset:(tabRulerView superView height).
- tabRulerView superView leftInset:(fileListView originRelativeTo:scrollView) x.
- ] ifFalse:[
- scrollView topInset:(tabRulerView height).
- tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
- ].
- tabRulerView hiddenTabs:#(1).
- tabRulerView fixedTabs:#(1).
+ false "self is3D" ifTrue:[
+ scrollView topInset:(tabRulerView superView height).
+ tabRulerView superView leftInset:(fileListView originRelativeTo:scrollView) x.
+ ] ifFalse:[
+ scrollView topInset:(tabRulerView height).
+ tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
+ ].
+ tabRulerView hiddenTabs:#(1).
+ tabRulerView fixedTabs:#(1).
] ifFalse:[
- tabRulerView notNil ifTrue:[
- tabRulerView beInvisible.
- ].
- scrollView topInset:0
+ tabRulerView notNil ifTrue:[
+ tabRulerView beInvisible.
+ ].
+ scrollView topInset:0
].
tabSpec := nil.
@@ -2009,15 +2009,15 @@
|v|
false "self is3D" ifTrue:[
- v := View in:topFrame.
- v level:-1.
- tabRulerView := TabSpecRuler in:v.
- tabRulerView level:1.
- v origin:(0.0@0.0) corner:(1.0@10).
- tabRulerView origin:(0.0@0.0) corner:(1.0@1.0).
+ v := View in:topFrame.
+ v level:-1.
+ tabRulerView := TabSpecRuler in:v.
+ tabRulerView level:1.
+ v origin:(0.0@0.0) corner:(1.0@10).
+ tabRulerView origin:(0.0@0.0) corner:(1.0@1.0).
] ifFalse:[
- tabRulerView := TabSpecRuler in:topFrame.
- tabRulerView origin:(0.0@0.0) corner:(1.0@10).
+ tabRulerView := TabSpecRuler in:topFrame.
+ tabRulerView origin:(0.0@0.0) corner:(1.0@10).
].
tabRulerView borderWidth:0.
tabRulerView synchronousOperation:true.
@@ -2102,20 +2102,20 @@
lockUpdate := false.
CommandHistory isNil ifTrue:[
- CommandHistory := OrderedCollection new.
- CommandHistorySize := 50
+ CommandHistory := OrderedCollection new.
+ CommandHistorySize := 50
].
DirectoryHistory isNil ifTrue:[
- DirectoryHistory := OrderedCollection new.
- DirectoryHistoryWhere := OrderedCollection new.
- HistorySize := 15.
+ DirectoryHistory := OrderedCollection new.
+ DirectoryHistoryWhere := OrderedCollection new.
+ HistorySize := 15.
].
commandIndex := 0.
icons := Dictionary new.
Icons isNil ifTrue:[
- self class initializeIcons
+ self class initializeIcons
].
myName := (resources string:self class name).
@@ -2130,13 +2130,13 @@
menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
labelFrame := View
- origin:(0.0 @ mH)
- corner:(1.0 @ (font height * 1.8 + mH) rounded)
- in:self.
+ origin:(0.0 @ mH)
+ corner:(1.0 @ (font height * 1.8 + mH) rounded)
+ in:self.
(styleSheet name = #st80 or:[styleSheet name == #win95]) ifTrue:[
- labelFrame level:1.
- labelFrame rightInset:-1.
+ labelFrame level:1.
+ labelFrame rightInset:-1.
].
spacing := ViewSpacing.
@@ -2155,8 +2155,8 @@
filterModel := '*' asValue.
filterField := EditField in:labelFrame.
filterField
- origin:[((width // 4 * 3) + halfSpacing) @ (halfSpacing)]
- corner:(1.0 @ (filterField heightIncludingBorder + halfSpacing) ).
+ origin:[((width // 4 * 3) + halfSpacing) @ (halfSpacing)]
+ corner:(1.0 @ (filterField heightIncludingBorder + halfSpacing) ).
filterField rightInset:(ViewSpacing - halfSpacing).
filterField model:filterModel.
@@ -2180,14 +2180,14 @@
labelView := FilenameEditField in:labelFrame.
labelView
- origin:(halfSpacing @ (halfSpacing))
- extent:[((width // 4 * 3) - spacing - borderWidth)
- @
- (filterField heightIncludingBorder)
- "(font height + font descent)"
- ].
+ origin:(halfSpacing @ (halfSpacing))
+ extent:[((width // 4 * 3) - spacing - borderWidth)
+ @
+ (filterField heightIncludingBorder)
+ "(font height + font descent)"
+ ].
labelView menu:#labelMenu;
- aspect:#path; changeMessage:#pathChanged:.
+ aspect:#path; changeMessage:#pathChanged:.
labelView model:self.
labelView backgroundColor:(labelFrame viewBackground).
labelFrame model:self; menu:#labelMenu.
@@ -2223,7 +2223,7 @@
frame := VariableVerticalPanel origin:0.0@mH corner:1.0@1.0 in:self.
frame topInset:labelFrame height.
commandView notNil ifTrue:[
- frame bottomInset:(commandView height + spacing + spacing)
+ frame bottomInset:(commandView height + spacing + spacing)
].
topFrame := View in:frame.
@@ -2245,20 +2245,20 @@
fileListView menuHolder:self; menuPerformer:self; menuMessage:#fileListMenu.
fileListView allowDrag:true.
fileListView dragObjectConverter:[:obj |
- |dir nm path idx|
-
- nm := obj theObject asString.
- idx := fileListView list indexOf:nm.
- idx == 0 ifTrue:[
- "/ cannot happen ...
- nil
- ] ifFalse:[
- nm := fileList at:idx.
- dir := currentDirectory pathName asFilename.
- path := dir constructString:nm.
- DropObject newFile:path.
- ]
- ].
+ |dir nm path idx|
+
+ nm := obj theObject asString.
+ idx := fileListView list indexOf:nm.
+ idx == 0 ifTrue:[
+ "/ cannot happen ...
+ nil
+ ] ifFalse:[
+ nm := fileList at:idx.
+ dir := currentDirectory pathName asFilename.
+ path := dir constructString:nm.
+ DropObject newFile:path.
+ ]
+ ].
"/ sigh - must be delayed - origin is not yet fixe
"/ tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
@@ -2269,7 +2269,7 @@
v origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
subView := v scrolledView.
(subView respondsTo:#directoryForFileDialog:) ifTrue:[
- subView directoryForFileDialog:currentDirectory
+ subView directoryForFileDialog:currentDirectory
].
"/ buttonPanel := HorizontalPanelView in:self.
@@ -2403,15 +2403,15 @@
"copy fileList to the clipBoard"
self setTextSelection:(fileListView list
- collect:[:l | |ll|
- ll := l string withoutSeparators.
- (ll endsWith:' ...') ifTrue:[
- ll copyWithoutLast:4
- ] ifFalse:[
- ll
- ]
- ])
- asStringCollection asString.
+ collect:[:l | |ll|
+ ll := l string withoutSeparators.
+ (ll endsWith:' ...') ifTrue:[
+ ll copyWithoutLast:4
+ ] ifFalse:[
+ ll
+ ]
+ ])
+ asStringCollection asString.
"Modified: / 17.8.1998 / 10:13:10 / cg"
!
@@ -2452,17 +2452,17 @@
msg := '\' withCRs , myClass name asBoldText, rev.
AboutBox isNil ifTrue:[
- "/ this handles bad installations of ST/X,
- "/ where the AboutBox is missing.
- "/ (May vanish in the future)
- ^ self information:msg
+ "/ this handles bad installations of ST/X,
+ "/ where the AboutBox is missing.
+ "/ (May vanish in the future)
+ ^ self information:msg
].
box := AboutBox title:msg.
image := self class defaultIcon.
image notNil ifTrue:[
- box image:image
+ box image:image
].
box label:'About This Application'.
box autoHideAfter:10 with:[].
@@ -2513,10 +2513,10 @@
"exit FileBrowser"
(self askIfModified:'contents has not been saved.\\Modifications will be lost when FileBrowser is closed.'
- yesButton:'close')
+ yesButton:'close')
ifTrue:[
- "/ self windowGroup closeDownViews.
- super closeRequest
+ "/ self windowGroup closeDownViews.
+ super closeRequest
]
"Created: / 3.8.1998 / 19:55:06 / cg"
@@ -2618,7 +2618,7 @@
"sent from label menu to change back to a previous directory"
self discardChangesDialog ifTrue:[
- self doChangeCurrentDirectoryTo:aDirectoryName updateHistory:true "/false.
+ self doChangeCurrentDirectoryTo:aDirectoryName updateHistory:true "/false.
].
"Modified: / 2.10.1997 / 14:09:24 / stefan"
@@ -2687,62 +2687,62 @@
|items menu currentIndex|
items := #(
- ('copy path' copyPath )
- ('-' )
- ('up' changeToParentDirectory )
- ('back' changeToPreviousDirectory )
- ('change to home-directory' changeToHomeDirectory )
- ('change to default-directory' changeToDefaultDirectory )
- ('change directory ...' changeCurrentDirectory )
- ).
+ ('copy path' copyPath )
+ ('-' )
+ ('up' changeToParentDirectory )
+ ('back' changeToPreviousDirectory )
+ ('change to home-directory' changeToHomeDirectory )
+ ('change to default-directory' changeToDefaultDirectory )
+ ('change directory ...' changeCurrentDirectory )
+ ).
(JavaClassReader notNil and:[JavaClassReader isLoaded]) ifTrue:[
- items := items , #(
- ( '-')
- ( 'add to JavaClassPath' addDirToJavaClassPath)
- ( 'add to JavaSourcePath' addDirToJavaSourcePath)
- ( 'remove from JavaClassPath' removeDirFromJavaClassPath)
- ( 'remove from JavaSourcePath' removeDirFromJavaSourcePath)
- ).
+ items := items , #(
+ ( '-')
+ ( 'add to JavaClassPath' addDirToJavaClassPath)
+ ( 'add to JavaSourcePath' addDirToJavaSourcePath)
+ ( 'remove from JavaClassPath' removeDirFromJavaClassPath)
+ ( 'remove from JavaSourcePath' removeDirFromJavaSourcePath)
+ ).
].
DirectoryHistory size > 0 ifTrue:[
- items := items copyWith:#('-').
- items := items ,
- (DirectoryHistory
- collect:[:dirName |
- Array
- with:dirName
- with:#changeDirectoryTo:
- with:nil
- with:dirName
- ]
- ).
- currentIndex := items findFirst:[:i | (i at:1) = currentDirectory pathName].
- currentIndex == 0 ifTrue:[currentIndex := nil].
+ items := items copyWith:#('-').
+ items := items ,
+ (DirectoryHistory
+ collect:[:dirName |
+ Array
+ with:dirName
+ with:#changeDirectoryTo:
+ with:nil
+ with:dirName
+ ]
+ ).
+ currentIndex := items findFirst:[:i | (i at:1) = currentDirectory pathName].
+ currentIndex == 0 ifTrue:[currentIndex := nil].
].
menu := PopUpMenu
- itemList:items
- resources:resources.
+ itemList:items
+ resources:resources.
previousDirectory isNil ifTrue:[
- menu disable:#changeToPreviousDirectory.
+ menu disable:#changeToPreviousDirectory.
].
currentIndex notNil ifTrue:[
- menu disable:currentIndex
+ menu disable:currentIndex
].
(JavaClassReader notNil and:[JavaClassReader isLoaded]) ifTrue:[
- (Java classPath includes:currentDirectory pathName) ifTrue:[
- menu disable:#addDirToJavaClassPath
- ] ifFalse:[
- menu disable:#removeDirFromJavaClassPath
- ].
- (Java sourcePath includes:currentDirectory pathName) ifTrue:[
- menu disable:#addDirToJavaSourcePath
- ] ifFalse:[
- menu disable:#removeDirFromJavaSourcePath
- ].
+ (Java classPath includes:currentDirectory pathName) ifTrue:[
+ menu disable:#addDirToJavaClassPath
+ ] ifFalse:[
+ menu disable:#removeDirFromJavaClassPath
+ ].
+ (Java sourcePath includes:currentDirectory pathName) ifTrue:[
+ menu disable:#addDirToJavaSourcePath
+ ] ifFalse:[
+ menu disable:#removeDirFromJavaSourcePath
+ ].
].
^menu.
@@ -2843,12 +2843,12 @@
osName := OperatingSystem platformName.
box := FilenameEnterBox
- title:(resources string:'execute %1 command:' with:osName)
- okText:(resources string:'execute')
- action:aBlock.
+ title:(resources string:'execute %1 command:' with:osName)
+ okText:(resources string:'execute')
+ action:aBlock.
fileName notNil ifTrue:[
- self initialCommandFor:fileName into:box.
+ self initialCommandFor:fileName into:box.
].
box directory:currentDirectory.
box showAtPointer.
@@ -2907,11 +2907,11 @@
sel := fileListView selection.
sel notNil ifTrue:[
- self withWaitCursorDo:[
- sel do:[:aSelectionIndex |
- aBlock value:(fileList at:aSelectionIndex )
- ]
- ]
+ self withWaitCursorDo:[
+ sel do:[:aSelectionIndex |
+ aBlock value:(fileList at:aSelectionIndex )
+ ]
+ ]
]
"Modified: / 18.6.1998 / 15:29:06 / cg"
@@ -2947,18 +2947,18 @@
newCollection := aCollection species new.
aCollection do:[:fname |
- |ignore|
-
- ignore := false.
-
- ((fname startsWith:'.') and:[fname ~= '..']) ifTrue:[
- showingHiddenFiles value "showDotFiles" ifFalse:[
- ignore := true
- ]
- ].
- ignore ifFalse:[
- newCollection add:fname
- ]
+ |ignore|
+
+ ignore := false.
+
+ ((fname startsWith:'.') and:[fname ~= '..']) ifTrue:[
+ showingHiddenFiles value "showDotFiles" ifFalse:[
+ ignore := true
+ ]
+ ].
+ ignore ifFalse:[
+ newCollection add:fname
+ ]
].
^ newCollection
@@ -3021,13 +3021,13 @@
kill will make me raise the stopSignal when pressed
"
killButton
- action:[
- stream notNil ifTrue:[
- access critical:[
- myProcess interruptWith:[stopSignal raiseRequest].
- ]
- ]
- ].
+ action:[
+ stream notNil ifTrue:[
+ access critical:[
+ myProcess interruptWith:[stopSignal raiseRequest].
+ ]
+ ]
+ ].
"
pause makes me stop reading the commands output
@@ -3035,11 +3035,11 @@
pauseHolder := false asValue.
pauseToggle model:pauseHolder.
pauseToggle pressAction:[
- stream notNil ifTrue:[
- access critical:[
- myProcess interruptWith:[pauseSignal raiseRequest].
- ]
- ]
+ stream notNil ifTrue:[
+ access critical:[
+ myProcess interruptWith:[pauseSignal raiseRequest].
+ ]
+ ]
].
@@ -3063,177 +3063,177 @@
self label:(myName , ': executing ' , (command copyTo:(20 min:command size)) , ' ...').
[
self withWaitCursorDo:[
- stopSignal catch:[
- pauseSignal handle:[:ex|
- |noPauseSema|
-
- "/
- "/ allow interaction with
- "/ the codeView via the other windowGroup
- "/
- lowerFrameView windowGroup:(killButton windowGroup).
-
- "/
- "/ wait for pause to be turned off
- "/
- noPauseSema := Semaphore new.
- pauseHolder onChangeSend:#signal to:noPauseSema.
- noPauseSema wait.
-
- "/
- "/ no interaction with the codeView ...
- "/
- lowerFrameView windowGroup:(self windowGroup).
- ex proceed.
- ] do:[
- startLine := subView cursorLine.
- startCol := subView cursorCol.
-
- "
- this can be a time consuming operation; therefore lower my priority
- "
- myProcess := Processor activeProcess.
- myPriority := myProcess priority.
- myProcess priority:(Processor userBackgroundPriority).
-
- stream := PipeStream
- readingFrom:command
- errorDisposition:#inline
- inDirectory:currentDirectory.
- stream notNil ifTrue:[
- [
- |codeView lines noPauseSema enc|
-
- enc := fileEncoding.
- enc == #iso8859 ifTrue:[
- enc := nil
- ].
-
- stream buffered:true.
- codeView := subView.
- codeView unselect.
-
- replace ifTrue:[
- codeView list:nil.
- lnr := 1.
- ].
-
- stillReplacing := replace.
-
- [stream readWait. stream atEnd] whileFalse:[
- "
- data available; read up to 100 lines
- and insert as a single junk. This speeds up
- display of long output (less line-scrolling).
- "
- lines := OrderedCollection new:100.
-
- [
- line := stream nextLine.
- line notNil ifTrue:[
- enc notNil ifTrue:[
- line := line decodeFrom:enc
- ].
- lines add:line
- ].
- ] doWhile:[
- stream canReadWithoutBlocking
- and:[stream atEnd not
- and:[lines size < 100]]
- ].
-
- "
- need this critical section; otherwise,
- we could get the signal while waiting for
- an expose event ...
- "
- access critical:[
- lines size > 0 ifTrue:[
- stillReplacing ifTrue:[
- lines do:[:line |
- codeView at:lnr put:line withTabsExpanded.
- codeView cursorToBottom; cursorDown:1.
- lnr := lnr + 1.
- lnr > codeView list size ifTrue:[
- stillReplacing := false
- ]
- ].
- ] ifFalse:[
- codeView insertLines:lines before:codeView cursorLine.
- codeView cursorDown:lines size.
- ]
- ].
- ].
-
- "
- give others running at same prio a chance too
- (especially other FileBrowsers doing the same)
- "
- Processor yield
- ].
- ] valueNowOrOnUnwindDo:[
- stream shutDown "close". stream := nil.
- ].
-
- "/
- "/ the command could have changed the directory
- "/
- self updateCurrentDirectoryIfChanged
- ].
- replace ifTrue:[
- subView modified:false.
- ].
- ]
- ]
+ stopSignal catch:[
+ pauseSignal handle:[:ex|
+ |noPauseSema|
+
+ "/
+ "/ allow interaction with
+ "/ the codeView via the other windowGroup
+ "/
+ lowerFrameView windowGroup:(killButton windowGroup).
+
+ "/
+ "/ wait for pause to be turned off
+ "/
+ noPauseSema := Semaphore new.
+ pauseHolder onChangeSend:#signal to:noPauseSema.
+ noPauseSema wait.
+
+ "/
+ "/ no interaction with the codeView ...
+ "/
+ lowerFrameView windowGroup:(self windowGroup).
+ ex proceed.
+ ] do:[
+ startLine := subView cursorLine.
+ startCol := subView cursorCol.
+
+ "
+ this can be a time consuming operation; therefore lower my priority
+ "
+ myProcess := Processor activeProcess.
+ myPriority := myProcess priority.
+ myProcess priority:(Processor userBackgroundPriority).
+
+ stream := PipeStream
+ readingFrom:command
+ errorDisposition:#inline
+ inDirectory:currentDirectory.
+ stream notNil ifTrue:[
+ [
+ |codeView lines noPauseSema enc|
+
+ enc := fileEncoding.
+ enc == #iso8859 ifTrue:[
+ enc := nil
+ ].
+
+ stream buffered:true.
+ codeView := subView.
+ codeView unselect.
+
+ replace ifTrue:[
+ codeView list:nil.
+ lnr := 1.
+ ].
+
+ stillReplacing := replace.
+
+ [stream readWait. stream atEnd] whileFalse:[
+ "
+ data available; read up to 100 lines
+ and insert as a single junk. This speeds up
+ display of long output (less line-scrolling).
+ "
+ lines := OrderedCollection new:100.
+
+ [
+ line := stream nextLine.
+ line notNil ifTrue:[
+ enc notNil ifTrue:[
+ line := line decodeFrom:enc
+ ].
+ lines add:line
+ ].
+ ] doWhile:[
+ stream canReadWithoutBlocking
+ and:[stream atEnd not
+ and:[lines size < 100]]
+ ].
+
+ "
+ need this critical section; otherwise,
+ we could get the signal while waiting for
+ an expose event ...
+ "
+ access critical:[
+ lines size > 0 ifTrue:[
+ stillReplacing ifTrue:[
+ lines do:[:line |
+ codeView at:lnr put:line withTabsExpanded.
+ codeView cursorToBottom; cursorDown:1.
+ lnr := lnr + 1.
+ lnr > codeView list size ifTrue:[
+ stillReplacing := false
+ ]
+ ].
+ ] ifFalse:[
+ codeView insertLines:lines before:codeView cursorLine.
+ codeView cursorDown:lines size.
+ ]
+ ].
+ ].
+
+ "
+ give others running at same prio a chance too
+ (especially other FileBrowsers doing the same)
+ "
+ Processor yield
+ ].
+ ] valueNowOrOnUnwindDo:[
+ stream shutDown "close". stream := nil.
+ ].
+
+ "/
+ "/ the command could have changed the directory
+ "/
+ self updateCurrentDirectoryIfChanged
+ ].
+ replace ifTrue:[
+ subView modified:false.
+ ].
+ ]
+ ]
]
] valueNowOrOnUnwindDo:[
- |wg|
-
- self label:myName; iconLabel:myName.
- myProcess notNil ifTrue:[myProcess priority:myPriority].
-
- "
- hide the button, and make sure it will stay
- hidden when we are realized again
- "
- killButton beInvisible.
- pauseToggle beInvisible.
-
- commandView beVisible.
-
- "
- remove the killButton from its group
- (otherwise, it will be destroyed when we shut down the group)
- "
- wg := killButton windowGroup.
- killButton windowGroup:nil.
- pauseToggle windowGroup:nil.
-
- "
- shut down the kill buttons windowgroup
- "
- wg notNil ifTrue:[
- wg process terminate.
- ].
- "
- clear its action (actually not needed, but
- releases reference to thisContext earlier)
- "
- killButton action:nil.
- pauseToggle pressAction:nil.
- "/
- "/ allow interaction with the codeView
- "/ (bring it back into my group)
- "/
- lowerFrameView windowGroup:(self windowGroup).
+ |wg|
+
+ self label:myName; iconLabel:myName.
+ myProcess notNil ifTrue:[myProcess priority:myPriority].
+
+ "
+ hide the button, and make sure it will stay
+ hidden when we are realized again
+ "
+ killButton beInvisible.
+ pauseToggle beInvisible.
+
+ commandView beVisible.
+
+ "
+ remove the killButton from its group
+ (otherwise, it will be destroyed when we shut down the group)
+ "
+ wg := killButton windowGroup.
+ killButton windowGroup:nil.
+ pauseToggle windowGroup:nil.
+
+ "
+ shut down the kill buttons windowgroup
+ "
+ wg notNil ifTrue:[
+ wg process terminate.
+ ].
+ "
+ clear its action (actually not needed, but
+ releases reference to thisContext earlier)
+ "
+ killButton action:nil.
+ pauseToggle pressAction:nil.
+ "/
+ "/ allow interaction with the codeView
+ "/ (bring it back into my group)
+ "/
+ lowerFrameView windowGroup:(self windowGroup).
].
currentFileName isNil ifTrue:[
- subView modified:false.
+ subView modified:false.
].
subView size > 10000 ifTrue:[
- self warn:'text quite large now - please cut off some lines'
+ self warn:'text quite large now - please cut off some lines'
]
"Modified: / 21.9.1995 / 11:18:46 / claus"
@@ -3275,116 +3275,116 @@
path := currentDirectory filenameFor:fileName.
(path type == #regular) ifTrue:[
- path isExecutableProgram ifTrue:[
- aBox initialText:(fileName , ' <arguments>').
- ^ self
- ].
-
- select := true.
-
- "some heuristics - my personal preferences ...
- (actually this should come from a configfile)"
-
- (fileName endsWith:'akefile') ifTrue:[
- aBox initialText:'make target' selectFrom:6 to:11.
- ^ self
- ].
-
- suffix := path suffix.
- (suffix = 'C') ifTrue:[
- cmd := 'g++ -c %1'.
- select := 6.
- ] ifFalse:[
- suffix := suffix asLowercase.
- (suffix = 'taz') ifTrue:[
- aBox initialText:'zcat %1 | tar tvf -'.
- select := false.
- ].
- (suffix = 'tar') ifTrue:[
- cmd := 'tar tvf %1'.
- select := 7.
- ].
- (suffix = 'zoo') ifTrue:[
- cmd := 'zoo -list %1'.
- select := 9.
- ].
- (suffix = 'zip') ifTrue:[
- cmd := 'unzip -l %1'.
- select := 8.
- ].
- (suffix = 'jar') ifTrue:[
- cmd := 'unzip -l %1'.
- select := 8.
- ].
- (suffix = 'z') ifTrue:[
- (fileName endsWith:'tar.z') ifTrue:[
- cmd := 'zcat %1 | tar tvf -'.
- select := false.
- ] ifFalse:[
- cmd := 'uncompress %1'
- ].
- ].
- (suffix = 'gz') ifTrue:[
- (fileName endsWith:'tar.gz') ifTrue:[
- cmd := ('gunzip < %1 | tar tvf -' ).
- select := false.
- ] ifFalse:[
- cmd := 'gunzip %1'.
- ].
- ].
- (suffix = 'tgz') ifTrue:[
- cmd := ('gunzip < %1 | tar tvf -' ).
- select := false.
- ].
- (suffix = 'html') ifTrue:[
- cmd := 'netscape %1'
- ].
- (suffix = 'htm') ifTrue:[
- cmd := 'netscape %1'
- ].
- (suffix = 'uue') ifTrue:[
- cmd := 'uudecode %1'
- ].
- (suffix = 'c') ifTrue:[
- cmd := 'cc -c %1'.
- select := 5.
- ].
- (suffix = 'cc') ifTrue:[
- cmd := 'g++ -c %1'.
- select := 6.
- ].
- (suffix = 'xbm') ifTrue:[
- cmd := 'bitmap %1'
- ].
- (suffix = 'ps') ifTrue:[
- cmd := 'ghostview %1'
- ].
- ((suffix = '1') or:[suffix = 'man']) ifTrue:[
- cmd := 'nroff -man %1'.
- select := 10.
- ].
- ].
-
- cmd isNil ifTrue:[
- DefaultCommandPerSuffix isNil ifTrue:[
- cmd := '<cmd>'
- ] ifFalse:[
- cmd := DefaultCommandPerSuffix
- at:suffix
- ifAbsent:'<cmd>'.
- ].
- cmd := cmd , ' %1'.
- ].
-
- cmd := cmd bindWith:fileName.
- select == false ifTrue:[
- aBox initialText:cmd
- ] ifFalse:[
- select isInteger ifFalse:[
- select := (cmd indexOf:Character space ifAbsent:[cmd size + 1]) - 1.
- ].
- aBox initialText:cmd selectFrom:1 to:select
- ]
+ path isExecutableProgram ifTrue:[
+ aBox initialText:(fileName , ' <arguments>').
+ ^ self
+ ].
+
+ select := true.
+
+ "some heuristics - my personal preferences ...
+ (actually this should come from a configfile)"
+
+ (fileName endsWith:'akefile') ifTrue:[
+ aBox initialText:'make target' selectFrom:6 to:11.
+ ^ self
+ ].
+
+ suffix := path suffix.
+ (suffix = 'C') ifTrue:[
+ cmd := 'g++ -c %1'.
+ select := 6.
+ ] ifFalse:[
+ suffix := suffix asLowercase.
+ (suffix = 'taz') ifTrue:[
+ aBox initialText:'zcat %1 | tar tvf -'.
+ select := false.
+ ].
+ (suffix = 'tar') ifTrue:[
+ cmd := 'tar tvf %1'.
+ select := 7.
+ ].
+ (suffix = 'zoo') ifTrue:[
+ cmd := 'zoo -list %1'.
+ select := 9.
+ ].
+ (suffix = 'zip') ifTrue:[
+ cmd := 'unzip -l %1'.
+ select := 8.
+ ].
+ (suffix = 'jar') ifTrue:[
+ cmd := 'unzip -l %1'.
+ select := 8.
+ ].
+ (suffix = 'z') ifTrue:[
+ (fileName endsWith:'tar.z') ifTrue:[
+ cmd := 'zcat %1 | tar tvf -'.
+ select := false.
+ ] ifFalse:[
+ cmd := 'uncompress %1'
+ ].
+ ].
+ (suffix = 'gz') ifTrue:[
+ (fileName endsWith:'tar.gz') ifTrue:[
+ cmd := ('gunzip < %1 | tar tvf -' ).
+ select := false.
+ ] ifFalse:[
+ cmd := 'gunzip %1'.
+ ].
+ ].
+ (suffix = 'tgz') ifTrue:[
+ cmd := ('gunzip < %1 | tar tvf -' ).
+ select := false.
+ ].
+ (suffix = 'html') ifTrue:[
+ cmd := 'netscape %1'
+ ].
+ (suffix = 'htm') ifTrue:[
+ cmd := 'netscape %1'
+ ].
+ (suffix = 'uue') ifTrue:[
+ cmd := 'uudecode %1'
+ ].
+ (suffix = 'c') ifTrue:[
+ cmd := 'cc -c %1'.
+ select := 5.
+ ].
+ (suffix = 'cc') ifTrue:[
+ cmd := 'g++ -c %1'.
+ select := 6.
+ ].
+ (suffix = 'xbm') ifTrue:[
+ cmd := 'bitmap %1'
+ ].
+ (suffix = 'ps') ifTrue:[
+ cmd := 'ghostview %1'
+ ].
+ ((suffix = '1') or:[suffix = 'man']) ifTrue:[
+ cmd := 'nroff -man %1'.
+ select := 10.
+ ].
+ ].
+
+ cmd isNil ifTrue:[
+ DefaultCommandPerSuffix isNil ifTrue:[
+ cmd := '<cmd>'
+ ] ifFalse:[
+ cmd := DefaultCommandPerSuffix
+ at:suffix
+ ifAbsent:'<cmd>'.
+ ].
+ cmd := cmd , ' %1'.
+ ].
+
+ cmd := cmd bindWith:fileName.
+ select == false ifTrue:[
+ aBox initialText:cmd
+ ] ifFalse:[
+ select isInteger ifFalse:[
+ select := (cmd indexOf:Character space ifAbsent:[cmd size + 1]) - 1.
+ ].
+ aBox initialText:cmd selectFrom:1 to:select
+ ]
]
"Modified: / 24.9.1997 / 16:34:52 / stefan"
@@ -3465,79 +3465,79 @@
|oldSelection nOld newState msg newLabel t|
shown ifTrue:[
- currentDirectory notNil ifTrue:[
- lockUpdate ifTrue:[
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
- ^ self
- ].
-
- subView modified ifTrue:[
- newState := ' (modified)'
- ].
-
- (currentDirectory isReadable) ifTrue:[
- Processor removeTimedBlock:checkBlock.
-
- t := currentDirectory modificationTime.
- (t notNil and:[t > timeOfLastCheck]) ifTrue:[
- nOld := fileListView numberOfSelections.
- oldSelection := fileListView selectionValue.
- self updateCurrentDirectory.
- nOld ~~ 0 ifTrue:[
- nOld > 1 ifTrue:[
- oldSelection do:[:element |
- fileListView addElementToSelection:element
- ]
- ] ifFalse:[
- fileListView selectElementWithoutScroll:oldSelection
- ]
- ].
- ] ifFalse:[
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta
- ].
-
- currentFileName notNil ifTrue:[
- |f|
- f := currentDirectory construct:currentFileName.
- f exists ifFalse:[
- newState := ' (removed)'.
- ] ifTrue:[
- f modificationTime > timeOfFileRead ifTrue:[
- newState := ' (outdated)'.
- subView modified ifTrue:[
- newState := ' (modified & outdated)'
- ]
- ].
- ].
- ].
- ] ifFalse:[
- "
- if the directory has been deleted, or is not readable ...
- "
- (currentDirectory exists) ifFalse:[
- msg := 'FileBrowser:\\directory %1 is gone ?!!?'
- ] ifTrue:[
- msg := 'FileBrowser:\\directory %1 is no longer readable ?!!?'
- ].
- self warn:(resources string:msg with:currentDirectory pathName) withCRs.
-
- fileListView contents:nil.
- newLabel := myName , ': directory is gone !!'.
- "/ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
- ].
-
- newState notNil ifTrue:[
- newLabel := myName.
- currentFileName notNil ifTrue:[
- newLabel := newLabel , ': ' , currentFileName
- ].
- newLabel := newLabel , newState.
- ].
- newLabel notNil ifTrue:[
- self label:newLabel.
- ]
- ]
+ currentDirectory notNil ifTrue:[
+ lockUpdate ifTrue:[
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ ^ self
+ ].
+
+ subView modified ifTrue:[
+ newState := ' (modified)'
+ ].
+
+ (currentDirectory isReadable) ifTrue:[
+ Processor removeTimedBlock:checkBlock.
+
+ t := currentDirectory modificationTime.
+ (t notNil and:[t > timeOfLastCheck]) ifTrue:[
+ nOld := fileListView numberOfSelections.
+ oldSelection := fileListView selectionValue.
+ self updateCurrentDirectory.
+ nOld ~~ 0 ifTrue:[
+ nOld > 1 ifTrue:[
+ oldSelection do:[:element |
+ fileListView addElementToSelection:element
+ ]
+ ] ifFalse:[
+ fileListView selectElementWithoutScroll:oldSelection
+ ]
+ ].
+ ] ifFalse:[
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ ].
+
+ currentFileName notNil ifTrue:[
+ |f|
+ f := currentDirectory construct:currentFileName.
+ f exists ifFalse:[
+ newState := ' (removed)'.
+ ] ifTrue:[
+ f modificationTime > timeOfFileRead ifTrue:[
+ newState := ' (outdated)'.
+ subView modified ifTrue:[
+ newState := ' (modified & outdated)'
+ ]
+ ].
+ ].
+ ].
+ ] ifFalse:[
+ "
+ if the directory has been deleted, or is not readable ...
+ "
+ (currentDirectory exists) ifFalse:[
+ msg := 'FileBrowser:\\directory %1 is gone ?!!?'
+ ] ifTrue:[
+ msg := 'FileBrowser:\\directory %1 is no longer readable ?!!?'
+ ].
+ self warn:(resources string:msg with:currentDirectory pathName) withCRs.
+
+ fileListView contents:nil.
+ newLabel := myName , ': directory is gone !!'.
+ "/ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ ].
+
+ newState notNil ifTrue:[
+ newLabel := myName.
+ currentFileName notNil ifTrue:[
+ newLabel := newLabel , ': ' , currentFileName
+ ].
+ newLabel := newLabel , newState.
+ ].
+ newLabel notNil ifTrue:[
+ self label:newLabel.
+ ]
+ ]
]
"Modified: / 28.4.1997 / 22:31:02 / dq"
@@ -3687,7 +3687,7 @@
((t := currentDirectory modificationTime) isNil
or:[t > timeOfLastCheck]) ifTrue:[
- self updateCurrentDirectory
+ self updateCurrentDirectory
]
"Modified: / 16.9.1997 / 15:35:52 / stefan"
@@ -3962,63 +3962,63 @@
lockUpdate := true.
[
- self selectedFilesDo:[:fileName |
- |contents|
-
- f := currentDirectory construct:fileName.
- OperatingSystem accessDeniedErrorSignal handle:[:ex|
- "was not able to remove it"
- msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
- self showAlert:msg with:(OperatingSystem lastErrorString)
- ] do:[
- (f isSymbolicLink not and:[f isDirectory]) ifTrue:[
- contents := f directoryContents.
- contents isEmpty ifTrue:[
- f remove
- ] ifFalse:[
- (self
- ask:(resources string:'directory ''%1'' is not empty\remove anyway ?' with:fileName)
- yesButton:'remove')
- ifFalse:[
- ^ self
- ].
- f recursiveRemove
- ].
- ] ifFalse:[
- f remove.
- ].
+ self selectedFilesDo:[:fileName |
+ |contents|
+
+ f := currentDirectory construct:fileName.
+ OperatingSystem accessDeniedErrorSignal handle:[:ex|
+ "was not able to remove it"
+ msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
+ self showAlert:msg with:(OperatingSystem lastErrorString)
+ ] do:[
+ (f isSymbolicLink not and:[f isDirectory]) ifTrue:[
+ contents := f directoryContents.
+ contents isEmpty ifTrue:[
+ f remove
+ ] ifFalse:[
+ (self
+ ask:(resources string:'directory ''%1'' is not empty\remove anyway ?' with:fileName)
+ yesButton:'remove')
+ ifFalse:[
+ ^ self
+ ].
+ f recursiveRemove
+ ].
+ ] ifFalse:[
+ f remove.
+ ].
"
- self show:nil
+ self show:nil
"
- idx := fileList indexOf:fileName.
- idx ~~ 0 ifTrue:[
- toRemove add:idx.
- ]
- ].
- ].
+ idx := fileList indexOf:fileName.
+ idx ~~ 0 ifTrue:[
+ toRemove add:idx.
+ ]
+ ].
+ ].
] valueNowOrOnUnwindDo:[
- lockUpdate := false.
- fileListView setSelection:nil.
-
- "/
- "/ remove reverse - otherwise indices are wrong
- "/
- toRemove sort.
- toRemove reverseDo:[:idx |
- fileList removeIndex:idx.
- fileListView removeIndex:idx.
- ].
-
- updateRunning ifTrue:[
- self updateCurrentDirectory
- ] ifFalse:[
- "
- install a new check after some time
- "
- needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
- ]
+ lockUpdate := false.
+ fileListView setSelection:nil.
+
+ "/
+ "/ remove reverse - otherwise indices are wrong
+ "/
+ toRemove sort.
+ toRemove reverseDo:[:idx |
+ fileList removeIndex:idx.
+ fileListView removeIndex:idx.
+ ].
+
+ updateRunning ifTrue:[
+ self updateCurrentDirectory
+ ] ifFalse:[
+ "
+ install a new check after some time
+ "
+ needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ ]
]
"Modified: / 20.11.1997 / 17:39:14 / stefan"
@@ -4612,74 +4612,74 @@
f := currentDirectory construct:aFilenameString.
f isDirectory ifTrue:[
- f isSymbolicLink ifTrue:[
- key := #directoryLink
- ] ifFalse:[
- key := #directory.
- (f isReadable not or:[f isExecutable not]) ifTrue:[
- key := #directoryLocked
- ].
- ]
+ f isSymbolicLink ifTrue:[
+ key := #directoryLink
+ ] ifFalse:[
+ key := #directory.
+ (f isReadable not or:[f isExecutable not]) ifTrue:[
+ key := #directoryLocked
+ ].
+ ]
] ifFalse:[
- f isSymbolicLink ifTrue:[
- f isReadable not ifTrue:[
- key := #fileLocked
- ] ifFalse:[
- key := #fileLink
- ]
- ] ifFalse:[
- key := key2 := #file.
- f isExecutable ifTrue:[
- key := key2 := #executableFile
- ].
- (f isReadable not) ifTrue:[
- key := #fileLocked
- ] ifFalse:[
- suff := f suffix.
- mimeType := MIMETypes mimeTypeForSuffix:suff.
- mimeType notNil ifTrue:[
- (mimeType startsWith:'image/') ifTrue:[
- key := #imageFile
- ] ifFalse:[
- (mimeType startsWith:'text/') ifTrue:[
- key := #textFile
- ]
- ]
- ].
- ].
- ].
+ f isSymbolicLink ifTrue:[
+ f isReadable not ifTrue:[
+ key := #fileLocked
+ ] ifFalse:[
+ key := #fileLink
+ ]
+ ] ifFalse:[
+ key := key2 := #file.
+ f isExecutableProgram ifTrue:[
+ key := key2 := #executableFile
+ ].
+ (f isReadable not) ifTrue:[
+ key := #fileLocked
+ ] ifFalse:[
+ suff := f suffix.
+ mimeType := MIMETypes mimeTypeForSuffix:suff.
+ mimeType notNil ifTrue:[
+ (mimeType startsWith:'image/') ifTrue:[
+ key := #imageFile
+ ] ifFalse:[
+ (mimeType startsWith:'text/') ifTrue:[
+ key := #textFile
+ ]
+ ]
+ ].
+ ].
+ ].
].
"/ local (device) icons
icons notNil ifTrue:[
- mimeType notNil ifTrue:[
- icn := icons at:mimeType ifAbsent:nil.
- icn notNil ifTrue:[^ icn].
- ].
- icn := icons at:key ifAbsent:nil.
- icn notNil ifTrue:[^ icn].
+ mimeType notNil ifTrue:[
+ icn := icons at:mimeType ifAbsent:nil.
+ icn notNil ifTrue:[^ icn].
+ ].
+ icn := icons at:key ifAbsent:nil.
+ icn notNil ifTrue:[^ icn].
].
"/ global icons
Icons notNil ifTrue:[
- mimeType notNil ifTrue:[
- icn := Icons at:mimeType ifAbsent:nil.
- ].
- icn notNil ifTrue:[
- key := mimeType
- ] ifFalse:[
- icn := Icons at:key ifAbsent:nil.
- ].
+ mimeType notNil ifTrue:[
+ icn := Icons at:mimeType ifAbsent:nil.
+ ].
+ icn notNil ifTrue:[
+ key := mimeType
+ ] ifFalse:[
+ icn := Icons at:key ifAbsent:nil.
+ ].
].
icn isNil ifTrue:[
- ( (key := key2) isNil
- or:[(icn := icons at:key ifAbsent:nil) notNil
- or:[(icn := Icons at:key ifAbsent:nil) isNil]]
- ) ifTrue:[
- ^ icn
- ]
+ ( (key := key2) isNil
+ or:[(icn := icons at:key ifAbsent:nil) notNil
+ or:[(icn := Icons at:key ifAbsent:nil) isNil]]
+ ) ifTrue:[
+ ^ icn
+ ]
].
"/ remember device icon
@@ -4720,13 +4720,13 @@
"
self withReadCursorDo:[
- |files matchPattern list passDone f|
-
- self stopUpdateProcess.
-
- timeOfLastCheck := AbsoluteTime now.
-
- files := currentDirectory asFilename fullDirectoryContents.
+ |files matchPattern list passDone f|
+
+ self stopUpdateProcess.
+
+ timeOfLastCheck := AbsoluteTime now.
+
+ files := currentDirectory asFilename fullDirectoryContents.
"/ (files includes:(Filename parentDirectoryName)) ifTrue:[
"/ upButton enable.
@@ -4734,405 +4734,405 @@
"/ upButton disable.
"/ ].
- "/ show files which are either directories
- "/ or match the current pattern
-
- matchPattern := filterField contents.
- (matchPattern notNil and:[
- matchPattern isEmpty not and:[
- matchPattern ~= '*']]) ifTrue:[
- files := files select:[:aName |
- ((currentDirectory construct:aName) isDirectory)
- or:[matchPattern compoundMatch:aName]
- ].
- ].
-
- files size == 0 ifTrue:[
- self information:('directory ', currentDirectory pathName, ' vanished').
- ^ self
- ].
- (sortByWhat value == #name) ifTrue:[
- sortCaseless value == true ifTrue:[
- files sort:[:a :b | a asLowercase < b asLowercase]
- ] ifFalse:[
- files sort.
- ]
- ] ifFalse:[
- (sortByWhat value == #time) ifTrue:[
- files sort:[:a :b | |f1 f2 t1 t2|
- f1 := (currentDirectory construct:a).
- f2 := (currentDirectory construct:b).
- t1 := f1 isSymbolicLink
- ifFalse:[f1 modificationTime]
- ifTrue:[f1 linkInfo modified].
- t2 := f2 isSymbolicLink
- ifFalse:[f2 modificationTime]
- ifTrue:[f2 linkInfo modified].
- t1 := t1 ? (AbsoluteTime now).
- t2 := t2 ? (AbsoluteTime now).
- t1 > t2
- ]
- ] ifFalse:[
- (sortByWhat value == #type) ifTrue:[
- files sort:[:a :b | |f1 f2 t1 t2 suff1 suff2|
- f1 := (currentDirectory construct:a).
- f2 := (currentDirectory construct:b).
- t1 := f1 type ? #xbadLink.
- t2 := f2 type ? #xbadLink.
- t1 = t2 ifTrue:[
- suff1 := f1 suffix.
- suff2 := f2 suffix.
- suff1 = suff2 ifTrue:[
- sortCaseless value == true ifTrue:[
- a asLowercase < b asLowercase
- ] ifFalse:[
- a < b
- ]
- ] ifFalse:[
- suff1 asLowercase < suff2 asLowercase
- ]
- ] ifFalse:[
- t1 < t2
- ]
- ]
- ]
- ]
- ].
-
- files := self withoutHiddenFiles:files.
- fileList := files copy.
-
- tabSpec isNil ifTrue:[
- showingDetails value "showLongList" ifTrue:[
- self defineTabulatorsForLongList
- ] ifFalse:[
- self defineTabulatorsForShortList
- ].
- ].
-
- "/
- "/ first show all the names - this can be done fast ...
- "/
- list := files collect:[:fileName |
- |entry|
-
- entry := MultiColListEntry new.
- entry tabulatorSpecification:tabSpec.
- entry colAt:1 put:nil.
- entry colAt:2 put:fileName.
- ].
-
- fileListView setList:list expandTabs:false.
- passDone := Array new:list size withAll:0.
-
- "
- this is a time consuming operation (especially, if reading an
- NFS-mounted directory); therefore, start a low prio process,
- which fills in the remaining fields in the fileList ...
- "
-
- listUpdateProcess := [
- |prevUid prevGid fileNameString nameString groupString
- modeString info line len
- anyImages lineIndex aFileName
- entry typ f p typeString done endIndex
- state stopAtEnd nextState img prevFirstLine prevLastLine
- numVisible dirSuffix|
-
- dirSuffix := Filename directorySuffix.
- dirSuffix size > 0 ifTrue:[
- dirSuffix := '.' , dirSuffix asLowercase.
- ].
-
- "/
- "/ then walk over the files, adding more info
- "/ (since we have to stat each file, this may take a while longer)
- "/ Visible items are always filled first.
-
- "/
- "/ the state machine
- "/
- nextState := IdentityDictionary new.
- showingDetails value "showLongList" ifTrue:[
- nextState add:(#visibleIcons -> #visibleAttributes).
- nextState add:(#visibleAttributes -> #visibleTypes).
- nextState add:(#visibleTypes -> #visibleImages).
- nextState add:(#visibleImages -> #nextPageIcons).
-
- nextState add:(#nextPageIcons -> #nextPageAttributes).
- nextState add:(#nextPageAttributes -> #nextPageTypes).
- nextState add:(#nextPageTypes -> #nextPageImages).
- nextState add:(#nextPageImages -> #previousPageIcons).
-
- nextState add:(#previousPageIcons -> #previousPageAttributes).
- nextState add:(#previousPageAttributes -> #previousPageTypes).
- nextState add:(#previousPageTypes -> #previousPageImages).
- nextState add:(#previousPageImages -> #remainingIcons).
-
- nextState add:(#remainingIcons -> #remainingAttributes).
- nextState add:(#remainingAttributes -> #remainingTypes).
- nextState add:(#remainingTypes -> #remainingImages).
- nextState add:(#remainingImages -> nil).
- ] ifFalse:[
- nextState add:(#visibleIcons -> #nextPageIcons).
- nextState add:(#nextPageIcons -> #previousPageIcons).
- nextState add:(#previousPageIcons -> #remainingIcons).
- nextState add:(#remainingIcons -> nil).
- ].
-
- anyImages := false.
-
- lineIndex := prevFirstLine := fileListView firstLineShown.
- endIndex := prevLastLine := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- state := #visibleIcons.
-
- done := false.
- [done] whileFalse:[
- "/
- "/ if multiple FileBrowsers are reading, let others
- "/ make some progress too
- "/
- Processor yield.
-
- "/
- "/ could be destroyed in the meanwhile ...
- "/
- realized ifFalse:[
- listUpdateProcess := nil.
- Processor activeProcess terminate
- ].
-
- ((prevFirstLine ~~ fileListView firstLineShown)
- or:[prevLastLine ~~ fileListView lastLineShown]) ifTrue:[
- "/ start all over again
- lineIndex := prevFirstLine := fileListView firstLineShown.
- endIndex := prevLastLine := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- state := #visibleIcons.
- ].
-
- (lineIndex between:1 and:(files size)) ifTrue:[
-
- "/
- "/ expand the next entry ...
- "/
- aFileName := files at:lineIndex.
- entry := fileListView at:lineIndex.
- f := currentDirectory construct:aFileName.
-
- (state endsWith:'Icons') ifTrue:[
- "/
- "/ pass 1 - icons
- "/
- (passDone at:lineIndex) < 1 ifTrue:[
- (f isDirectory
- and:[(aFileName ~= '..') and:[aFileName ~= '.']]
- ) ifTrue:[
-
- "/ the following suffix cutOff is not really required,
- "/ but makes the list look better on VMS ...
- fileNameString := aFileName.
- dirSuffix notNil ifTrue:[
- (aFileName asLowercase endsWith:dirSuffix) ifTrue:[
- fileNameString := aFileName copyWithoutLast:(dirSuffix size).
- ]
- ].
- fileNameString := fileNameString , ' ...'
- ] ifFalse:[
- fileNameString := aFileName.
- OperatingSystem isVMSlike ifTrue:[
- (aFileName endsWith:'.') ifTrue:[
- aFileName ~= '..' ifTrue:[
- fileNameString := aFileName copyWithoutLast:1
- ]
- ]
- ]
- ].
-
- showingDetails value "showLongList" ifTrue:[
- len := fileNameString size.
- (len > 20) ifTrue:[
- fileNameString := (fileNameString contractTo:20)
- ].
- ].
-
- entry colAt:1 put:(self iconForFile:aFileName).
- entry colAt:2 put:fileNameString.
-
- "/fileListView at:lineIndex put:entry.
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
-
- anyImages ifFalse:[
- (Image isImageFileSuffix:(aFileName asFilename suffix))
- ifTrue:[
- anyImages := true
- ]
- ].
- passDone at:lineIndex put:1
- ]
- ].
-
- (state endsWith:'Attributes') ifTrue:[
- "/
- "/ pass 2 - everything except fileType (which takes very long)
- "/
- (passDone at:lineIndex) < 2 ifTrue:[
- info := f info.
- info isNil ifTrue:[
- "not accessable - usually a symlink,
- to a nonexisting/nonreadable file
- "
- f isSymbolicLink ifTrue:[
- p := f linkInfo path.
- typeString := 'broken symbolic link to ' , p
- ] ifFalse:[
- typeString := 'unknown'
- ].
- ] ifFalse:[
- typ := (info type).
-
- modeString := self getModeString:(info at:#mode)
- with:#( '' $r $w $x
- ' ' $r $w $x
- ' ' $r $w $x ).
- entry colAt:3 put:modeString.
-
- ((info uid) ~~ prevUid) ifTrue:[
- prevUid := (info uid).
- nameString := OperatingSystem getUserNameFromID:prevUid.
- nameString := nameString contractTo:10.
- nameString := nameString , (String new:(10 - nameString size))
- ].
- nameString isNil ifTrue:[nameString := '???'].
- entry colAt:4 put:nameString withoutSpaces.
-
- ((info gid) ~~ prevGid) ifTrue:[
- prevGid := (info gid).
- groupString := OperatingSystem getGroupNameFromID:prevGid.
- groupString := groupString contractTo:10.
- groupString := groupString , (String new:(10 - groupString size))
- ].
- groupString isNil ifTrue:[groupString := '???'].
- entry colAt:5 put:groupString withoutSpaces.
-
- (typ == #regular) ifTrue:[
- entry colAt:6 put:(self sizePrintString:(info size)).
- ].
-
- f isSymbolicLink ifTrue:[
- p := f linkInfo path.
- typeString := 'symbolic link to ' , p
- ] ifFalse:[
- typeString := typ asString
- ].
- ].
- entry colAt:7 put:typeString.
-
- "/ fileListView at:lineIndex put:entry.
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- passDone at:lineIndex put:2.
- ].
- ].
-
- (state endsWith:'Types') ifTrue:[
- "/
- "/ pass 3: add fileType
- "/
- (passDone at:lineIndex) < 3 ifTrue:[
- info := f info.
- info notNil ifTrue:[
- f isSymbolicLink ifFalse:[
- (Image isImageFileSuffix:(f suffix)) ifFalse:[
- typeString := f fileType.
-
- entry colAt:7 put:typeString.
- "/ fileListView at:lineIndex put:entry
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- ].
- ].
- ].
-
- passDone at:lineIndex put:3
- ].
- ].
-
- (state endsWith:'Images') ifTrue:[
- "/
- "/ pass 4: read images
- "/
- (passDone at:lineIndex) < 4 ifTrue:[
- (Image isImageFileSuffix:(f suffix)) ifTrue:[
- f isDirectory ifFalse:[
- img := Image fromFile:(f pathName).
- img notNil ifTrue:[
- img := img magnifiedTo:16@16.
- img := img on:self device.
- entry colAt:7 put:img.
- "/ fileListView at:lineIndex put:entry
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- ]
- ]
- ].
- passDone at:lineIndex put:4
- ].
- ].
- ].
-
- "/
- "/ advance to the next line
- "/
- lineIndex := lineIndex + 1.
- lineIndex > endIndex ifTrue:[
- "/ finished this round ...
- "/ see what we are going for ...
- numVisible := (fileListView lastLineShown - fileListView firstLineShown + 1).
-
- state := nextState at:state ifAbsent:nil.
-
- state isNil ifTrue:[
- done := true
- ] ifFalse:[
- (state startsWith:'visible') ifTrue:[
- lineIndex := fileListView firstLineShown.
- endIndex := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- ] ifFalse:[
- (state startsWith:'nextPage') ifTrue:[
- lineIndex := fileListView lastLineShown + 1.
- endIndex := lineIndex + numVisible.
- endIndex := endIndex min:(files size).
- lineIndex := lineIndex min:(files size).
- ] ifFalse:[
- (state startsWith:'previousPage') ifTrue:[
- endIndex := fileListView firstLineShown - 1.
- lineIndex := endIndex - numVisible.
- lineIndex := lineIndex max:1.
- endIndex := endIndex min:(files size).
- endIndex := endIndex max:1.
- ] ifFalse:[
- "/ remaining
- lineIndex := 1.
- endIndex := files size.
- ]
- ]
- ]
- ]
- ]
- ].
-
- listUpdateProcess := nil.
-
- ] forkAt:(Processor activePriority - 1).
-
- "
- install a new check after some time
- "
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ "/ show files which are either directories
+ "/ or match the current pattern
+
+ matchPattern := filterField contents.
+ (matchPattern notNil and:[
+ matchPattern isEmpty not and:[
+ matchPattern ~= '*']]) ifTrue:[
+ files := files select:[:aName |
+ ((currentDirectory construct:aName) isDirectory)
+ or:[matchPattern compoundMatch:aName]
+ ].
+ ].
+
+ files size == 0 ifTrue:[
+ self information:('directory ', currentDirectory pathName, ' vanished').
+ ^ self
+ ].
+ (sortByWhat value == #name) ifTrue:[
+ sortCaseless value == true ifTrue:[
+ files sort:[:a :b | a asLowercase < b asLowercase]
+ ] ifFalse:[
+ files sort.
+ ]
+ ] ifFalse:[
+ (sortByWhat value == #time) ifTrue:[
+ files sort:[:a :b | |f1 f2 t1 t2|
+ f1 := (currentDirectory construct:a).
+ f2 := (currentDirectory construct:b).
+ t1 := f1 isSymbolicLink
+ ifFalse:[f1 modificationTime]
+ ifTrue:[f1 linkInfo modified].
+ t2 := f2 isSymbolicLink
+ ifFalse:[f2 modificationTime]
+ ifTrue:[f2 linkInfo modified].
+ t1 := t1 ? (AbsoluteTime now).
+ t2 := t2 ? (AbsoluteTime now).
+ t1 > t2
+ ]
+ ] ifFalse:[
+ (sortByWhat value == #type) ifTrue:[
+ files sort:[:a :b | |f1 f2 t1 t2 suff1 suff2|
+ f1 := (currentDirectory construct:a).
+ f2 := (currentDirectory construct:b).
+ t1 := f1 type ? #xbadLink.
+ t2 := f2 type ? #xbadLink.
+ t1 = t2 ifTrue:[
+ suff1 := f1 suffix.
+ suff2 := f2 suffix.
+ suff1 = suff2 ifTrue:[
+ sortCaseless value == true ifTrue:[
+ a asLowercase < b asLowercase
+ ] ifFalse:[
+ a < b
+ ]
+ ] ifFalse:[
+ suff1 asLowercase < suff2 asLowercase
+ ]
+ ] ifFalse:[
+ t1 < t2
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ files := self withoutHiddenFiles:files.
+ fileList := files copy.
+
+ tabSpec isNil ifTrue:[
+ showingDetails value "showLongList" ifTrue:[
+ self defineTabulatorsForLongList
+ ] ifFalse:[
+ self defineTabulatorsForShortList
+ ].
+ ].
+
+ "/
+ "/ first show all the names - this can be done fast ...
+ "/
+ list := files collect:[:fileName |
+ |entry|
+
+ entry := MultiColListEntry new.
+ entry tabulatorSpecification:tabSpec.
+ entry colAt:1 put:nil.
+ entry colAt:2 put:fileName.
+ ].
+
+ fileListView setList:list expandTabs:false.
+ passDone := Array new:list size withAll:0.
+
+ "
+ this is a time consuming operation (especially, if reading an
+ NFS-mounted directory); therefore, start a low prio process,
+ which fills in the remaining fields in the fileList ...
+ "
+
+ listUpdateProcess := [
+ |prevUid prevGid fileNameString nameString groupString
+ modeString info line len
+ anyImages lineIndex aFileName
+ entry typ f p typeString done endIndex
+ state stopAtEnd nextState img prevFirstLine prevLastLine
+ numVisible dirSuffix|
+
+ dirSuffix := Filename directorySuffix.
+ dirSuffix size > 0 ifTrue:[
+ dirSuffix := '.' , dirSuffix asLowercase.
+ ].
+
+ "/
+ "/ then walk over the files, adding more info
+ "/ (since we have to stat each file, this may take a while longer)
+ "/ Visible items are always filled first.
+
+ "/
+ "/ the state machine
+ "/
+ nextState := IdentityDictionary new.
+ showingDetails value "showLongList" ifTrue:[
+ nextState add:(#visibleIcons -> #visibleAttributes).
+ nextState add:(#visibleAttributes -> #visibleTypes).
+ nextState add:(#visibleTypes -> #visibleImages).
+ nextState add:(#visibleImages -> #nextPageIcons).
+
+ nextState add:(#nextPageIcons -> #nextPageAttributes).
+ nextState add:(#nextPageAttributes -> #nextPageTypes).
+ nextState add:(#nextPageTypes -> #nextPageImages).
+ nextState add:(#nextPageImages -> #previousPageIcons).
+
+ nextState add:(#previousPageIcons -> #previousPageAttributes).
+ nextState add:(#previousPageAttributes -> #previousPageTypes).
+ nextState add:(#previousPageTypes -> #previousPageImages).
+ nextState add:(#previousPageImages -> #remainingIcons).
+
+ nextState add:(#remainingIcons -> #remainingAttributes).
+ nextState add:(#remainingAttributes -> #remainingTypes).
+ nextState add:(#remainingTypes -> #remainingImages).
+ nextState add:(#remainingImages -> nil).
+ ] ifFalse:[
+ nextState add:(#visibleIcons -> #nextPageIcons).
+ nextState add:(#nextPageIcons -> #previousPageIcons).
+ nextState add:(#previousPageIcons -> #remainingIcons).
+ nextState add:(#remainingIcons -> nil).
+ ].
+
+ anyImages := false.
+
+ lineIndex := prevFirstLine := fileListView firstLineShown.
+ endIndex := prevLastLine := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ state := #visibleIcons.
+
+ done := false.
+ [done] whileFalse:[
+ "/
+ "/ if multiple FileBrowsers are reading, let others
+ "/ make some progress too
+ "/
+ Processor yield.
+
+ "/
+ "/ could be destroyed in the meanwhile ...
+ "/
+ realized ifFalse:[
+ listUpdateProcess := nil.
+ Processor activeProcess terminate
+ ].
+
+ ((prevFirstLine ~~ fileListView firstLineShown)
+ or:[prevLastLine ~~ fileListView lastLineShown]) ifTrue:[
+ "/ start all over again
+ lineIndex := prevFirstLine := fileListView firstLineShown.
+ endIndex := prevLastLine := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ state := #visibleIcons.
+ ].
+
+ (lineIndex between:1 and:(files size)) ifTrue:[
+
+ "/
+ "/ expand the next entry ...
+ "/
+ aFileName := files at:lineIndex.
+ entry := fileListView at:lineIndex.
+ f := currentDirectory construct:aFileName.
+
+ (state endsWith:'Icons') ifTrue:[
+ "/
+ "/ pass 1 - icons
+ "/
+ (passDone at:lineIndex) < 1 ifTrue:[
+ (f isDirectory
+ and:[(aFileName ~= '..') and:[aFileName ~= '.']]
+ ) ifTrue:[
+
+ "/ the following suffix cutOff is not really required,
+ "/ but makes the list look better on VMS ...
+ fileNameString := aFileName.
+ dirSuffix notNil ifTrue:[
+ (aFileName asLowercase endsWith:dirSuffix) ifTrue:[
+ fileNameString := aFileName copyWithoutLast:(dirSuffix size).
+ ]
+ ].
+ fileNameString := fileNameString , ' ...'
+ ] ifFalse:[
+ fileNameString := aFileName.
+ OperatingSystem isVMSlike ifTrue:[
+ (aFileName endsWith:'.') ifTrue:[
+ aFileName ~= '..' ifTrue:[
+ fileNameString := aFileName copyWithoutLast:1
+ ]
+ ]
+ ]
+ ].
+
+ showingDetails value "showLongList" ifTrue:[
+ len := fileNameString size.
+ (len > 20) ifTrue:[
+ fileNameString := (fileNameString contractTo:20)
+ ].
+ ].
+
+ entry colAt:1 put:(self iconForFile:aFileName).
+ entry colAt:2 put:fileNameString.
+
+ "/fileListView at:lineIndex put:entry.
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+
+ anyImages ifFalse:[
+ (Image isImageFileSuffix:(aFileName asFilename suffix))
+ ifTrue:[
+ anyImages := true
+ ]
+ ].
+ passDone at:lineIndex put:1
+ ]
+ ].
+
+ (state endsWith:'Attributes') ifTrue:[
+ "/
+ "/ pass 2 - everything except fileType (which takes very long)
+ "/
+ (passDone at:lineIndex) < 2 ifTrue:[
+ info := f info.
+ info isNil ifTrue:[
+ "not accessable - usually a symlink,
+ to a nonexisting/nonreadable file
+ "
+ f isSymbolicLink ifTrue:[
+ p := f linkInfo path.
+ typeString := 'broken symbolic link to ' , p
+ ] ifFalse:[
+ typeString := 'unknown'
+ ].
+ ] ifFalse:[
+ typ := (info type).
+
+ modeString := self getModeString:(info at:#mode)
+ with:#( '' $r $w $x
+ ' ' $r $w $x
+ ' ' $r $w $x ).
+ entry colAt:3 put:modeString.
+
+ ((info uid) ~~ prevUid) ifTrue:[
+ prevUid := (info uid).
+ nameString := OperatingSystem getUserNameFromID:prevUid.
+ nameString := nameString contractTo:10.
+ nameString := nameString , (String new:(10 - nameString size))
+ ].
+ nameString isNil ifTrue:[nameString := '???'].
+ entry colAt:4 put:nameString withoutSpaces.
+
+ ((info gid) ~~ prevGid) ifTrue:[
+ prevGid := (info gid).
+ groupString := OperatingSystem getGroupNameFromID:prevGid.
+ groupString := groupString contractTo:10.
+ groupString := groupString , (String new:(10 - groupString size))
+ ].
+ groupString isNil ifTrue:[groupString := '???'].
+ entry colAt:5 put:groupString withoutSpaces.
+
+ (typ == #regular) ifTrue:[
+ entry colAt:6 put:(self sizePrintString:(info size)).
+ ].
+
+ f isSymbolicLink ifTrue:[
+ p := f linkInfo path.
+ typeString := 'symbolic link to ' , p
+ ] ifFalse:[
+ typeString := typ asString
+ ].
+ ].
+ entry colAt:7 put:typeString.
+
+ "/ fileListView at:lineIndex put:entry.
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ passDone at:lineIndex put:2.
+ ].
+ ].
+
+ (state endsWith:'Types') ifTrue:[
+ "/
+ "/ pass 3: add fileType
+ "/
+ (passDone at:lineIndex) < 3 ifTrue:[
+ info := f info.
+ info notNil ifTrue:[
+ f isSymbolicLink ifFalse:[
+ (Image isImageFileSuffix:(f suffix)) ifFalse:[
+ typeString := f fileType.
+
+ entry colAt:7 put:typeString.
+ "/ fileListView at:lineIndex put:entry
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ ].
+ ].
+ ].
+
+ passDone at:lineIndex put:3
+ ].
+ ].
+
+ (state endsWith:'Images') ifTrue:[
+ "/
+ "/ pass 4: read images
+ "/
+ (passDone at:lineIndex) < 4 ifTrue:[
+ (Image isImageFileSuffix:(f suffix)) ifTrue:[
+ f isDirectory ifFalse:[
+ img := Image fromFile:(f pathName).
+ img notNil ifTrue:[
+ img := img magnifiedTo:16@16.
+ img := img on:self device.
+ entry colAt:7 put:img.
+ "/ fileListView at:lineIndex put:entry
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ ]
+ ]
+ ].
+ passDone at:lineIndex put:4
+ ].
+ ].
+ ].
+
+ "/
+ "/ advance to the next line
+ "/
+ lineIndex := lineIndex + 1.
+ lineIndex > endIndex ifTrue:[
+ "/ finished this round ...
+ "/ see what we are going for ...
+ numVisible := (fileListView lastLineShown - fileListView firstLineShown + 1).
+
+ state := nextState at:state ifAbsent:nil.
+
+ state isNil ifTrue:[
+ done := true
+ ] ifFalse:[
+ (state startsWith:'visible') ifTrue:[
+ lineIndex := fileListView firstLineShown.
+ endIndex := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ ] ifFalse:[
+ (state startsWith:'nextPage') ifTrue:[
+ lineIndex := fileListView lastLineShown + 1.
+ endIndex := lineIndex + numVisible.
+ endIndex := endIndex min:(files size).
+ lineIndex := lineIndex min:(files size).
+ ] ifFalse:[
+ (state startsWith:'previousPage') ifTrue:[
+ endIndex := fileListView firstLineShown - 1.
+ lineIndex := endIndex - numVisible.
+ lineIndex := lineIndex max:1.
+ endIndex := endIndex min:(files size).
+ endIndex := endIndex max:1.
+ ] ifFalse:[
+ "/ remaining
+ lineIndex := 1.
+ endIndex := files size.
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ listUpdateProcess := nil.
+
+ ] forkAt:(Processor activePriority - 1).
+
+ "
+ install a new check after some time
+ "
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
]
"Modified: / 21.9.1995 / 11:40:23 / claus"
@@ -5178,5 +5178,5 @@
!FileBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Attic/FBrowser.st,v 1.254 1998-09-03 08:19:31 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Attic/FBrowser.st,v 1.255 1998-09-08 10:24:20 cg Exp $'
! !
--- a/FileBrowser.st Tue Sep 08 12:23:56 1998 +0200
+++ b/FileBrowser.st Tue Sep 08 12:24:20 1998 +0200
@@ -99,7 +99,7 @@
f := aFilename asFilename.
f isDirectory ifTrue:[
- ^ self openOn:aFilename
+ ^ self openOn:aFilename
].
browser := self new.
@@ -128,35 +128,35 @@
Icons := Dictionary new.
#(
- "/ internal-type to icon mappings.
- (#directory 'ICON_DIRECTORY' 'tiny_yellow_dir.xpm' )
- (#directoryLocked 'ICON_DIRECTORY_LOCKED' 'tiny_yellow_dir_locked.xpm')
- (#directoryLink 'ICON_DIRECTORY_LINK' 'tiny_yellow_dir_link.xpm' )
- (#file 'ICON_FILE' 'tiny_file_plain.xpm' )
- (#fileLink 'ICON_FILE_LINK' 'tiny_file_link.xpm' )
- (#fileLocked 'ICON_FILE_LOCKED' 'tiny_file_lock.xpm' )
- (#imageFile 'ICON_IMAGE_FILE' 'tiny_file_pix.xpm' )
- (#textFile 'ICON_TEXT_FILE' 'tiny_file_text.xpm' )
- (#executableFile 'ICON_EXECUTABLEFILE' 'tiny_file_exec.xpm' )
-
- "/ mime-type to icon mappings.
- ('text/plain' nil 'tiny_file_text.xpm' )
- ('text/html' nil 'tiny_file_text.xpm' )
- ('application/x-smalltalk-source' nil 'tiny_file_st.xpm' )
+ "/ internal-type to icon mappings.
+ (#directory 'ICON_DIRECTORY' 'tiny_yellow_dir.xpm' )
+ (#directoryLocked 'ICON_DIRECTORY_LOCKED' 'tiny_yellow_dir_locked.xpm')
+ (#directoryLink 'ICON_DIRECTORY_LINK' 'tiny_yellow_dir_link.xpm' )
+ (#file 'ICON_FILE' 'tiny_file_plain.xpm' )
+ (#fileLink 'ICON_FILE_LINK' 'tiny_file_link.xpm' )
+ (#fileLocked 'ICON_FILE_LOCKED' 'tiny_file_lock.xpm' )
+ (#imageFile 'ICON_IMAGE_FILE' 'tiny_file_pix.xpm' )
+ (#textFile 'ICON_TEXT_FILE' 'tiny_file_text.xpm' )
+ (#executableFile 'ICON_EXECUTABLEFILE' 'tiny_file_exec.xpm' )
+
+ "/ mime-type to icon mappings.
+ ('text/plain' nil 'tiny_file_text.xpm' )
+ ('text/html' nil 'tiny_file_text.xpm' )
+ ('application/x-smalltalk-source' nil 'tiny_file_st.xpm' )
) do:[:entry |
- |key resource defaultName nm|
-
- key := entry at:1.
- resource := entry at:2.
- defaultName := entry at:3.
-
- resource notNil ifTrue:[
- nm := resources at:resource default:nil.
- ].
- nm isNil ifTrue:[
- nm := 'bitmaps/xpmBitmaps/document_images/' , defaultName
- ].
- Icons at:key put:(Image fromFile:nm).
+ |key resource defaultName nm|
+
+ key := entry at:1.
+ resource := entry at:2.
+ defaultName := entry at:3.
+
+ resource notNil ifTrue:[
+ nm := resources at:resource default:nil.
+ ].
+ nm isNil ifTrue:[
+ nm := 'bitmaps/xpmBitmaps/document_images/' , defaultName
+ ].
+ Icons at:key put:(Image fromFile:nm).
]
"
@@ -245,43 +245,43 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'Copy Path'
- #translateLabel: true
- #value: #copyPath
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Up'
- #translateLabel: true
- #value: #changeToParentDirectory
- #enabled: #currentDirectoryIsNotTop
- )
- #(#MenuItem
- #label: 'Back'
- #translateLabel: true
- #value: #changeToPreviousDirectory
- )
- #(#MenuItem
- #label: 'Home'
- #translateLabel: true
- #value: #changeToHomeDirectory
- )
- #(#MenuItem
- #label: 'Default'
- #translateLabel: true
- #value: #changeToDefaultDirectory
- )
- #(#MenuItem
- #label: 'Goto...'
- #translateLabel: true
- #value: #changeCurrentDirectory
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'Copy Path'
+ #translateLabel: true
+ #value: #copyPath
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Up'
+ #translateLabel: true
+ #value: #changeToParentDirectory
+ #enabled: #currentDirectoryIsNotTop
+ )
+ #(#MenuItem
+ #label: 'Back'
+ #translateLabel: true
+ #value: #changeToPreviousDirectory
+ )
+ #(#MenuItem
+ #label: 'Home'
+ #translateLabel: true
+ #value: #changeToHomeDirectory
+ )
+ #(#MenuItem
+ #label: 'Default'
+ #translateLabel: true
+ #value: #changeToDefaultDirectory
+ )
+ #(#MenuItem
+ #label: 'Goto...'
+ #translateLabel: true
+ #value: #changeCurrentDirectory
+ )
+ ) nil
+ nil
)
"Created: / 4.8.1998 / 17:21:16 / cg"
@@ -310,12 +310,12 @@
"/ add the history items ...
DirectoryHistory size > 0 ifTrue:[
- base addItem:(MenuItem labeled:'-').
- DirectoryHistory do:[:dirName |
- base addItem:((MenuItem label:dirName value:#changeDirectoryTo:)
- argument:dirName;
- yourself).
- ].
+ base addItem:(MenuItem labeled:'-').
+ DirectoryHistory do:[:dirName |
+ base addItem:((MenuItem label:dirName value:#changeDirectoryTo:)
+ argument:dirName;
+ yourself).
+ ].
].
^ base
@@ -341,151 +341,151 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'Spawn'
- #translateLabel: true
- #value: #fileSpawn
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Get Contents'
- #translateLabel: true
- #value: #fileGet
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Insert Contents'
- #translateLabel: true
- #value: #fileInsert
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'FileIn'
- #translateLabel: true
- #value: #fileFileIn
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Unix Command...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'DOS Command...'
- #translateLabel: true
- #isVisible: #systemIsDOS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'VMS Command...'
- #translateLabel: true
- #isVisible: #systemIsVMS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'ST/X Tools'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Spawn'
+ #translateLabel: true
+ #value: #fileSpawn
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Get Contents'
+ #translateLabel: true
+ #value: #fileGet
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Insert Contents'
+ #translateLabel: true
+ #value: #fileInsert
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'FileIn'
+ #translateLabel: true
+ #value: #fileFileIn
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Unix Command...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'DOS Command...'
+ #translateLabel: true
+ #isVisible: #systemIsDOS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'VMS Command...'
+ #translateLabel: true
+ #isVisible: #systemIsVMS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'ST/X Tools'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Changes Browser'
- #translateLabel: true
- #value: #openChangesBrowser
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Editor'
- #translateLabel: true
- #value: #openEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'HTML Reader'
- #translateLabel: true
- #value: #openHTMLReader
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Inspect'
- #translateLabel: true
- #value: #openImageInspector
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Editor'
- #translateLabel: true
- #value: #openImageEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'ZipFile Tool'
- #translateLabel: true
- #value: #openZipTool
- #enabled: #hasZipFileSelected
- )
- #(#MenuItem
- #label: 'Show File Differences'
- #translateLabel: true
- #value: #openDiffView
- )
- #(#MenuItem
- #label: 'Terminal'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #openTerminal
- #enabled: #systemIsUnix
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Remove...'
- #translateLabel: true
- #value: #fileRemove
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Rename...'
- #translateLabel: true
- #value: #fileRename
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'New Directory...'
- #translateLabel: true
- #value: #newDirectory
- )
- #(#MenuItem
- #label: 'New File...'
- #translateLabel: true
- #value: #newFile
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Update'
- #translateLabel: true
- #value: #updateCurrentDirectory
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'Changes Browser'
+ #translateLabel: true
+ #value: #openChangesBrowser
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Editor'
+ #translateLabel: true
+ #value: #openEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'HTML Reader'
+ #translateLabel: true
+ #value: #openHTMLReader
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Inspect'
+ #translateLabel: true
+ #value: #openImageInspector
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Editor'
+ #translateLabel: true
+ #value: #openImageEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'ZipFile Tool'
+ #translateLabel: true
+ #value: #openZipTool
+ #enabled: #hasZipFileSelected
+ )
+ #(#MenuItem
+ #label: 'Show File Differences'
+ #translateLabel: true
+ #value: #openDiffView
+ )
+ #(#MenuItem
+ #label: 'Terminal'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #openTerminal
+ #enabled: #systemIsUnix
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Remove...'
+ #translateLabel: true
+ #value: #fileRemove
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Rename...'
+ #translateLabel: true
+ #value: #fileRename
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'New Directory...'
+ #translateLabel: true
+ #value: #newDirectory
+ )
+ #(#MenuItem
+ #label: 'New File...'
+ #translateLabel: true
+ #value: #newFile
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Update'
+ #translateLabel: true
+ #value: #updateCurrentDirectory
+ )
+ ) nil
+ nil
)
"Modified: / 26.8.1998 / 16:34:00 / cg"
@@ -509,325 +509,325 @@
#(#Menu
- #(
- #(#MenuItem
- #label: 'About'
- #translateLabel: true
- #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'About'
+ #translateLabel: true
+ #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'About Smalltalk/X...'
- #translateLabel: true
- #value: #showAboutSTX
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'About FileBrowser...'
- #translateLabel: true
- #value: #openAboutThisApplication
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'File'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'About Smalltalk/X...'
+ #translateLabel: true
+ #value: #showAboutSTX
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'About FileBrowser...'
+ #translateLabel: true
+ #value: #openAboutThisApplication
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'File'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Open'
- #translateLabel: true
- #value: #menuOpen
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'FileIn'
- #translateLabel: true
- #value: #fileFileIn
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'New'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Open'
+ #translateLabel: true
+ #value: #menuOpen
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'FileIn'
+ #translateLabel: true
+ #value: #fileFileIn
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'New'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Directory...'
- #translateLabel: true
- #value: #newDirectory
- )
- #(#MenuItem
- #label: 'File...'
- #translateLabel: true
- #value: #newFile
- )
- #(#MenuItem
- #label: 'Hard Link...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #newHardLink
- )
- #(#MenuItem
- #label: 'Symbolic Link...'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #newSoftLink
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Remove'
- #translateLabel: true
- #value: #fileRemove
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Rename'
- #translateLabel: true
- #value: #fileRename
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Properties...'
- #translateLabel: true
- #value: #fileGetLongInfo
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Spawn'
- #translateLabel: true
- #value: #fileSpawn
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Exit'
- #translateLabel: true
- #value: #menuExit
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Directory'
- #translateLabel: true
- #submenuChannel: #directoryMenuSpec
- )
- #(#MenuItem
- #label: 'Edit'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Directory...'
+ #translateLabel: true
+ #value: #newDirectory
+ )
+ #(#MenuItem
+ #label: 'File...'
+ #translateLabel: true
+ #value: #newFile
+ )
+ #(#MenuItem
+ #label: 'Hard Link...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #newHardLink
+ )
+ #(#MenuItem
+ #label: 'Symbolic Link...'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #newSoftLink
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Remove'
+ #translateLabel: true
+ #value: #fileRemove
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Rename'
+ #translateLabel: true
+ #value: #fileRename
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Properties...'
+ #translateLabel: true
+ #value: #fileGetLongInfo
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Spawn'
+ #translateLabel: true
+ #value: #fileSpawn
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Exit'
+ #translateLabel: true
+ #value: #menuExit
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Directory'
+ #translateLabel: true
+ #submenuChannel: #directoryMenuSpec
+ )
+ #(#MenuItem
+ #label: 'Edit'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Get Contents'
- #translateLabel: true
- #value: #fileGet
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Insert Contents'
- #translateLabel: true
- #value: #fileInsert
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Copy File List'
- #translateLabel: true
- #value: #copyFileList
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'View'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Get Contents'
+ #translateLabel: true
+ #value: #fileGet
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Insert Contents'
+ #translateLabel: true
+ #value: #fileInsert
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Copy File List'
+ #translateLabel: true
+ #value: #copyFileList
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'View'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Details'
- #translateLabel: true
- #indication: #showingDetails
- )
- #(#MenuItem
- #label: 'Show Hidden Files'
- #translateLabel: true
- #indication: #showingHiddenFiles
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Sort By Name'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #name
- )
- #(#MenuItem
- #label: 'Sort By Type'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #type
- )
- #(#MenuItem
- #label: 'Sort By Time'
- #translateLabel: true
- #choice: #sortByWhat
- #choiceValue: #time
- )
- #(#MenuItem
- #label: 'Ignore Case'
- #translateLabel: true
- #enabled: #sortByName
- #indication: #sortCaseless
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Encoding...'
- #translateLabel: true
- #value: #fileEncoding
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Update'
- #translateLabel: true
- #value: #updateCurrentDirectory
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Tools'
- #translateLabel: true
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Details'
+ #translateLabel: true
+ #indication: #showingDetails
+ )
+ #(#MenuItem
+ #label: 'Show Hidden Files'
+ #translateLabel: true
+ #indication: #showingHiddenFiles
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Sort By Name'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #name
+ )
+ #(#MenuItem
+ #label: 'Sort By Type'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #type
+ )
+ #(#MenuItem
+ #label: 'Sort By Time'
+ #translateLabel: true
+ #choice: #sortByWhat
+ #choiceValue: #time
+ )
+ #(#MenuItem
+ #label: 'Ignore Case'
+ #translateLabel: true
+ #enabled: #sortByName
+ #indication: #sortCaseless
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Encoding...'
+ #translateLabel: true
+ #value: #fileEncoding
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Update'
+ #translateLabel: true
+ #value: #updateCurrentDirectory
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Tools'
+ #translateLabel: true
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'Unix Command'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'DOS Command'
- #translateLabel: true
- #isVisible: #systemIsDOS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: 'VMS Command'
- #translateLabel: true
- #isVisible: #systemIsVMS
- #value: #menuOSCommand
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Changes Browser'
- #translateLabel: true
- #value: #openChangesBrowser
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Editor'
- #translateLabel: true
- #value: #openEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'HTML Reader'
- #translateLabel: true
- #value: #openHTMLReader
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Inspector'
- #translateLabel: true
- #value: #openImageInspector
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'Image Editor'
- #translateLabel: true
- #value: #openImageEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
- #label: 'ZipFile Tool'
- #translateLabel: true
- #value: #openZipTool
- #enabled: #hasZipFileSelected
- )
- #(#MenuItem
- #label: 'File Differences...'
- #translateLabel: true
- #value: #openDiffView
- )
- #(#MenuItem
- #label: 'Shell Terminal'
- #translateLabel: true
- #isVisible: #systemIsUnix
- #value: #openTerminal
- #enabled: #systemIsUnix
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #label: 'Help'
- #translateLabel: true
- #startGroup: #right
- #submenu:
- #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Unix Command'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'DOS Command'
+ #translateLabel: true
+ #isVisible: #systemIsDOS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: 'VMS Command'
+ #translateLabel: true
+ #isVisible: #systemIsVMS
+ #value: #menuOSCommand
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Changes Browser'
+ #translateLabel: true
+ #value: #openChangesBrowser
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Editor'
+ #translateLabel: true
+ #value: #openEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'HTML Reader'
+ #translateLabel: true
+ #value: #openHTMLReader
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Inspector'
+ #translateLabel: true
+ #value: #openImageInspector
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'Image Editor'
+ #translateLabel: true
+ #value: #openImageEditor
+ #enabled: #hasSelection
+ )
+ #(#MenuItem
+ #label: 'ZipFile Tool'
+ #translateLabel: true
+ #value: #openZipTool
+ #enabled: #hasZipFileSelected
+ )
+ #(#MenuItem
+ #label: 'File Differences...'
+ #translateLabel: true
+ #value: #openDiffView
+ )
+ #(#MenuItem
+ #label: 'Shell Terminal'
+ #translateLabel: true
+ #isVisible: #systemIsUnix
+ #value: #openTerminal
+ #enabled: #systemIsUnix
+ )
+ ) nil
+ nil
+ )
+ )
+ #(#MenuItem
+ #label: 'Help'
+ #translateLabel: true
+ #startGroup: #right
+ #submenu:
+ #(#Menu
- #(
- #(#MenuItem
- #label: 'FileBrowser Documentation'
- #translateLabel: true
- #value: #openHTMLDocument:
- #argument: 'tools/fbrowser/TOP.html'
- )
- ) nil
- nil
- )
- )
- ) nil
- nil
+ #(
+ #(#MenuItem
+ #label: 'FileBrowser Documentation'
+ #translateLabel: true
+ #value: #openHTMLDocument:
+ #argument: 'tools/fbrowser/TOP.html'
+ )
+ ) nil
+ nil
+ )
+ )
+ ) nil
+ nil
)
"Modified: / 26.8.1998 / 16:33:44 / cg"
@@ -859,10 +859,10 @@
hasZipFileSelected
^ [|sel fn|
- sel := fileListView selectionValue.
- sel size == 1
- and:[ ((fn := self getSelectedFileName asFilename) hasSuffix:'zip')
- or:[fn hasSuffix:'jar']]
+ sel := fileListView selectionValue.
+ sel size == 1
+ and:[ ((fn := self getSelectedFileName asFilename) hasSuffix:'zip')
+ or:[fn hasSuffix:'jar']]
]
"Created: / 26.8.1998 / 16:15:26 / cg"
@@ -1063,11 +1063,11 @@
wasVisible := shown.
super visibilityChange:how.
(wasVisible not and:[shown]) ifTrue:[
- "
- start checking again
- "
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ "
+ start checking again
+ "
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
]
"Modified: / 18.2.1998 / 17:57:44 / cg"
@@ -1202,74 +1202,74 @@
|aStream path oldPath wasLazy bos prevCurrentFileName|
self selectedFilesDo:[:fileName |
- path := currentDirectory filenameFor:fileName.
- path type == #regular ifTrue:[
- prevCurrentFileName := currentFileInFileName.
- currentFileInFileName := fileName.
-
- (ObjectFileLoader notNil
- and:[ObjectFileLoader hasValidBinaryExtension:fileName]) ifTrue:[
- Object abortSignal catch:[
- |p|
-
- "/
- "/ look if already loaded ... then unload first
- "/
- p := path pathName.
- (ObjectFileLoader loadedObjectFiles includes:p) ifTrue:[
- (Dialog confirm:(resources
- string:'%1 is already loaded; load anyway ?'
- with:p)) ifFalse:[
- ^ self
- ].
- Transcript showCR:'unloading old ' , p , ' ...'.
- ObjectFileLoader unloadObjectFile:p.
- ].
-
- Transcript showCR:'loading ' , p , ' ...'.
- ObjectFileLoader loadObjectFile:p.
- Class addInfoRecord:('fileIn ' , fileName)
- ]
- ] ifFalse:[
- (path hasSuffix:'cls') ifTrue:[
- aStream := path readStream.
- aStream notNil ifTrue:[
- bos := BinaryObjectStorage onOld:aStream.
- Class nameSpaceQuerySignal
- answer:Smalltalk
- do:[
- bos next.
- ].
- bos close
- ]
- ] ifFalse:[
- ((path hasSuffix:'class')
- or:[(path hasSuffix:'cla')]) ifTrue:[
- JavaClassReader notNil ifTrue:[
- JavaClassReader loadFile:(path pathName)
- ]
- ] ifFalse:[
- aStream := path readStream.
- aStream notNil ifTrue:[
- [
- Class withoutUpdatingChangesDo:[
- oldPath := Smalltalk systemPath.
- Smalltalk systemPath:(oldPath copy addFirst:currentDirectory pathName; yourself).
- wasLazy := Compiler compileLazy:lazy.
- aStream fileIn.
- ].
- Class addInfoRecord:('fileIn ' , fileName)
- ] valueNowOrOnUnwindDo:[
- Compiler compileLazy:wasLazy.
- Smalltalk systemPath:oldPath.
- aStream close
- ]
- ]
- ]
- ]
- ]
- ].
- currentFileInFileName := prevCurrentFileName
+ path := currentDirectory filenameFor:fileName.
+ path type == #regular ifTrue:[
+ prevCurrentFileName := currentFileInFileName.
+ currentFileInFileName := fileName.
+
+ (ObjectFileLoader notNil
+ and:[ObjectFileLoader hasValidBinaryExtension:fileName]) ifTrue:[
+ Object abortSignal catch:[
+ |p|
+
+ "/
+ "/ look if already loaded ... then unload first
+ "/
+ p := path pathName.
+ (ObjectFileLoader loadedObjectFiles includes:p) ifTrue:[
+ (Dialog confirm:(resources
+ string:'%1 is already loaded; load anyway ?'
+ with:p)) ifFalse:[
+ ^ self
+ ].
+ Transcript showCR:'unloading old ' , p , ' ...'.
+ ObjectFileLoader unloadObjectFile:p.
+ ].
+
+ Transcript showCR:'loading ' , p , ' ...'.
+ ObjectFileLoader loadObjectFile:p.
+ Class addInfoRecord:('fileIn ' , fileName)
+ ]
+ ] ifFalse:[
+ (path hasSuffix:'cls') ifTrue:[
+ aStream := path readStream.
+ aStream notNil ifTrue:[
+ bos := BinaryObjectStorage onOld:aStream.
+ Class nameSpaceQuerySignal
+ answer:Smalltalk
+ do:[
+ bos next.
+ ].
+ bos close
+ ]
+ ] ifFalse:[
+ ((path hasSuffix:'class')
+ or:[(path hasSuffix:'cla')]) ifTrue:[
+ JavaClassReader notNil ifTrue:[
+ JavaClassReader loadFile:(path pathName)
+ ]
+ ] ifFalse:[
+ aStream := path readStream.
+ aStream notNil ifTrue:[
+ [
+ Class withoutUpdatingChangesDo:[
+ oldPath := Smalltalk systemPath.
+ Smalltalk systemPath:(oldPath copy addFirst:currentDirectory pathName; yourself).
+ wasLazy := Compiler compileLazy:lazy.
+ aStream fileIn.
+ ].
+ Class addInfoRecord:('fileIn ' , fileName)
+ ] valueNowOrOnUnwindDo:[
+ Compiler compileLazy:wasLazy.
+ Smalltalk systemPath:oldPath.
+ aStream close
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+ currentFileInFileName := prevCurrentFileName
]
"Modified: / 19.9.1997 / 23:42:22 / stefan"
@@ -1330,18 +1330,18 @@
string := self getFileInfoString:longInfo.
string notNil ifTrue:[
- box := InfoBox title:string.
- updater := [
- [true] whileTrue:[
- Delay waitForSeconds:2.
- string := self getFileInfoString:longInfo.
- box title:string
- ]
- ] fork.
-
- box showAtPointer.
- updater terminate.
- box destroy
+ box := InfoBox title:string.
+ updater := [
+ [true] whileTrue:[
+ Delay waitForSeconds:2.
+ string := self getFileInfoString:longInfo.
+ box title:string
+ ]
+ ] fork.
+
+ box showAtPointer.
+ updater terminate.
+ box destroy
]
!
@@ -1387,87 +1387,87 @@
|items m sel ns subMenu subItems|
items := #(
- ('spawn' fileSpawn )
- ('-' nil )
- ('get contents' fileGet GotoLine)
- ('insert contents' fileInsert )
- ('show info' fileGetInfo InspectIt)
- ('show full info' fileGetLongInfo CmdI)
- ).
+ ('spawn' fileSpawn )
+ ('-' nil )
+ ('get contents' fileGet GotoLine)
+ ('insert contents' fileInsert )
+ ('show info' fileGetInfo InspectIt)
+ ('show full info' fileGetLongInfo CmdI)
+ ).
((ns := Project current defaultNameSpace) notNil
and:[ns ~~ Smalltalk]) ifTrue:[
- items := items copyWith:(Array
- with:(resources string:'fileIn (into ''%1'')' with:(Project current defaultNameSpace name))
- with:#fileFileIn
- with:#Accept)
+ items := items copyWith:(Array
+ with:(resources string:'fileIn (into ''%1'')' with:(Project current defaultNameSpace name))
+ with:#fileFileIn
+ with:#Accept)
] ifFalse:[
- items := items copyWith:#( 'fileIn' #fileFileIn #Accept)
+ items := items copyWith:#( 'fileIn' #fileFileIn #Accept)
].
items := items , #(
- ('-' )
- ('update' updateCurrentDirectory Cmdu)
- ('-' )
- ('execute unix command ...' fileExecute DoIt)
- ('st/x tools' stxTools )
- ('-' )
- ('remove' fileRemove Delete)
- ('rename ...' fileRename )
- ('-' )
- ('display long list' changeDisplayMode )
- ('show all files' changeDotFileVisibility )
- ('encoding ...' fileEncoding )
- ('-' )
- ('create directory ...' newDirectory CmdD)
- ('create file ...' newFile CmdF)
- ).
+ ('-' )
+ ('update' updateCurrentDirectory Cmdu)
+ ('-' )
+ ('execute unix command ...' fileExecute DoIt)
+ ('st/x tools' stxTools )
+ ('-' )
+ ('remove' fileRemove Delete)
+ ('rename ...' fileRename )
+ ('-' )
+ ('display long list' changeDisplayMode )
+ ('show all files' changeDotFileVisibility )
+ ('encoding ...' fileEncoding )
+ ('-' )
+ ('create directory ...' newDirectory CmdD)
+ ('create file ...' newFile CmdF)
+ ).
m := PopUpMenu
- itemList:items
- resources:resources.
+ itemList:items
+ resources:resources.
showingHiddenFiles value "showDotFiles" ifTrue:[
- m labelAt:#changeDotFileVisibility put:(resources string:'hide hidden files')
+ m labelAt:#changeDotFileVisibility put:(resources string:'hide hidden files')
].
showingDetails value "showLongList" ifTrue:[
- m labelAt:#changeDisplayMode put:(resources string:'display short list')
+ m labelAt:#changeDisplayMode put:(resources string:'display short list')
].
items := #(
- ('Changes browser' openChangesBrowser )
- ('Editor' openEditor )
- ('HTML reader' openHTMLReader )
- ('Image inspect' openImageInspector )
- ('show file differences' openDiffView )
- ).
+ ('Changes browser' openChangesBrowser )
+ ('Editor' openEditor )
+ ('HTML reader' openHTMLReader )
+ ('Image inspect' openImageInspector )
+ ('show file differences' openDiffView )
+ ).
OperatingSystem isUNIXlike ifTrue:[
- items := items , #( ('terminal' openTerminal )).
+ items := items , #( ('terminal' openTerminal )).
].
JavaInterpreter notNil ifTrue:[
- items := items , #( ('Java Applet Viewer' openAppletViewer)).
+ items := items , #( ('Java Applet Viewer' openAppletViewer)).
].
m subMenuAt:#stxTools
- put:(PopUpMenu
- itemList:items
- resources:resources).
+ put:(PopUpMenu
+ itemList:items
+ resources:resources).
((sel := fileListView selection) isNil
or:[sel isEmpty]) ifTrue:[
- m disableAll:#(fileGet fileInsert
- fileGetInfo fileGetLongInfo
- fileFileIn fileFileInLazy
- fileRemove fileRename).
- (m subMenuAt:#stxTools)
- disableAll:#(openChangesBrowser openEditor openHTMLReader openImageInspector)
+ m disableAll:#(fileGet fileInsert
+ fileGetInfo fileGetLongInfo
+ fileFileIn fileFileInLazy
+ fileRemove fileRename).
+ (m subMenuAt:#stxTools)
+ disableAll:#(openChangesBrowser openEditor openHTMLReader openImageInspector)
] ifFalse:[
- fileListView selection size > 1 ifTrue:[
- m disableAll:#( fileGet fileInsert fileGetInfo fileGetLongInfo fileRename )
- ]
+ fileListView selection size > 1 ifTrue:[
+ m disableAll:#( fileGet fileInsert fileGetInfo fileGetLongInfo fileRename )
+ ]
].
^m
@@ -1575,15 +1575,15 @@
|img path|
self selectedFilesDo:[:fileName |
- path := currentDirectory filenameFor:fileName.
- path isDirectory ifFalse:[
- img := Image fromFile:(path pathName).
- img notNil ifTrue:[
- img perform:aSelector
- ] ifFalse:[
- self warn:'unknown format: ' , fileName
- ]
- ]
+ path := currentDirectory filenameFor:fileName.
+ path isDirectory ifFalse:[
+ img := Image fromFile:(path pathName).
+ img notNil ifTrue:[
+ img perform:aSelector
+ ] ifFalse:[
+ self warn:'unknown format: ' , fileName
+ ]
+ ]
].
"Modified: / 17.9.1995 / 17:41:24 / claus"
@@ -1633,9 +1633,9 @@
orgName1 := ''.
(sel size > 0) ifTrue:[
- (currentDirectory construct:sel) isDirectory ifFalse:[
- orgName1 := sel
- ]
+ (currentDirectory construct:sel) isDirectory ifFalse:[
+ orgName1 := sel
+ ]
].
name1 := orgName1 asValue.
@@ -1650,45 +1650,45 @@
box addAbortButton; addOkButton.
orgName1 size > 0 ifTrue:[
- box focusOnField:if2.
+ box focusOnField:if2.
].
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f1 := name1 asFilename.
- name2 := name2 value.
- (name2 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f2 := name2 asFilename.
- f2 exists ifTrue:[
- err := '''%2'' already exists'.
- ] ifFalse:[
- f1 exists ifFalse:[
- err := '''%1'' does not exist'.
- ] ifTrue:[
- f1 isDirectory ifTrue:[
- err := '''%1'' is a directory'.
- ] ifFalse:[
- ErrorSignal handle:[:ex |
- err := ex errorString
- ] do:[
- OperatingSystem createHardLinkFrom:name1 to:name2
- ]
- ]
- ]
- ]
- ]
- ].
-
- err notNil ifTrue:[
- self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
- ^ self
- ].
+ name1 := name1 value.
+ (name1 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f1 := name1 asFilename.
+ name2 := name2 value.
+ (name2 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f2 := name2 asFilename.
+ f2 exists ifTrue:[
+ err := '''%2'' already exists'.
+ ] ifFalse:[
+ f1 exists ifFalse:[
+ err := '''%1'' does not exist'.
+ ] ifTrue:[
+ f1 isDirectory ifTrue:[
+ err := '''%1'' is a directory'.
+ ] ifFalse:[
+ ErrorSignal handle:[:ex |
+ err := ex errorString
+ ] do:[
+ OperatingSystem createHardLinkFrom:name1 to:name2
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ err notNil ifTrue:[
+ self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
+ ^ self
+ ].
].
"Modified: / 13.8.1998 / 21:47:01 / cg"
@@ -1703,7 +1703,7 @@
orgName1 := ''.
(sel size > 0) ifTrue:[
- orgName1 := sel
+ orgName1 := sel
].
name1 := orgName1 asValue.
@@ -1718,40 +1718,40 @@
box addAbortButton; addOkButton.
orgName1 size > 0 ifTrue:[
- box focusOnField:if2.
+ box focusOnField:if2.
].
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f1 := name1 asFilename.
- name2 := name2 value.
- (name2 size == 0) ifTrue:[
- err := 'no name entered'.
- ] ifFalse:[
- f2 := name2 asFilename.
- f2 exists ifTrue:[
- err := '''%2'' already exists'.
- ] ifFalse:[
- f1 exists ifFalse:[
- err := '''%1'' does not exist (link created anyway)'.
- ].
- ErrorSignal handle:[:ex |
- err := ex errorString
- ] do:[
- OperatingSystem createSymbolicLinkFrom:name1 to:name2
- ]
- ]
- ]
- ].
-
- err notNil ifTrue:[
- self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
- ^ self
- ].
+ name1 := name1 value.
+ (name1 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f1 := name1 asFilename.
+ name2 := name2 value.
+ (name2 size == 0) ifTrue:[
+ err := 'no name entered'.
+ ] ifFalse:[
+ f2 := name2 asFilename.
+ f2 exists ifTrue:[
+ err := '''%2'' already exists'.
+ ] ifFalse:[
+ f1 exists ifFalse:[
+ err := '''%1'' does not exist (link created anyway)'.
+ ].
+ ErrorSignal handle:[:ex |
+ err := ex errorString
+ ] do:[
+ OperatingSystem createSymbolicLinkFrom:name1 to:name2
+ ]
+ ]
+ ]
+ ].
+
+ err notNil ifTrue:[
+ self warn:(resources string:err with:(name1 ? '') asText allBold with:(name2 ? '') asText allBold).
+ ^ self
+ ].
].
"Modified: / 13.8.1998 / 21:26:59 / cg"
@@ -1805,11 +1805,11 @@
(sel size > 0
and:[lastFileDiffDirectory notNil
and:[lastFileDiffDirectory asFilename isDirectory]]) ifTrue:[
- f := lastFileDiffDirectory asFilename construct:sel.
- (f exists
- and:[f isReadable]) ifTrue:[
- orgName1 := f name
- ]
+ f := lastFileDiffDirectory asFilename construct:sel.
+ (f exists
+ and:[f isReadable]) ifTrue:[
+ orgName1 := f name
+ ]
].
name1 := orgName1 asValue.
@@ -1827,57 +1827,57 @@
box showAtPointer.
box accepted ifTrue:[
- name1 := name1 value.
- (name1 isNil or:[name1 isEmpty]) ifTrue:[
- text1 := subView contents.
- name1 := nil.
- l1 := 'browser contents'
- ] ifFalse:[
- name1 := currentDirectory filenameFor:name1.
- name1 isReadable ifFalse:[
- nm := name1.
- name1 exists ifFalse:[
- err := '%1 does not exist'.
- ] ifTrue:[
- err := '%1 is not readable'
- ].
- ].
- l1 := name1 pathName
- ].
-
- name2 := currentDirectory filenameFor:name2 value.
- err isNil ifTrue:[
- name2 isReadable ifFalse:[
- nm := name2.
- name2 exists ifFalse:[
- err := '%1 does not exist'.
- ] ifTrue:[
- err := '%1 is not readable'
- ].
- ].
- ].
- err notNil ifTrue:[
- self warn:(resources string:err with:nm pathName).
- ^ self
- ].
-
- self withWaitCursorDo:[
- (name1 notNil and:[name1 name ~= orgName1]) ifTrue:[
- lastFileDiffDirectory := name1 directoryName
- ].
- name1 notNil ifTrue:[
- text1 := name1 contents.
- ].
- text2 := name2 contents.
- text1 = text2 ifTrue:[
- self information:'same contents'
- ] ifFalse:[
- d := DiffTextView
- openOn:text1 label:l1
- and:text2 label:name2 pathName.
- d label:'file differences'.
- ]
- ]
+ name1 := name1 value.
+ (name1 isNil or:[name1 isEmpty]) ifTrue:[
+ text1 := subView contents.
+ name1 := nil.
+ l1 := 'browser contents'
+ ] ifFalse:[
+ name1 := currentDirectory filenameFor:name1.
+ name1 isReadable ifFalse:[
+ nm := name1.
+ name1 exists ifFalse:[
+ err := '%1 does not exist'.
+ ] ifTrue:[
+ err := '%1 is not readable'
+ ].
+ ].
+ l1 := name1 pathName
+ ].
+
+ name2 := currentDirectory filenameFor:name2 value.
+ err isNil ifTrue:[
+ name2 isReadable ifFalse:[
+ nm := name2.
+ name2 exists ifFalse:[
+ err := '%1 does not exist'.
+ ] ifTrue:[
+ err := '%1 is not readable'
+ ].
+ ].
+ ].
+ err notNil ifTrue:[
+ self warn:(resources string:err with:nm pathName).
+ ^ self
+ ].
+
+ self withWaitCursorDo:[
+ (name1 notNil and:[name1 name ~= orgName1]) ifTrue:[
+ lastFileDiffDirectory := name1 directoryName
+ ].
+ name1 notNil ifTrue:[
+ text1 := name1 contents.
+ ].
+ text2 := name2 contents.
+ text1 = text2 ifTrue:[
+ self information:'same contents'
+ ] ifFalse:[
+ d := DiffTextView
+ openOn:text1 label:l1
+ and:text2 label:name2 pathName.
+ d label:'file differences'.
+ ]
+ ]
].
"Created: / 7.12.1995 / 20:33:58 / cg"
@@ -1951,25 +1951,25 @@
"depending on the showLongList setting, show or hde the tabSpec view"
showingDetails value "showLongList" ifTrue:[
- tabRulerView isNil ifTrue:[
- self createTabRulerIn:scrollView superView.
- ].
- tabRulerView beVisible.
+ tabRulerView isNil ifTrue:[
+ self createTabRulerIn:scrollView superView.
+ ].
+ tabRulerView beVisible.
- false "self is3D" ifTrue:[
- scrollView topInset:(tabRulerView superView height).
- tabRulerView superView leftInset:(fileListView originRelativeTo:scrollView) x.
- ] ifFalse:[
- scrollView topInset:(tabRulerView height).
- tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
- ].
- tabRulerView hiddenTabs:#(1).
- tabRulerView fixedTabs:#(1).
+ false "self is3D" ifTrue:[
+ scrollView topInset:(tabRulerView superView height).
+ tabRulerView superView leftInset:(fileListView originRelativeTo:scrollView) x.
+ ] ifFalse:[
+ scrollView topInset:(tabRulerView height).
+ tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
+ ].
+ tabRulerView hiddenTabs:#(1).
+ tabRulerView fixedTabs:#(1).
] ifFalse:[
- tabRulerView notNil ifTrue:[
- tabRulerView beInvisible.
- ].
- scrollView topInset:0
+ tabRulerView notNil ifTrue:[
+ tabRulerView beInvisible.
+ ].
+ scrollView topInset:0
].
tabSpec := nil.
@@ -2009,15 +2009,15 @@
|v|
false "self is3D" ifTrue:[
- v := View in:topFrame.
- v level:-1.
- tabRulerView := TabSpecRuler in:v.
- tabRulerView level:1.
- v origin:(0.0@0.0) corner:(1.0@10).
- tabRulerView origin:(0.0@0.0) corner:(1.0@1.0).
+ v := View in:topFrame.
+ v level:-1.
+ tabRulerView := TabSpecRuler in:v.
+ tabRulerView level:1.
+ v origin:(0.0@0.0) corner:(1.0@10).
+ tabRulerView origin:(0.0@0.0) corner:(1.0@1.0).
] ifFalse:[
- tabRulerView := TabSpecRuler in:topFrame.
- tabRulerView origin:(0.0@0.0) corner:(1.0@10).
+ tabRulerView := TabSpecRuler in:topFrame.
+ tabRulerView origin:(0.0@0.0) corner:(1.0@10).
].
tabRulerView borderWidth:0.
tabRulerView synchronousOperation:true.
@@ -2102,20 +2102,20 @@
lockUpdate := false.
CommandHistory isNil ifTrue:[
- CommandHistory := OrderedCollection new.
- CommandHistorySize := 50
+ CommandHistory := OrderedCollection new.
+ CommandHistorySize := 50
].
DirectoryHistory isNil ifTrue:[
- DirectoryHistory := OrderedCollection new.
- DirectoryHistoryWhere := OrderedCollection new.
- HistorySize := 15.
+ DirectoryHistory := OrderedCollection new.
+ DirectoryHistoryWhere := OrderedCollection new.
+ HistorySize := 15.
].
commandIndex := 0.
icons := Dictionary new.
Icons isNil ifTrue:[
- self class initializeIcons
+ self class initializeIcons
].
myName := (resources string:self class name).
@@ -2130,13 +2130,13 @@
menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
labelFrame := View
- origin:(0.0 @ mH)
- corner:(1.0 @ (font height * 1.8 + mH) rounded)
- in:self.
+ origin:(0.0 @ mH)
+ corner:(1.0 @ (font height * 1.8 + mH) rounded)
+ in:self.
(styleSheet name = #st80 or:[styleSheet name == #win95]) ifTrue:[
- labelFrame level:1.
- labelFrame rightInset:-1.
+ labelFrame level:1.
+ labelFrame rightInset:-1.
].
spacing := ViewSpacing.
@@ -2155,8 +2155,8 @@
filterModel := '*' asValue.
filterField := EditField in:labelFrame.
filterField
- origin:[((width // 4 * 3) + halfSpacing) @ (halfSpacing)]
- corner:(1.0 @ (filterField heightIncludingBorder + halfSpacing) ).
+ origin:[((width // 4 * 3) + halfSpacing) @ (halfSpacing)]
+ corner:(1.0 @ (filterField heightIncludingBorder + halfSpacing) ).
filterField rightInset:(ViewSpacing - halfSpacing).
filterField model:filterModel.
@@ -2180,14 +2180,14 @@
labelView := FilenameEditField in:labelFrame.
labelView
- origin:(halfSpacing @ (halfSpacing))
- extent:[((width // 4 * 3) - spacing - borderWidth)
- @
- (filterField heightIncludingBorder)
- "(font height + font descent)"
- ].
+ origin:(halfSpacing @ (halfSpacing))
+ extent:[((width // 4 * 3) - spacing - borderWidth)
+ @
+ (filterField heightIncludingBorder)
+ "(font height + font descent)"
+ ].
labelView menu:#labelMenu;
- aspect:#path; changeMessage:#pathChanged:.
+ aspect:#path; changeMessage:#pathChanged:.
labelView model:self.
labelView backgroundColor:(labelFrame viewBackground).
labelFrame model:self; menu:#labelMenu.
@@ -2223,7 +2223,7 @@
frame := VariableVerticalPanel origin:0.0@mH corner:1.0@1.0 in:self.
frame topInset:labelFrame height.
commandView notNil ifTrue:[
- frame bottomInset:(commandView height + spacing + spacing)
+ frame bottomInset:(commandView height + spacing + spacing)
].
topFrame := View in:frame.
@@ -2245,20 +2245,20 @@
fileListView menuHolder:self; menuPerformer:self; menuMessage:#fileListMenu.
fileListView allowDrag:true.
fileListView dragObjectConverter:[:obj |
- |dir nm path idx|
-
- nm := obj theObject asString.
- idx := fileListView list indexOf:nm.
- idx == 0 ifTrue:[
- "/ cannot happen ...
- nil
- ] ifFalse:[
- nm := fileList at:idx.
- dir := currentDirectory pathName asFilename.
- path := dir constructString:nm.
- DropObject newFile:path.
- ]
- ].
+ |dir nm path idx|
+
+ nm := obj theObject asString.
+ idx := fileListView list indexOf:nm.
+ idx == 0 ifTrue:[
+ "/ cannot happen ...
+ nil
+ ] ifFalse:[
+ nm := fileList at:idx.
+ dir := currentDirectory pathName asFilename.
+ path := dir constructString:nm.
+ DropObject newFile:path.
+ ]
+ ].
"/ sigh - must be delayed - origin is not yet fixe
"/ tabRulerView leftInset:(fileListView originRelativeTo:scrollView) x.
@@ -2269,7 +2269,7 @@
v origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
subView := v scrolledView.
(subView respondsTo:#directoryForFileDialog:) ifTrue:[
- subView directoryForFileDialog:currentDirectory
+ subView directoryForFileDialog:currentDirectory
].
"/ buttonPanel := HorizontalPanelView in:self.
@@ -2403,15 +2403,15 @@
"copy fileList to the clipBoard"
self setTextSelection:(fileListView list
- collect:[:l | |ll|
- ll := l string withoutSeparators.
- (ll endsWith:' ...') ifTrue:[
- ll copyWithoutLast:4
- ] ifFalse:[
- ll
- ]
- ])
- asStringCollection asString.
+ collect:[:l | |ll|
+ ll := l string withoutSeparators.
+ (ll endsWith:' ...') ifTrue:[
+ ll copyWithoutLast:4
+ ] ifFalse:[
+ ll
+ ]
+ ])
+ asStringCollection asString.
"Modified: / 17.8.1998 / 10:13:10 / cg"
!
@@ -2452,17 +2452,17 @@
msg := '\' withCRs , myClass name asBoldText, rev.
AboutBox isNil ifTrue:[
- "/ this handles bad installations of ST/X,
- "/ where the AboutBox is missing.
- "/ (May vanish in the future)
- ^ self information:msg
+ "/ this handles bad installations of ST/X,
+ "/ where the AboutBox is missing.
+ "/ (May vanish in the future)
+ ^ self information:msg
].
box := AboutBox title:msg.
image := self class defaultIcon.
image notNil ifTrue:[
- box image:image
+ box image:image
].
box label:'About This Application'.
box autoHideAfter:10 with:[].
@@ -2513,10 +2513,10 @@
"exit FileBrowser"
(self askIfModified:'contents has not been saved.\\Modifications will be lost when FileBrowser is closed.'
- yesButton:'close')
+ yesButton:'close')
ifTrue:[
- "/ self windowGroup closeDownViews.
- super closeRequest
+ "/ self windowGroup closeDownViews.
+ super closeRequest
]
"Created: / 3.8.1998 / 19:55:06 / cg"
@@ -2618,7 +2618,7 @@
"sent from label menu to change back to a previous directory"
self discardChangesDialog ifTrue:[
- self doChangeCurrentDirectoryTo:aDirectoryName updateHistory:true "/false.
+ self doChangeCurrentDirectoryTo:aDirectoryName updateHistory:true "/false.
].
"Modified: / 2.10.1997 / 14:09:24 / stefan"
@@ -2687,62 +2687,62 @@
|items menu currentIndex|
items := #(
- ('copy path' copyPath )
- ('-' )
- ('up' changeToParentDirectory )
- ('back' changeToPreviousDirectory )
- ('change to home-directory' changeToHomeDirectory )
- ('change to default-directory' changeToDefaultDirectory )
- ('change directory ...' changeCurrentDirectory )
- ).
+ ('copy path' copyPath )
+ ('-' )
+ ('up' changeToParentDirectory )
+ ('back' changeToPreviousDirectory )
+ ('change to home-directory' changeToHomeDirectory )
+ ('change to default-directory' changeToDefaultDirectory )
+ ('change directory ...' changeCurrentDirectory )
+ ).
(JavaClassReader notNil and:[JavaClassReader isLoaded]) ifTrue:[
- items := items , #(
- ( '-')
- ( 'add to JavaClassPath' addDirToJavaClassPath)
- ( 'add to JavaSourcePath' addDirToJavaSourcePath)
- ( 'remove from JavaClassPath' removeDirFromJavaClassPath)
- ( 'remove from JavaSourcePath' removeDirFromJavaSourcePath)
- ).
+ items := items , #(
+ ( '-')
+ ( 'add to JavaClassPath' addDirToJavaClassPath)
+ ( 'add to JavaSourcePath' addDirToJavaSourcePath)
+ ( 'remove from JavaClassPath' removeDirFromJavaClassPath)
+ ( 'remove from JavaSourcePath' removeDirFromJavaSourcePath)
+ ).
].
DirectoryHistory size > 0 ifTrue:[
- items := items copyWith:#('-').
- items := items ,
- (DirectoryHistory
- collect:[:dirName |
- Array
- with:dirName
- with:#changeDirectoryTo:
- with:nil
- with:dirName
- ]
- ).
- currentIndex := items findFirst:[:i | (i at:1) = currentDirectory pathName].
- currentIndex == 0 ifTrue:[currentIndex := nil].
+ items := items copyWith:#('-').
+ items := items ,
+ (DirectoryHistory
+ collect:[:dirName |
+ Array
+ with:dirName
+ with:#changeDirectoryTo:
+ with:nil
+ with:dirName
+ ]
+ ).
+ currentIndex := items findFirst:[:i | (i at:1) = currentDirectory pathName].
+ currentIndex == 0 ifTrue:[currentIndex := nil].
].
menu := PopUpMenu
- itemList:items
- resources:resources.
+ itemList:items
+ resources:resources.
previousDirectory isNil ifTrue:[
- menu disable:#changeToPreviousDirectory.
+ menu disable:#changeToPreviousDirectory.
].
currentIndex notNil ifTrue:[
- menu disable:currentIndex
+ menu disable:currentIndex
].
(JavaClassReader notNil and:[JavaClassReader isLoaded]) ifTrue:[
- (Java classPath includes:currentDirectory pathName) ifTrue:[
- menu disable:#addDirToJavaClassPath
- ] ifFalse:[
- menu disable:#removeDirFromJavaClassPath
- ].
- (Java sourcePath includes:currentDirectory pathName) ifTrue:[
- menu disable:#addDirToJavaSourcePath
- ] ifFalse:[
- menu disable:#removeDirFromJavaSourcePath
- ].
+ (Java classPath includes:currentDirectory pathName) ifTrue:[
+ menu disable:#addDirToJavaClassPath
+ ] ifFalse:[
+ menu disable:#removeDirFromJavaClassPath
+ ].
+ (Java sourcePath includes:currentDirectory pathName) ifTrue:[
+ menu disable:#addDirToJavaSourcePath
+ ] ifFalse:[
+ menu disable:#removeDirFromJavaSourcePath
+ ].
].
^menu.
@@ -2843,12 +2843,12 @@
osName := OperatingSystem platformName.
box := FilenameEnterBox
- title:(resources string:'execute %1 command:' with:osName)
- okText:(resources string:'execute')
- action:aBlock.
+ title:(resources string:'execute %1 command:' with:osName)
+ okText:(resources string:'execute')
+ action:aBlock.
fileName notNil ifTrue:[
- self initialCommandFor:fileName into:box.
+ self initialCommandFor:fileName into:box.
].
box directory:currentDirectory.
box showAtPointer.
@@ -2907,11 +2907,11 @@
sel := fileListView selection.
sel notNil ifTrue:[
- self withWaitCursorDo:[
- sel do:[:aSelectionIndex |
- aBlock value:(fileList at:aSelectionIndex )
- ]
- ]
+ self withWaitCursorDo:[
+ sel do:[:aSelectionIndex |
+ aBlock value:(fileList at:aSelectionIndex )
+ ]
+ ]
]
"Modified: / 18.6.1998 / 15:29:06 / cg"
@@ -2947,18 +2947,18 @@
newCollection := aCollection species new.
aCollection do:[:fname |
- |ignore|
-
- ignore := false.
-
- ((fname startsWith:'.') and:[fname ~= '..']) ifTrue:[
- showingHiddenFiles value "showDotFiles" ifFalse:[
- ignore := true
- ]
- ].
- ignore ifFalse:[
- newCollection add:fname
- ]
+ |ignore|
+
+ ignore := false.
+
+ ((fname startsWith:'.') and:[fname ~= '..']) ifTrue:[
+ showingHiddenFiles value "showDotFiles" ifFalse:[
+ ignore := true
+ ]
+ ].
+ ignore ifFalse:[
+ newCollection add:fname
+ ]
].
^ newCollection
@@ -3021,13 +3021,13 @@
kill will make me raise the stopSignal when pressed
"
killButton
- action:[
- stream notNil ifTrue:[
- access critical:[
- myProcess interruptWith:[stopSignal raiseRequest].
- ]
- ]
- ].
+ action:[
+ stream notNil ifTrue:[
+ access critical:[
+ myProcess interruptWith:[stopSignal raiseRequest].
+ ]
+ ]
+ ].
"
pause makes me stop reading the commands output
@@ -3035,11 +3035,11 @@
pauseHolder := false asValue.
pauseToggle model:pauseHolder.
pauseToggle pressAction:[
- stream notNil ifTrue:[
- access critical:[
- myProcess interruptWith:[pauseSignal raiseRequest].
- ]
- ]
+ stream notNil ifTrue:[
+ access critical:[
+ myProcess interruptWith:[pauseSignal raiseRequest].
+ ]
+ ]
].
@@ -3063,177 +3063,177 @@
self label:(myName , ': executing ' , (command copyTo:(20 min:command size)) , ' ...').
[
self withWaitCursorDo:[
- stopSignal catch:[
- pauseSignal handle:[:ex|
- |noPauseSema|
-
- "/
- "/ allow interaction with
- "/ the codeView via the other windowGroup
- "/
- lowerFrameView windowGroup:(killButton windowGroup).
-
- "/
- "/ wait for pause to be turned off
- "/
- noPauseSema := Semaphore new.
- pauseHolder onChangeSend:#signal to:noPauseSema.
- noPauseSema wait.
-
- "/
- "/ no interaction with the codeView ...
- "/
- lowerFrameView windowGroup:(self windowGroup).
- ex proceed.
- ] do:[
- startLine := subView cursorLine.
- startCol := subView cursorCol.
-
- "
- this can be a time consuming operation; therefore lower my priority
- "
- myProcess := Processor activeProcess.
- myPriority := myProcess priority.
- myProcess priority:(Processor userBackgroundPriority).
-
- stream := PipeStream
- readingFrom:command
- errorDisposition:#inline
- inDirectory:currentDirectory.
- stream notNil ifTrue:[
- [
- |codeView lines noPauseSema enc|
-
- enc := fileEncoding.
- enc == #iso8859 ifTrue:[
- enc := nil
- ].
-
- stream buffered:true.
- codeView := subView.
- codeView unselect.
-
- replace ifTrue:[
- codeView list:nil.
- lnr := 1.
- ].
-
- stillReplacing := replace.
-
- [stream readWait. stream atEnd] whileFalse:[
- "
- data available; read up to 100 lines
- and insert as a single junk. This speeds up
- display of long output (less line-scrolling).
- "
- lines := OrderedCollection new:100.
-
- [
- line := stream nextLine.
- line notNil ifTrue:[
- enc notNil ifTrue:[
- line := line decodeFrom:enc
- ].
- lines add:line
- ].
- ] doWhile:[
- stream canReadWithoutBlocking
- and:[stream atEnd not
- and:[lines size < 100]]
- ].
-
- "
- need this critical section; otherwise,
- we could get the signal while waiting for
- an expose event ...
- "
- access critical:[
- lines size > 0 ifTrue:[
- stillReplacing ifTrue:[
- lines do:[:line |
- codeView at:lnr put:line withTabsExpanded.
- codeView cursorToBottom; cursorDown:1.
- lnr := lnr + 1.
- lnr > codeView list size ifTrue:[
- stillReplacing := false
- ]
- ].
- ] ifFalse:[
- codeView insertLines:lines before:codeView cursorLine.
- codeView cursorDown:lines size.
- ]
- ].
- ].
-
- "
- give others running at same prio a chance too
- (especially other FileBrowsers doing the same)
- "
- Processor yield
- ].
- ] valueNowOrOnUnwindDo:[
- stream shutDown "close". stream := nil.
- ].
-
- "/
- "/ the command could have changed the directory
- "/
- self updateCurrentDirectoryIfChanged
- ].
- replace ifTrue:[
- subView modified:false.
- ].
- ]
- ]
+ stopSignal catch:[
+ pauseSignal handle:[:ex|
+ |noPauseSema|
+
+ "/
+ "/ allow interaction with
+ "/ the codeView via the other windowGroup
+ "/
+ lowerFrameView windowGroup:(killButton windowGroup).
+
+ "/
+ "/ wait for pause to be turned off
+ "/
+ noPauseSema := Semaphore new.
+ pauseHolder onChangeSend:#signal to:noPauseSema.
+ noPauseSema wait.
+
+ "/
+ "/ no interaction with the codeView ...
+ "/
+ lowerFrameView windowGroup:(self windowGroup).
+ ex proceed.
+ ] do:[
+ startLine := subView cursorLine.
+ startCol := subView cursorCol.
+
+ "
+ this can be a time consuming operation; therefore lower my priority
+ "
+ myProcess := Processor activeProcess.
+ myPriority := myProcess priority.
+ myProcess priority:(Processor userBackgroundPriority).
+
+ stream := PipeStream
+ readingFrom:command
+ errorDisposition:#inline
+ inDirectory:currentDirectory.
+ stream notNil ifTrue:[
+ [
+ |codeView lines noPauseSema enc|
+
+ enc := fileEncoding.
+ enc == #iso8859 ifTrue:[
+ enc := nil
+ ].
+
+ stream buffered:true.
+ codeView := subView.
+ codeView unselect.
+
+ replace ifTrue:[
+ codeView list:nil.
+ lnr := 1.
+ ].
+
+ stillReplacing := replace.
+
+ [stream readWait. stream atEnd] whileFalse:[
+ "
+ data available; read up to 100 lines
+ and insert as a single junk. This speeds up
+ display of long output (less line-scrolling).
+ "
+ lines := OrderedCollection new:100.
+
+ [
+ line := stream nextLine.
+ line notNil ifTrue:[
+ enc notNil ifTrue:[
+ line := line decodeFrom:enc
+ ].
+ lines add:line
+ ].
+ ] doWhile:[
+ stream canReadWithoutBlocking
+ and:[stream atEnd not
+ and:[lines size < 100]]
+ ].
+
+ "
+ need this critical section; otherwise,
+ we could get the signal while waiting for
+ an expose event ...
+ "
+ access critical:[
+ lines size > 0 ifTrue:[
+ stillReplacing ifTrue:[
+ lines do:[:line |
+ codeView at:lnr put:line withTabsExpanded.
+ codeView cursorToBottom; cursorDown:1.
+ lnr := lnr + 1.
+ lnr > codeView list size ifTrue:[
+ stillReplacing := false
+ ]
+ ].
+ ] ifFalse:[
+ codeView insertLines:lines before:codeView cursorLine.
+ codeView cursorDown:lines size.
+ ]
+ ].
+ ].
+
+ "
+ give others running at same prio a chance too
+ (especially other FileBrowsers doing the same)
+ "
+ Processor yield
+ ].
+ ] valueNowOrOnUnwindDo:[
+ stream shutDown "close". stream := nil.
+ ].
+
+ "/
+ "/ the command could have changed the directory
+ "/
+ self updateCurrentDirectoryIfChanged
+ ].
+ replace ifTrue:[
+ subView modified:false.
+ ].
+ ]
+ ]
]
] valueNowOrOnUnwindDo:[
- |wg|
-
- self label:myName; iconLabel:myName.
- myProcess notNil ifTrue:[myProcess priority:myPriority].
-
- "
- hide the button, and make sure it will stay
- hidden when we are realized again
- "
- killButton beInvisible.
- pauseToggle beInvisible.
-
- commandView beVisible.
-
- "
- remove the killButton from its group
- (otherwise, it will be destroyed when we shut down the group)
- "
- wg := killButton windowGroup.
- killButton windowGroup:nil.
- pauseToggle windowGroup:nil.
-
- "
- shut down the kill buttons windowgroup
- "
- wg notNil ifTrue:[
- wg process terminate.
- ].
- "
- clear its action (actually not needed, but
- releases reference to thisContext earlier)
- "
- killButton action:nil.
- pauseToggle pressAction:nil.
- "/
- "/ allow interaction with the codeView
- "/ (bring it back into my group)
- "/
- lowerFrameView windowGroup:(self windowGroup).
+ |wg|
+
+ self label:myName; iconLabel:myName.
+ myProcess notNil ifTrue:[myProcess priority:myPriority].
+
+ "
+ hide the button, and make sure it will stay
+ hidden when we are realized again
+ "
+ killButton beInvisible.
+ pauseToggle beInvisible.
+
+ commandView beVisible.
+
+ "
+ remove the killButton from its group
+ (otherwise, it will be destroyed when we shut down the group)
+ "
+ wg := killButton windowGroup.
+ killButton windowGroup:nil.
+ pauseToggle windowGroup:nil.
+
+ "
+ shut down the kill buttons windowgroup
+ "
+ wg notNil ifTrue:[
+ wg process terminate.
+ ].
+ "
+ clear its action (actually not needed, but
+ releases reference to thisContext earlier)
+ "
+ killButton action:nil.
+ pauseToggle pressAction:nil.
+ "/
+ "/ allow interaction with the codeView
+ "/ (bring it back into my group)
+ "/
+ lowerFrameView windowGroup:(self windowGroup).
].
currentFileName isNil ifTrue:[
- subView modified:false.
+ subView modified:false.
].
subView size > 10000 ifTrue:[
- self warn:'text quite large now - please cut off some lines'
+ self warn:'text quite large now - please cut off some lines'
]
"Modified: / 21.9.1995 / 11:18:46 / claus"
@@ -3275,116 +3275,116 @@
path := currentDirectory filenameFor:fileName.
(path type == #regular) ifTrue:[
- path isExecutableProgram ifTrue:[
- aBox initialText:(fileName , ' <arguments>').
- ^ self
- ].
-
- select := true.
-
- "some heuristics - my personal preferences ...
- (actually this should come from a configfile)"
-
- (fileName endsWith:'akefile') ifTrue:[
- aBox initialText:'make target' selectFrom:6 to:11.
- ^ self
- ].
-
- suffix := path suffix.
- (suffix = 'C') ifTrue:[
- cmd := 'g++ -c %1'.
- select := 6.
- ] ifFalse:[
- suffix := suffix asLowercase.
- (suffix = 'taz') ifTrue:[
- aBox initialText:'zcat %1 | tar tvf -'.
- select := false.
- ].
- (suffix = 'tar') ifTrue:[
- cmd := 'tar tvf %1'.
- select := 7.
- ].
- (suffix = 'zoo') ifTrue:[
- cmd := 'zoo -list %1'.
- select := 9.
- ].
- (suffix = 'zip') ifTrue:[
- cmd := 'unzip -l %1'.
- select := 8.
- ].
- (suffix = 'jar') ifTrue:[
- cmd := 'unzip -l %1'.
- select := 8.
- ].
- (suffix = 'z') ifTrue:[
- (fileName endsWith:'tar.z') ifTrue:[
- cmd := 'zcat %1 | tar tvf -'.
- select := false.
- ] ifFalse:[
- cmd := 'uncompress %1'
- ].
- ].
- (suffix = 'gz') ifTrue:[
- (fileName endsWith:'tar.gz') ifTrue:[
- cmd := ('gunzip < %1 | tar tvf -' ).
- select := false.
- ] ifFalse:[
- cmd := 'gunzip %1'.
- ].
- ].
- (suffix = 'tgz') ifTrue:[
- cmd := ('gunzip < %1 | tar tvf -' ).
- select := false.
- ].
- (suffix = 'html') ifTrue:[
- cmd := 'netscape %1'
- ].
- (suffix = 'htm') ifTrue:[
- cmd := 'netscape %1'
- ].
- (suffix = 'uue') ifTrue:[
- cmd := 'uudecode %1'
- ].
- (suffix = 'c') ifTrue:[
- cmd := 'cc -c %1'.
- select := 5.
- ].
- (suffix = 'cc') ifTrue:[
- cmd := 'g++ -c %1'.
- select := 6.
- ].
- (suffix = 'xbm') ifTrue:[
- cmd := 'bitmap %1'
- ].
- (suffix = 'ps') ifTrue:[
- cmd := 'ghostview %1'
- ].
- ((suffix = '1') or:[suffix = 'man']) ifTrue:[
- cmd := 'nroff -man %1'.
- select := 10.
- ].
- ].
-
- cmd isNil ifTrue:[
- DefaultCommandPerSuffix isNil ifTrue:[
- cmd := '<cmd>'
- ] ifFalse:[
- cmd := DefaultCommandPerSuffix
- at:suffix
- ifAbsent:'<cmd>'.
- ].
- cmd := cmd , ' %1'.
- ].
-
- cmd := cmd bindWith:fileName.
- select == false ifTrue:[
- aBox initialText:cmd
- ] ifFalse:[
- select isInteger ifFalse:[
- select := (cmd indexOf:Character space ifAbsent:[cmd size + 1]) - 1.
- ].
- aBox initialText:cmd selectFrom:1 to:select
- ]
+ path isExecutableProgram ifTrue:[
+ aBox initialText:(fileName , ' <arguments>').
+ ^ self
+ ].
+
+ select := true.
+
+ "some heuristics - my personal preferences ...
+ (actually this should come from a configfile)"
+
+ (fileName endsWith:'akefile') ifTrue:[
+ aBox initialText:'make target' selectFrom:6 to:11.
+ ^ self
+ ].
+
+ suffix := path suffix.
+ (suffix = 'C') ifTrue:[
+ cmd := 'g++ -c %1'.
+ select := 6.
+ ] ifFalse:[
+ suffix := suffix asLowercase.
+ (suffix = 'taz') ifTrue:[
+ aBox initialText:'zcat %1 | tar tvf -'.
+ select := false.
+ ].
+ (suffix = 'tar') ifTrue:[
+ cmd := 'tar tvf %1'.
+ select := 7.
+ ].
+ (suffix = 'zoo') ifTrue:[
+ cmd := 'zoo -list %1'.
+ select := 9.
+ ].
+ (suffix = 'zip') ifTrue:[
+ cmd := 'unzip -l %1'.
+ select := 8.
+ ].
+ (suffix = 'jar') ifTrue:[
+ cmd := 'unzip -l %1'.
+ select := 8.
+ ].
+ (suffix = 'z') ifTrue:[
+ (fileName endsWith:'tar.z') ifTrue:[
+ cmd := 'zcat %1 | tar tvf -'.
+ select := false.
+ ] ifFalse:[
+ cmd := 'uncompress %1'
+ ].
+ ].
+ (suffix = 'gz') ifTrue:[
+ (fileName endsWith:'tar.gz') ifTrue:[
+ cmd := ('gunzip < %1 | tar tvf -' ).
+ select := false.
+ ] ifFalse:[
+ cmd := 'gunzip %1'.
+ ].
+ ].
+ (suffix = 'tgz') ifTrue:[
+ cmd := ('gunzip < %1 | tar tvf -' ).
+ select := false.
+ ].
+ (suffix = 'html') ifTrue:[
+ cmd := 'netscape %1'
+ ].
+ (suffix = 'htm') ifTrue:[
+ cmd := 'netscape %1'
+ ].
+ (suffix = 'uue') ifTrue:[
+ cmd := 'uudecode %1'
+ ].
+ (suffix = 'c') ifTrue:[
+ cmd := 'cc -c %1'.
+ select := 5.
+ ].
+ (suffix = 'cc') ifTrue:[
+ cmd := 'g++ -c %1'.
+ select := 6.
+ ].
+ (suffix = 'xbm') ifTrue:[
+ cmd := 'bitmap %1'
+ ].
+ (suffix = 'ps') ifTrue:[
+ cmd := 'ghostview %1'
+ ].
+ ((suffix = '1') or:[suffix = 'man']) ifTrue:[
+ cmd := 'nroff -man %1'.
+ select := 10.
+ ].
+ ].
+
+ cmd isNil ifTrue:[
+ DefaultCommandPerSuffix isNil ifTrue:[
+ cmd := '<cmd>'
+ ] ifFalse:[
+ cmd := DefaultCommandPerSuffix
+ at:suffix
+ ifAbsent:'<cmd>'.
+ ].
+ cmd := cmd , ' %1'.
+ ].
+
+ cmd := cmd bindWith:fileName.
+ select == false ifTrue:[
+ aBox initialText:cmd
+ ] ifFalse:[
+ select isInteger ifFalse:[
+ select := (cmd indexOf:Character space ifAbsent:[cmd size + 1]) - 1.
+ ].
+ aBox initialText:cmd selectFrom:1 to:select
+ ]
]
"Modified: / 24.9.1997 / 16:34:52 / stefan"
@@ -3465,79 +3465,79 @@
|oldSelection nOld newState msg newLabel t|
shown ifTrue:[
- currentDirectory notNil ifTrue:[
- lockUpdate ifTrue:[
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
- ^ self
- ].
-
- subView modified ifTrue:[
- newState := ' (modified)'
- ].
-
- (currentDirectory isReadable) ifTrue:[
- Processor removeTimedBlock:checkBlock.
-
- t := currentDirectory modificationTime.
- (t notNil and:[t > timeOfLastCheck]) ifTrue:[
- nOld := fileListView numberOfSelections.
- oldSelection := fileListView selectionValue.
- self updateCurrentDirectory.
- nOld ~~ 0 ifTrue:[
- nOld > 1 ifTrue:[
- oldSelection do:[:element |
- fileListView addElementToSelection:element
- ]
- ] ifFalse:[
- fileListView selectElementWithoutScroll:oldSelection
- ]
- ].
- ] ifFalse:[
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta
- ].
-
- currentFileName notNil ifTrue:[
- |f|
- f := currentDirectory construct:currentFileName.
- f exists ifFalse:[
- newState := ' (removed)'.
- ] ifTrue:[
- f modificationTime > timeOfFileRead ifTrue:[
- newState := ' (outdated)'.
- subView modified ifTrue:[
- newState := ' (modified & outdated)'
- ]
- ].
- ].
- ].
- ] ifFalse:[
- "
- if the directory has been deleted, or is not readable ...
- "
- (currentDirectory exists) ifFalse:[
- msg := 'FileBrowser:\\directory %1 is gone ?!!?'
- ] ifTrue:[
- msg := 'FileBrowser:\\directory %1 is no longer readable ?!!?'
- ].
- self warn:(resources string:msg with:currentDirectory pathName) withCRs.
-
- fileListView contents:nil.
- newLabel := myName , ': directory is gone !!'.
- "/ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
- ].
-
- newState notNil ifTrue:[
- newLabel := myName.
- currentFileName notNil ifTrue:[
- newLabel := newLabel , ': ' , currentFileName
- ].
- newLabel := newLabel , newState.
- ].
- newLabel notNil ifTrue:[
- self label:newLabel.
- ]
- ]
+ currentDirectory notNil ifTrue:[
+ lockUpdate ifTrue:[
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ ^ self
+ ].
+
+ subView modified ifTrue:[
+ newState := ' (modified)'
+ ].
+
+ (currentDirectory isReadable) ifTrue:[
+ Processor removeTimedBlock:checkBlock.
+
+ t := currentDirectory modificationTime.
+ (t notNil and:[t > timeOfLastCheck]) ifTrue:[
+ nOld := fileListView numberOfSelections.
+ oldSelection := fileListView selectionValue.
+ self updateCurrentDirectory.
+ nOld ~~ 0 ifTrue:[
+ nOld > 1 ifTrue:[
+ oldSelection do:[:element |
+ fileListView addElementToSelection:element
+ ]
+ ] ifFalse:[
+ fileListView selectElementWithoutScroll:oldSelection
+ ]
+ ].
+ ] ifFalse:[
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ ].
+
+ currentFileName notNil ifTrue:[
+ |f|
+ f := currentDirectory construct:currentFileName.
+ f exists ifFalse:[
+ newState := ' (removed)'.
+ ] ifTrue:[
+ f modificationTime > timeOfFileRead ifTrue:[
+ newState := ' (outdated)'.
+ subView modified ifTrue:[
+ newState := ' (modified & outdated)'
+ ]
+ ].
+ ].
+ ].
+ ] ifFalse:[
+ "
+ if the directory has been deleted, or is not readable ...
+ "
+ (currentDirectory exists) ifFalse:[
+ msg := 'FileBrowser:\\directory %1 is gone ?!!?'
+ ] ifTrue:[
+ msg := 'FileBrowser:\\directory %1 is no longer readable ?!!?'
+ ].
+ self warn:(resources string:msg with:currentDirectory pathName) withCRs.
+
+ fileListView contents:nil.
+ newLabel := myName , ': directory is gone !!'.
+ "/ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ ].
+
+ newState notNil ifTrue:[
+ newLabel := myName.
+ currentFileName notNil ifTrue:[
+ newLabel := newLabel , ': ' , currentFileName
+ ].
+ newLabel := newLabel , newState.
+ ].
+ newLabel notNil ifTrue:[
+ self label:newLabel.
+ ]
+ ]
]
"Modified: / 28.4.1997 / 22:31:02 / dq"
@@ -3687,7 +3687,7 @@
((t := currentDirectory modificationTime) isNil
or:[t > timeOfLastCheck]) ifTrue:[
- self updateCurrentDirectory
+ self updateCurrentDirectory
]
"Modified: / 16.9.1997 / 15:35:52 / stefan"
@@ -3962,63 +3962,63 @@
lockUpdate := true.
[
- self selectedFilesDo:[:fileName |
- |contents|
-
- f := currentDirectory construct:fileName.
- OperatingSystem accessDeniedErrorSignal handle:[:ex|
- "was not able to remove it"
- msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
- self showAlert:msg with:(OperatingSystem lastErrorString)
- ] do:[
- (f isSymbolicLink not and:[f isDirectory]) ifTrue:[
- contents := f directoryContents.
- contents isEmpty ifTrue:[
- f remove
- ] ifFalse:[
- (self
- ask:(resources string:'directory ''%1'' is not empty\remove anyway ?' with:fileName)
- yesButton:'remove')
- ifFalse:[
- ^ self
- ].
- f recursiveRemove
- ].
- ] ifFalse:[
- f remove.
- ].
+ self selectedFilesDo:[:fileName |
+ |contents|
+
+ f := currentDirectory construct:fileName.
+ OperatingSystem accessDeniedErrorSignal handle:[:ex|
+ "was not able to remove it"
+ msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
+ self showAlert:msg with:(OperatingSystem lastErrorString)
+ ] do:[
+ (f isSymbolicLink not and:[f isDirectory]) ifTrue:[
+ contents := f directoryContents.
+ contents isEmpty ifTrue:[
+ f remove
+ ] ifFalse:[
+ (self
+ ask:(resources string:'directory ''%1'' is not empty\remove anyway ?' with:fileName)
+ yesButton:'remove')
+ ifFalse:[
+ ^ self
+ ].
+ f recursiveRemove
+ ].
+ ] ifFalse:[
+ f remove.
+ ].
"
- self show:nil
+ self show:nil
"
- idx := fileList indexOf:fileName.
- idx ~~ 0 ifTrue:[
- toRemove add:idx.
- ]
- ].
- ].
+ idx := fileList indexOf:fileName.
+ idx ~~ 0 ifTrue:[
+ toRemove add:idx.
+ ]
+ ].
+ ].
] valueNowOrOnUnwindDo:[
- lockUpdate := false.
- fileListView setSelection:nil.
-
- "/
- "/ remove reverse - otherwise indices are wrong
- "/
- toRemove sort.
- toRemove reverseDo:[:idx |
- fileList removeIndex:idx.
- fileListView removeIndex:idx.
- ].
-
- updateRunning ifTrue:[
- self updateCurrentDirectory
- ] ifFalse:[
- "
- install a new check after some time
- "
- needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
- Processor removeTimedBlock:checkBlock.
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
- ]
+ lockUpdate := false.
+ fileListView setSelection:nil.
+
+ "/
+ "/ remove reverse - otherwise indices are wrong
+ "/
+ toRemove sort.
+ toRemove reverseDo:[:idx |
+ fileList removeIndex:idx.
+ fileListView removeIndex:idx.
+ ].
+
+ updateRunning ifTrue:[
+ self updateCurrentDirectory
+ ] ifFalse:[
+ "
+ install a new check after some time
+ "
+ needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
+ Processor removeTimedBlock:checkBlock.
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
+ ]
]
"Modified: / 20.11.1997 / 17:39:14 / stefan"
@@ -4612,74 +4612,74 @@
f := currentDirectory construct:aFilenameString.
f isDirectory ifTrue:[
- f isSymbolicLink ifTrue:[
- key := #directoryLink
- ] ifFalse:[
- key := #directory.
- (f isReadable not or:[f isExecutable not]) ifTrue:[
- key := #directoryLocked
- ].
- ]
+ f isSymbolicLink ifTrue:[
+ key := #directoryLink
+ ] ifFalse:[
+ key := #directory.
+ (f isReadable not or:[f isExecutable not]) ifTrue:[
+ key := #directoryLocked
+ ].
+ ]
] ifFalse:[
- f isSymbolicLink ifTrue:[
- f isReadable not ifTrue:[
- key := #fileLocked
- ] ifFalse:[
- key := #fileLink
- ]
- ] ifFalse:[
- key := key2 := #file.
- f isExecutable ifTrue:[
- key := key2 := #executableFile
- ].
- (f isReadable not) ifTrue:[
- key := #fileLocked
- ] ifFalse:[
- suff := f suffix.
- mimeType := MIMETypes mimeTypeForSuffix:suff.
- mimeType notNil ifTrue:[
- (mimeType startsWith:'image/') ifTrue:[
- key := #imageFile
- ] ifFalse:[
- (mimeType startsWith:'text/') ifTrue:[
- key := #textFile
- ]
- ]
- ].
- ].
- ].
+ f isSymbolicLink ifTrue:[
+ f isReadable not ifTrue:[
+ key := #fileLocked
+ ] ifFalse:[
+ key := #fileLink
+ ]
+ ] ifFalse:[
+ key := key2 := #file.
+ f isExecutableProgram ifTrue:[
+ key := key2 := #executableFile
+ ].
+ (f isReadable not) ifTrue:[
+ key := #fileLocked
+ ] ifFalse:[
+ suff := f suffix.
+ mimeType := MIMETypes mimeTypeForSuffix:suff.
+ mimeType notNil ifTrue:[
+ (mimeType startsWith:'image/') ifTrue:[
+ key := #imageFile
+ ] ifFalse:[
+ (mimeType startsWith:'text/') ifTrue:[
+ key := #textFile
+ ]
+ ]
+ ].
+ ].
+ ].
].
"/ local (device) icons
icons notNil ifTrue:[
- mimeType notNil ifTrue:[
- icn := icons at:mimeType ifAbsent:nil.
- icn notNil ifTrue:[^ icn].
- ].
- icn := icons at:key ifAbsent:nil.
- icn notNil ifTrue:[^ icn].
+ mimeType notNil ifTrue:[
+ icn := icons at:mimeType ifAbsent:nil.
+ icn notNil ifTrue:[^ icn].
+ ].
+ icn := icons at:key ifAbsent:nil.
+ icn notNil ifTrue:[^ icn].
].
"/ global icons
Icons notNil ifTrue:[
- mimeType notNil ifTrue:[
- icn := Icons at:mimeType ifAbsent:nil.
- ].
- icn notNil ifTrue:[
- key := mimeType
- ] ifFalse:[
- icn := Icons at:key ifAbsent:nil.
- ].
+ mimeType notNil ifTrue:[
+ icn := Icons at:mimeType ifAbsent:nil.
+ ].
+ icn notNil ifTrue:[
+ key := mimeType
+ ] ifFalse:[
+ icn := Icons at:key ifAbsent:nil.
+ ].
].
icn isNil ifTrue:[
- ( (key := key2) isNil
- or:[(icn := icons at:key ifAbsent:nil) notNil
- or:[(icn := Icons at:key ifAbsent:nil) isNil]]
- ) ifTrue:[
- ^ icn
- ]
+ ( (key := key2) isNil
+ or:[(icn := icons at:key ifAbsent:nil) notNil
+ or:[(icn := Icons at:key ifAbsent:nil) isNil]]
+ ) ifTrue:[
+ ^ icn
+ ]
].
"/ remember device icon
@@ -4720,13 +4720,13 @@
"
self withReadCursorDo:[
- |files matchPattern list passDone f|
-
- self stopUpdateProcess.
-
- timeOfLastCheck := AbsoluteTime now.
-
- files := currentDirectory asFilename fullDirectoryContents.
+ |files matchPattern list passDone f|
+
+ self stopUpdateProcess.
+
+ timeOfLastCheck := AbsoluteTime now.
+
+ files := currentDirectory asFilename fullDirectoryContents.
"/ (files includes:(Filename parentDirectoryName)) ifTrue:[
"/ upButton enable.
@@ -4734,405 +4734,405 @@
"/ upButton disable.
"/ ].
- "/ show files which are either directories
- "/ or match the current pattern
-
- matchPattern := filterField contents.
- (matchPattern notNil and:[
- matchPattern isEmpty not and:[
- matchPattern ~= '*']]) ifTrue:[
- files := files select:[:aName |
- ((currentDirectory construct:aName) isDirectory)
- or:[matchPattern compoundMatch:aName]
- ].
- ].
-
- files size == 0 ifTrue:[
- self information:('directory ', currentDirectory pathName, ' vanished').
- ^ self
- ].
- (sortByWhat value == #name) ifTrue:[
- sortCaseless value == true ifTrue:[
- files sort:[:a :b | a asLowercase < b asLowercase]
- ] ifFalse:[
- files sort.
- ]
- ] ifFalse:[
- (sortByWhat value == #time) ifTrue:[
- files sort:[:a :b | |f1 f2 t1 t2|
- f1 := (currentDirectory construct:a).
- f2 := (currentDirectory construct:b).
- t1 := f1 isSymbolicLink
- ifFalse:[f1 modificationTime]
- ifTrue:[f1 linkInfo modified].
- t2 := f2 isSymbolicLink
- ifFalse:[f2 modificationTime]
- ifTrue:[f2 linkInfo modified].
- t1 := t1 ? (AbsoluteTime now).
- t2 := t2 ? (AbsoluteTime now).
- t1 > t2
- ]
- ] ifFalse:[
- (sortByWhat value == #type) ifTrue:[
- files sort:[:a :b | |f1 f2 t1 t2 suff1 suff2|
- f1 := (currentDirectory construct:a).
- f2 := (currentDirectory construct:b).
- t1 := f1 type ? #xbadLink.
- t2 := f2 type ? #xbadLink.
- t1 = t2 ifTrue:[
- suff1 := f1 suffix.
- suff2 := f2 suffix.
- suff1 = suff2 ifTrue:[
- sortCaseless value == true ifTrue:[
- a asLowercase < b asLowercase
- ] ifFalse:[
- a < b
- ]
- ] ifFalse:[
- suff1 asLowercase < suff2 asLowercase
- ]
- ] ifFalse:[
- t1 < t2
- ]
- ]
- ]
- ]
- ].
-
- files := self withoutHiddenFiles:files.
- fileList := files copy.
-
- tabSpec isNil ifTrue:[
- showingDetails value "showLongList" ifTrue:[
- self defineTabulatorsForLongList
- ] ifFalse:[
- self defineTabulatorsForShortList
- ].
- ].
-
- "/
- "/ first show all the names - this can be done fast ...
- "/
- list := files collect:[:fileName |
- |entry|
-
- entry := MultiColListEntry new.
- entry tabulatorSpecification:tabSpec.
- entry colAt:1 put:nil.
- entry colAt:2 put:fileName.
- ].
-
- fileListView setList:list expandTabs:false.
- passDone := Array new:list size withAll:0.
-
- "
- this is a time consuming operation (especially, if reading an
- NFS-mounted directory); therefore, start a low prio process,
- which fills in the remaining fields in the fileList ...
- "
-
- listUpdateProcess := [
- |prevUid prevGid fileNameString nameString groupString
- modeString info line len
- anyImages lineIndex aFileName
- entry typ f p typeString done endIndex
- state stopAtEnd nextState img prevFirstLine prevLastLine
- numVisible dirSuffix|
-
- dirSuffix := Filename directorySuffix.
- dirSuffix size > 0 ifTrue:[
- dirSuffix := '.' , dirSuffix asLowercase.
- ].
-
- "/
- "/ then walk over the files, adding more info
- "/ (since we have to stat each file, this may take a while longer)
- "/ Visible items are always filled first.
-
- "/
- "/ the state machine
- "/
- nextState := IdentityDictionary new.
- showingDetails value "showLongList" ifTrue:[
- nextState add:(#visibleIcons -> #visibleAttributes).
- nextState add:(#visibleAttributes -> #visibleTypes).
- nextState add:(#visibleTypes -> #visibleImages).
- nextState add:(#visibleImages -> #nextPageIcons).
-
- nextState add:(#nextPageIcons -> #nextPageAttributes).
- nextState add:(#nextPageAttributes -> #nextPageTypes).
- nextState add:(#nextPageTypes -> #nextPageImages).
- nextState add:(#nextPageImages -> #previousPageIcons).
-
- nextState add:(#previousPageIcons -> #previousPageAttributes).
- nextState add:(#previousPageAttributes -> #previousPageTypes).
- nextState add:(#previousPageTypes -> #previousPageImages).
- nextState add:(#previousPageImages -> #remainingIcons).
-
- nextState add:(#remainingIcons -> #remainingAttributes).
- nextState add:(#remainingAttributes -> #remainingTypes).
- nextState add:(#remainingTypes -> #remainingImages).
- nextState add:(#remainingImages -> nil).
- ] ifFalse:[
- nextState add:(#visibleIcons -> #nextPageIcons).
- nextState add:(#nextPageIcons -> #previousPageIcons).
- nextState add:(#previousPageIcons -> #remainingIcons).
- nextState add:(#remainingIcons -> nil).
- ].
-
- anyImages := false.
-
- lineIndex := prevFirstLine := fileListView firstLineShown.
- endIndex := prevLastLine := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- state := #visibleIcons.
-
- done := false.
- [done] whileFalse:[
- "/
- "/ if multiple FileBrowsers are reading, let others
- "/ make some progress too
- "/
- Processor yield.
-
- "/
- "/ could be destroyed in the meanwhile ...
- "/
- realized ifFalse:[
- listUpdateProcess := nil.
- Processor activeProcess terminate
- ].
-
- ((prevFirstLine ~~ fileListView firstLineShown)
- or:[prevLastLine ~~ fileListView lastLineShown]) ifTrue:[
- "/ start all over again
- lineIndex := prevFirstLine := fileListView firstLineShown.
- endIndex := prevLastLine := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- state := #visibleIcons.
- ].
-
- (lineIndex between:1 and:(files size)) ifTrue:[
-
- "/
- "/ expand the next entry ...
- "/
- aFileName := files at:lineIndex.
- entry := fileListView at:lineIndex.
- f := currentDirectory construct:aFileName.
-
- (state endsWith:'Icons') ifTrue:[
- "/
- "/ pass 1 - icons
- "/
- (passDone at:lineIndex) < 1 ifTrue:[
- (f isDirectory
- and:[(aFileName ~= '..') and:[aFileName ~= '.']]
- ) ifTrue:[
-
- "/ the following suffix cutOff is not really required,
- "/ but makes the list look better on VMS ...
- fileNameString := aFileName.
- dirSuffix notNil ifTrue:[
- (aFileName asLowercase endsWith:dirSuffix) ifTrue:[
- fileNameString := aFileName copyWithoutLast:(dirSuffix size).
- ]
- ].
- fileNameString := fileNameString , ' ...'
- ] ifFalse:[
- fileNameString := aFileName.
- OperatingSystem isVMSlike ifTrue:[
- (aFileName endsWith:'.') ifTrue:[
- aFileName ~= '..' ifTrue:[
- fileNameString := aFileName copyWithoutLast:1
- ]
- ]
- ]
- ].
-
- showingDetails value "showLongList" ifTrue:[
- len := fileNameString size.
- (len > 20) ifTrue:[
- fileNameString := (fileNameString contractTo:20)
- ].
- ].
-
- entry colAt:1 put:(self iconForFile:aFileName).
- entry colAt:2 put:fileNameString.
-
- "/fileListView at:lineIndex put:entry.
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
-
- anyImages ifFalse:[
- (Image isImageFileSuffix:(aFileName asFilename suffix))
- ifTrue:[
- anyImages := true
- ]
- ].
- passDone at:lineIndex put:1
- ]
- ].
-
- (state endsWith:'Attributes') ifTrue:[
- "/
- "/ pass 2 - everything except fileType (which takes very long)
- "/
- (passDone at:lineIndex) < 2 ifTrue:[
- info := f info.
- info isNil ifTrue:[
- "not accessable - usually a symlink,
- to a nonexisting/nonreadable file
- "
- f isSymbolicLink ifTrue:[
- p := f linkInfo path.
- typeString := 'broken symbolic link to ' , p
- ] ifFalse:[
- typeString := 'unknown'
- ].
- ] ifFalse:[
- typ := (info type).
-
- modeString := self getModeString:(info at:#mode)
- with:#( '' $r $w $x
- ' ' $r $w $x
- ' ' $r $w $x ).
- entry colAt:3 put:modeString.
-
- ((info uid) ~~ prevUid) ifTrue:[
- prevUid := (info uid).
- nameString := OperatingSystem getUserNameFromID:prevUid.
- nameString := nameString contractTo:10.
- nameString := nameString , (String new:(10 - nameString size))
- ].
- nameString isNil ifTrue:[nameString := '???'].
- entry colAt:4 put:nameString withoutSpaces.
-
- ((info gid) ~~ prevGid) ifTrue:[
- prevGid := (info gid).
- groupString := OperatingSystem getGroupNameFromID:prevGid.
- groupString := groupString contractTo:10.
- groupString := groupString , (String new:(10 - groupString size))
- ].
- groupString isNil ifTrue:[groupString := '???'].
- entry colAt:5 put:groupString withoutSpaces.
-
- (typ == #regular) ifTrue:[
- entry colAt:6 put:(self sizePrintString:(info size)).
- ].
-
- f isSymbolicLink ifTrue:[
- p := f linkInfo path.
- typeString := 'symbolic link to ' , p
- ] ifFalse:[
- typeString := typ asString
- ].
- ].
- entry colAt:7 put:typeString.
-
- "/ fileListView at:lineIndex put:entry.
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- passDone at:lineIndex put:2.
- ].
- ].
-
- (state endsWith:'Types') ifTrue:[
- "/
- "/ pass 3: add fileType
- "/
- (passDone at:lineIndex) < 3 ifTrue:[
- info := f info.
- info notNil ifTrue:[
- f isSymbolicLink ifFalse:[
- (Image isImageFileSuffix:(f suffix)) ifFalse:[
- typeString := f fileType.
-
- entry colAt:7 put:typeString.
- "/ fileListView at:lineIndex put:entry
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- ].
- ].
- ].
-
- passDone at:lineIndex put:3
- ].
- ].
-
- (state endsWith:'Images') ifTrue:[
- "/
- "/ pass 4: read images
- "/
- (passDone at:lineIndex) < 4 ifTrue:[
- (Image isImageFileSuffix:(f suffix)) ifTrue:[
- f isDirectory ifFalse:[
- img := Image fromFile:(f pathName).
- img notNil ifTrue:[
- img := img magnifiedTo:16@16.
- img := img on:self device.
- entry colAt:7 put:img.
- "/ fileListView at:lineIndex put:entry
- fileListView withoutRedrawAt:lineIndex put:entry.
- fileListView invalidateLine:lineIndex.
- ]
- ]
- ].
- passDone at:lineIndex put:4
- ].
- ].
- ].
-
- "/
- "/ advance to the next line
- "/
- lineIndex := lineIndex + 1.
- lineIndex > endIndex ifTrue:[
- "/ finished this round ...
- "/ see what we are going for ...
- numVisible := (fileListView lastLineShown - fileListView firstLineShown + 1).
-
- state := nextState at:state ifAbsent:nil.
-
- state isNil ifTrue:[
- done := true
- ] ifFalse:[
- (state startsWith:'visible') ifTrue:[
- lineIndex := fileListView firstLineShown.
- endIndex := fileListView lastLineShown.
- endIndex := endIndex min:(files size).
- ] ifFalse:[
- (state startsWith:'nextPage') ifTrue:[
- lineIndex := fileListView lastLineShown + 1.
- endIndex := lineIndex + numVisible.
- endIndex := endIndex min:(files size).
- lineIndex := lineIndex min:(files size).
- ] ifFalse:[
- (state startsWith:'previousPage') ifTrue:[
- endIndex := fileListView firstLineShown - 1.
- lineIndex := endIndex - numVisible.
- lineIndex := lineIndex max:1.
- endIndex := endIndex min:(files size).
- endIndex := endIndex max:1.
- ] ifFalse:[
- "/ remaining
- lineIndex := 1.
- endIndex := files size.
- ]
- ]
- ]
- ]
- ]
- ].
-
- listUpdateProcess := nil.
-
- ] forkAt:(Processor activePriority - 1).
-
- "
- install a new check after some time
- "
- Processor addTimedBlock:checkBlock afterSeconds:checkDelta
+ "/ show files which are either directories
+ "/ or match the current pattern
+
+ matchPattern := filterField contents.
+ (matchPattern notNil and:[
+ matchPattern isEmpty not and:[
+ matchPattern ~= '*']]) ifTrue:[
+ files := files select:[:aName |
+ ((currentDirectory construct:aName) isDirectory)
+ or:[matchPattern compoundMatch:aName]
+ ].
+ ].
+
+ files size == 0 ifTrue:[
+ self information:('directory ', currentDirectory pathName, ' vanished').
+ ^ self
+ ].
+ (sortByWhat value == #name) ifTrue:[
+ sortCaseless value == true ifTrue:[
+ files sort:[:a :b | a asLowercase < b asLowercase]
+ ] ifFalse:[
+ files sort.
+ ]
+ ] ifFalse:[
+ (sortByWhat value == #time) ifTrue:[
+ files sort:[:a :b | |f1 f2 t1 t2|
+ f1 := (currentDirectory construct:a).
+ f2 := (currentDirectory construct:b).
+ t1 := f1 isSymbolicLink
+ ifFalse:[f1 modificationTime]
+ ifTrue:[f1 linkInfo modified].
+ t2 := f2 isSymbolicLink
+ ifFalse:[f2 modificationTime]
+ ifTrue:[f2 linkInfo modified].
+ t1 := t1 ? (AbsoluteTime now).
+ t2 := t2 ? (AbsoluteTime now).
+ t1 > t2
+ ]
+ ] ifFalse:[
+ (sortByWhat value == #type) ifTrue:[
+ files sort:[:a :b | |f1 f2 t1 t2 suff1 suff2|
+ f1 := (currentDirectory construct:a).
+ f2 := (currentDirectory construct:b).
+ t1 := f1 type ? #xbadLink.
+ t2 := f2 type ? #xbadLink.
+ t1 = t2 ifTrue:[
+ suff1 := f1 suffix.
+ suff2 := f2 suffix.
+ suff1 = suff2 ifTrue:[
+ sortCaseless value == true ifTrue:[
+ a asLowercase < b asLowercase
+ ] ifFalse:[
+ a < b
+ ]
+ ] ifFalse:[
+ suff1 asLowercase < suff2 asLowercase
+ ]
+ ] ifFalse:[
+ t1 < t2
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ files := self withoutHiddenFiles:files.
+ fileList := files copy.
+
+ tabSpec isNil ifTrue:[
+ showingDetails value "showLongList" ifTrue:[
+ self defineTabulatorsForLongList
+ ] ifFalse:[
+ self defineTabulatorsForShortList
+ ].
+ ].
+
+ "/
+ "/ first show all the names - this can be done fast ...
+ "/
+ list := files collect:[:fileName |
+ |entry|
+
+ entry := MultiColListEntry new.
+ entry tabulatorSpecification:tabSpec.
+ entry colAt:1 put:nil.
+ entry colAt:2 put:fileName.
+ ].
+
+ fileListView setList:list expandTabs:false.
+ passDone := Array new:list size withAll:0.
+
+ "
+ this is a time consuming operation (especially, if reading an
+ NFS-mounted directory); therefore, start a low prio process,
+ which fills in the remaining fields in the fileList ...
+ "
+
+ listUpdateProcess := [
+ |prevUid prevGid fileNameString nameString groupString
+ modeString info line len
+ anyImages lineIndex aFileName
+ entry typ f p typeString done endIndex
+ state stopAtEnd nextState img prevFirstLine prevLastLine
+ numVisible dirSuffix|
+
+ dirSuffix := Filename directorySuffix.
+ dirSuffix size > 0 ifTrue:[
+ dirSuffix := '.' , dirSuffix asLowercase.
+ ].
+
+ "/
+ "/ then walk over the files, adding more info
+ "/ (since we have to stat each file, this may take a while longer)
+ "/ Visible items are always filled first.
+
+ "/
+ "/ the state machine
+ "/
+ nextState := IdentityDictionary new.
+ showingDetails value "showLongList" ifTrue:[
+ nextState add:(#visibleIcons -> #visibleAttributes).
+ nextState add:(#visibleAttributes -> #visibleTypes).
+ nextState add:(#visibleTypes -> #visibleImages).
+ nextState add:(#visibleImages -> #nextPageIcons).
+
+ nextState add:(#nextPageIcons -> #nextPageAttributes).
+ nextState add:(#nextPageAttributes -> #nextPageTypes).
+ nextState add:(#nextPageTypes -> #nextPageImages).
+ nextState add:(#nextPageImages -> #previousPageIcons).
+
+ nextState add:(#previousPageIcons -> #previousPageAttributes).
+ nextState add:(#previousPageAttributes -> #previousPageTypes).
+ nextState add:(#previousPageTypes -> #previousPageImages).
+ nextState add:(#previousPageImages -> #remainingIcons).
+
+ nextState add:(#remainingIcons -> #remainingAttributes).
+ nextState add:(#remainingAttributes -> #remainingTypes).
+ nextState add:(#remainingTypes -> #remainingImages).
+ nextState add:(#remainingImages -> nil).
+ ] ifFalse:[
+ nextState add:(#visibleIcons -> #nextPageIcons).
+ nextState add:(#nextPageIcons -> #previousPageIcons).
+ nextState add:(#previousPageIcons -> #remainingIcons).
+ nextState add:(#remainingIcons -> nil).
+ ].
+
+ anyImages := false.
+
+ lineIndex := prevFirstLine := fileListView firstLineShown.
+ endIndex := prevLastLine := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ state := #visibleIcons.
+
+ done := false.
+ [done] whileFalse:[
+ "/
+ "/ if multiple FileBrowsers are reading, let others
+ "/ make some progress too
+ "/
+ Processor yield.
+
+ "/
+ "/ could be destroyed in the meanwhile ...
+ "/
+ realized ifFalse:[
+ listUpdateProcess := nil.
+ Processor activeProcess terminate
+ ].
+
+ ((prevFirstLine ~~ fileListView firstLineShown)
+ or:[prevLastLine ~~ fileListView lastLineShown]) ifTrue:[
+ "/ start all over again
+ lineIndex := prevFirstLine := fileListView firstLineShown.
+ endIndex := prevLastLine := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ state := #visibleIcons.
+ ].
+
+ (lineIndex between:1 and:(files size)) ifTrue:[
+
+ "/
+ "/ expand the next entry ...
+ "/
+ aFileName := files at:lineIndex.
+ entry := fileListView at:lineIndex.
+ f := currentDirectory construct:aFileName.
+
+ (state endsWith:'Icons') ifTrue:[
+ "/
+ "/ pass 1 - icons
+ "/
+ (passDone at:lineIndex) < 1 ifTrue:[
+ (f isDirectory
+ and:[(aFileName ~= '..') and:[aFileName ~= '.']]
+ ) ifTrue:[
+
+ "/ the following suffix cutOff is not really required,
+ "/ but makes the list look better on VMS ...
+ fileNameString := aFileName.
+ dirSuffix notNil ifTrue:[
+ (aFileName asLowercase endsWith:dirSuffix) ifTrue:[
+ fileNameString := aFileName copyWithoutLast:(dirSuffix size).
+ ]
+ ].
+ fileNameString := fileNameString , ' ...'
+ ] ifFalse:[
+ fileNameString := aFileName.
+ OperatingSystem isVMSlike ifTrue:[
+ (aFileName endsWith:'.') ifTrue:[
+ aFileName ~= '..' ifTrue:[
+ fileNameString := aFileName copyWithoutLast:1
+ ]
+ ]
+ ]
+ ].
+
+ showingDetails value "showLongList" ifTrue:[
+ len := fileNameString size.
+ (len > 20) ifTrue:[
+ fileNameString := (fileNameString contractTo:20)
+ ].
+ ].
+
+ entry colAt:1 put:(self iconForFile:aFileName).
+ entry colAt:2 put:fileNameString.
+
+ "/fileListView at:lineIndex put:entry.
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+
+ anyImages ifFalse:[
+ (Image isImageFileSuffix:(aFileName asFilename suffix))
+ ifTrue:[
+ anyImages := true
+ ]
+ ].
+ passDone at:lineIndex put:1
+ ]
+ ].
+
+ (state endsWith:'Attributes') ifTrue:[
+ "/
+ "/ pass 2 - everything except fileType (which takes very long)
+ "/
+ (passDone at:lineIndex) < 2 ifTrue:[
+ info := f info.
+ info isNil ifTrue:[
+ "not accessable - usually a symlink,
+ to a nonexisting/nonreadable file
+ "
+ f isSymbolicLink ifTrue:[
+ p := f linkInfo path.
+ typeString := 'broken symbolic link to ' , p
+ ] ifFalse:[
+ typeString := 'unknown'
+ ].
+ ] ifFalse:[
+ typ := (info type).
+
+ modeString := self getModeString:(info at:#mode)
+ with:#( '' $r $w $x
+ ' ' $r $w $x
+ ' ' $r $w $x ).
+ entry colAt:3 put:modeString.
+
+ ((info uid) ~~ prevUid) ifTrue:[
+ prevUid := (info uid).
+ nameString := OperatingSystem getUserNameFromID:prevUid.
+ nameString := nameString contractTo:10.
+ nameString := nameString , (String new:(10 - nameString size))
+ ].
+ nameString isNil ifTrue:[nameString := '???'].
+ entry colAt:4 put:nameString withoutSpaces.
+
+ ((info gid) ~~ prevGid) ifTrue:[
+ prevGid := (info gid).
+ groupString := OperatingSystem getGroupNameFromID:prevGid.
+ groupString := groupString contractTo:10.
+ groupString := groupString , (String new:(10 - groupString size))
+ ].
+ groupString isNil ifTrue:[groupString := '???'].
+ entry colAt:5 put:groupString withoutSpaces.
+
+ (typ == #regular) ifTrue:[
+ entry colAt:6 put:(self sizePrintString:(info size)).
+ ].
+
+ f isSymbolicLink ifTrue:[
+ p := f linkInfo path.
+ typeString := 'symbolic link to ' , p
+ ] ifFalse:[
+ typeString := typ asString
+ ].
+ ].
+ entry colAt:7 put:typeString.
+
+ "/ fileListView at:lineIndex put:entry.
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ passDone at:lineIndex put:2.
+ ].
+ ].
+
+ (state endsWith:'Types') ifTrue:[
+ "/
+ "/ pass 3: add fileType
+ "/
+ (passDone at:lineIndex) < 3 ifTrue:[
+ info := f info.
+ info notNil ifTrue:[
+ f isSymbolicLink ifFalse:[
+ (Image isImageFileSuffix:(f suffix)) ifFalse:[
+ typeString := f fileType.
+
+ entry colAt:7 put:typeString.
+ "/ fileListView at:lineIndex put:entry
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ ].
+ ].
+ ].
+
+ passDone at:lineIndex put:3
+ ].
+ ].
+
+ (state endsWith:'Images') ifTrue:[
+ "/
+ "/ pass 4: read images
+ "/
+ (passDone at:lineIndex) < 4 ifTrue:[
+ (Image isImageFileSuffix:(f suffix)) ifTrue:[
+ f isDirectory ifFalse:[
+ img := Image fromFile:(f pathName).
+ img notNil ifTrue:[
+ img := img magnifiedTo:16@16.
+ img := img on:self device.
+ entry colAt:7 put:img.
+ "/ fileListView at:lineIndex put:entry
+ fileListView withoutRedrawAt:lineIndex put:entry.
+ fileListView invalidateLine:lineIndex.
+ ]
+ ]
+ ].
+ passDone at:lineIndex put:4
+ ].
+ ].
+ ].
+
+ "/
+ "/ advance to the next line
+ "/
+ lineIndex := lineIndex + 1.
+ lineIndex > endIndex ifTrue:[
+ "/ finished this round ...
+ "/ see what we are going for ...
+ numVisible := (fileListView lastLineShown - fileListView firstLineShown + 1).
+
+ state := nextState at:state ifAbsent:nil.
+
+ state isNil ifTrue:[
+ done := true
+ ] ifFalse:[
+ (state startsWith:'visible') ifTrue:[
+ lineIndex := fileListView firstLineShown.
+ endIndex := fileListView lastLineShown.
+ endIndex := endIndex min:(files size).
+ ] ifFalse:[
+ (state startsWith:'nextPage') ifTrue:[
+ lineIndex := fileListView lastLineShown + 1.
+ endIndex := lineIndex + numVisible.
+ endIndex := endIndex min:(files size).
+ lineIndex := lineIndex min:(files size).
+ ] ifFalse:[
+ (state startsWith:'previousPage') ifTrue:[
+ endIndex := fileListView firstLineShown - 1.
+ lineIndex := endIndex - numVisible.
+ lineIndex := lineIndex max:1.
+ endIndex := endIndex min:(files size).
+ endIndex := endIndex max:1.
+ ] ifFalse:[
+ "/ remaining
+ lineIndex := 1.
+ endIndex := files size.
+ ]
+ ]
+ ]
+ ]
+ ]
+ ].
+
+ listUpdateProcess := nil.
+
+ ] forkAt:(Processor activePriority - 1).
+
+ "
+ install a new check after some time
+ "
+ Processor addTimedBlock:checkBlock afterSeconds:checkDelta
]
"Modified: / 21.9.1995 / 11:40:23 / claus"
@@ -5178,5 +5178,5 @@
!FileBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.254 1998-09-03 08:19:31 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.255 1998-09-08 10:24:20 cg Exp $'
! !