diff -r 97a0311a9539 -r ec4531103e69 AbstractFileBrowser.st --- a/AbstractFileBrowser.st Wed Dec 11 16:29:46 2002 +0100 +++ b/AbstractFileBrowser.st Wed Dec 11 17:15:21 2002 +0100 @@ -1498,8 +1498,8 @@ the MenuEditor may not be able to read the specification." " - MenuEditor new openOnClass:FileBrowserV2 andSelector:#toolsMenuSpec - (Menu new fromLiteralArrayEncoding:(FileBrowserV2 toolsMenuSpec)) startUp + MenuEditor new openOnClass:AbstractFileBrowser andSelector:#toolsMenuSpec + (Menu new fromLiteralArrayEncoding:(AbstractFileBrowser toolsMenuSpec)) startUp " @@ -1509,160 +1509,191 @@ #( #(#MenuItem #label: 'Execute Command...' + #itemValue: #doExecuteCommand #translateLabel: true - #value: #doExecuteCommand ) #(#MenuItem + #enabled: #canDoTerminal #label: 'Shell Terminal' + #itemValue: #openTerminal #translateLabel: true #isVisible: #canDoTerminalAndSystemIsUnix - #value: #openTerminal - #enabled: #canDoTerminal ) #(#MenuItem + #enabled: #canDoTerminal #label: 'DOS Terminal' + #itemValue: #openTerminal #translateLabel: true #isVisible: #canDoTerminalAndSystemIsDOS - #value: #openTerminal - #enabled: #canDoTerminal ) #(#MenuItem #label: '-' ) #(#MenuItem + #enabled: #hasSelection #label: 'Changes Browser' + #itemValue: #openChangesBrowser #translateLabel: true - #value: #openChangesBrowser - #enabled: #hasSelection ) #(#MenuItem + #enabled: #hasSelection #label: 'ChangeSet Browser' + #itemValue: #openChangeSetBrowser #translateLabel: true - #value: #openChangeSetBrowser - #enabled: #hasSelection ) #(#MenuItem + #enabled: #hasSnapshotSelection #label: 'Snapshot Image Browser' + #itemValue: #openSnapshotImageBrowser #translateLabel: true - #value: #openSnapshotImageBrowser - #enabled: #hasSnapshotSelection ) #(#MenuItem + #enabled: #canCreateNewProject #label: 'Create Smalltalk Project' + #itemValue: #createProjectAndOpenProjectBrowser #translateLabel: true - #value: #createProjectAndOpenProjectBrowser - #enabled: #canCreateNewProject ) #(#MenuItem + #enabled: #canReadAbbrevFile #label: 'Install Autoloaded' + #itemValue: #readAbbrevFile #translateLabel: true - #value: #readAbbrevFile - #enabled: #canReadAbbrevFile ) #(#MenuItem + #enabled: #anySTFilesPresent #label: 'Install all as Autoloaded' + #itemValue: #installAllAsAutoloaded #translateLabel: true - #value: #installAllAsAutoloaded - #enabled: #anySTFilesPresent ) #(#MenuItem + #enabled: #hasSelection #label: 'Editor' + #itemValue: #openEditor #translateLabel: true - #value: #openEditor + ) + #(#MenuItem #enabled: #hasSelection + #label: 'HTML Reader' + #itemValue: #openHTMLReader + #translateLabel: true ) #(#MenuItem - #label: 'HTML Reader' - #translateLabel: true - #value: #openHTMLReader - #enabled: #hasSelection - ) - #(#MenuItem + #enabled: #hasASN1AndSelection #label: 'ASN1 Browser' + #itemValue: #openASN1Browser #translateLabel: true #isVisible: #hasASN1 - #value: #openASN1Browser - #enabled: #hasASN1AndSelection ) #(#MenuItem + #enabled: #hasCBrowser #label: 'C Browser' + #itemValue: #openCBrowser #translateLabel: true #isVisible: #hasCBrowser - #value: #openCBrowser - #enabled: #hasCBrowser ) #(#MenuItem + #enabled: #hasJavaAndSelection #label: 'Applet Viewer' + #itemValue: #openAppletViewer #translateLabel: true #isVisible: #hasJava - #value: #openAppletViewer - #enabled: #hasJavaAndSelection ) #(#MenuItem - #label: 'Image Inspector' + #enabled: #hasSelection + #label: 'STX Image Inspector' + #itemValue: #openImageInspector #translateLabel: true - #value: #openImageInspector - #enabled: #hasSelection ) #(#MenuItem - #label: 'Image Preview' + #label: 'Image' #translateLabel: true - #value: #openImagePreview - #enabled: #hasSelection + #submenu: + #(#Menu + #( + #(#MenuItem + #enabled: #hasSelection + #label: 'Image Editor' + #itemValue: #openImageEditor + #translateLabel: true + ) + #(#MenuItem + #enabled: #hasSelection + #label: 'Image Preview' + #itemValue: #openImagePreview + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #enabled: #hasSelection + #label: 'Convert to GIF' + #itemValue: #convertImageToGIF + #translateLabel: true + ) + ) + nil + nil + ) ) #(#MenuItem - #label: 'Image Editor' - #translateLabel: true - #value: #openImageEditor - #enabled: #hasSelection - ) - #(#MenuItem + #enabled: #hasMP3PlayerAndSelection #label: 'MP3 Player' + #itemValue: #openMP3Player #translateLabel: true #isVisible: #hasMP3Player - #value: #openMP3Player - #enabled: #hasMP3PlayerAndSelection ) #(#MenuItem + #enabled: #hasZipFileSelected #label: 'ZipFile Tool' + #itemValue: #openZipTool #translateLabel: true - #value: #openZipTool - #enabled: #hasZipFileSelected ) #(#MenuItem + #enabled: #currentFilesAreInSameDirectory #label: 'Slide Show' + #itemValue: #openSlideShow #translateLabel: true #isVisible: #hasSlideShow - #value: #openSlideShow - #enabled: #currentFilesAreInSameDirectory - ) - #(#MenuItem - #label: 'File Differences...' - #translateLabel: true - #value: #openDiffView - #enabled: #hasSelection ) #(#MenuItem - #label: 'Find Duplicate Files' + #label: 'Find' #translateLabel: true - #value: #fileFindDuplicates + #submenu: + #(#Menu + #( + #(#MenuItem + #label: 'Find a File...' + #itemValue: #fileFindFile + #translateLabel: true + ) + #(#MenuItem + #enabled: #hasSelection + #label: 'Find All Duplicate Files (Recursive)' + #itemValue: #fileFindAllDuplicates + #translateLabel: true + ) + #(#MenuItem + #label: 'Find Duplicate Files' + #itemValue: #fileFindDuplicates + #translateLabel: true + ) + ) + nil + nil + ) ) #(#MenuItem - #label: 'Find All Duplicate Files (Recursive)' + #enabled: #hasSelection + #label: 'File Differences...' + #itemValue: #openDiffView #translateLabel: true - #value: #fileFindAllDuplicates - #enabled: #hasSelection ) #(#MenuItem - #label: 'Find a File...' + #enabled: #hasSelection + #label: 'Hex Dump' + #itemValue: #fileHexDump #translateLabel: true - #value: #fileFindFile - ) - #(#MenuItem - #label: 'Hex Dump' - #translateLabel: true - #value: #fileHexDump - #enabled: #hasSelection ) ) nil @@ -3408,6 +3439,56 @@ !AbstractFileBrowser methodsFor:'menu actions tools'! +convertImageToGIF + |img tempFileXPM tempFilePPM tempFileGIF| + + [ + self withActivityIndicationDo:[ + self currentFileNameHolder value do:[:fileName | + fileName isDirectory ifFalse:[ + self notifyChannel value:('Convert to GIF:', fileName baseName). + img := Image fromFile:(fileName pathName). + img notNil ifTrue:[ + tempFileXPM := Filename newTemporary withSuffix:'xpm'. + tempFilePPM := tempFileXPM withSuffix:'ppm'. + tempFileGIF := tempFileXPM withSuffix:'gif'. + [ + img saveOn:tempFileXPM using:XPMReader. + + + (OperatingSystem + executeCommand:('xpmtoppm %1 > %2' + bindWith:tempFileXPM pathName + with:tempFilePPM pathName)) + ifFalse:[ + self warn:'Cannot convert to ppm format'. + ] ifTrue:[ + (OperatingSystem + executeCommand:('ppmtogif %1 > %2' + bindWith:tempFilePPM pathName + with:tempFileGIF pathName)) + ifFalse:[ + self warn:'Cannot convert to gif format'. + ] ifTrue:[ + tempFileGIF moveTo:(fileName withSuffix:'gif'). + self updateAndSelect:nil. + ]. + ]. + ] ensure:[ + tempFileXPM delete. + tempFilePPM delete. + tempFileGIF delete. + ] + ] ifFalse:[ + self warn:'Unknown format/not an image: ' , fileName asString + ] + ] + ]. + self notifyChannel value:''. + ] + ] fork. +! + createProjectAndOpenProjectBrowser |nm f s directory| @@ -5309,5 +5390,5 @@ !AbstractFileBrowser class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.70 2002-12-11 15:29:46 penk Exp $' + ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.71 2002-12-11 16:15:21 penk Exp $' ! !