--- a/ImageEditView.st Wed Aug 22 21:39:19 2001 +0200
+++ b/ImageEditView.st Thu Aug 23 10:32:58 2001 +0200
@@ -18,7 +18,7 @@
lastPastePoint imageInfoHolder activityInfoHolder
pickedColorHolder drawingColors drawingPixels clickInfoCallBack'
classVariableNames:'Clipboard LastMagnification ClipboardMagnification
- GridMagnificationLimit MaxUndos'
+ GridMagnificationLimit MaxUndos LastSaveDirectory LastSaveClass'
poolDictionaries:''
category:'Views-Misc'
!
@@ -1757,6 +1757,28 @@
!ImageEditView methodsFor:'printing & storing'!
+askForFileNameToSave:msg
+ "ask for a fileName"
+
+ |lastFn fn filters|
+
+ filters := FileSelectionBrowser saveImageFileNameFilters.
+ lastFn := self image fileName.
+ lastFn isNil ifTrue:[
+ fn := FileSelectionBrowser
+ request: msg
+ inDirectory: LastSaveDirectory
+ withFileFilters: filters
+ ] ifFalse:[
+ fn := FileSelectionBrowser
+ request: msg
+ fileName: lastFn
+ withFileFilters: filters
+ ].
+
+ ^ fn
+!
+
loadFromClass
^self loadFromMessage:
@@ -1819,13 +1841,10 @@
saveImageFileAs
"ask for a fileName and save the image"
- self saveImageFileAs:
- (FileSelectionBrowser
- request: 'Save Image To File'
- fileName: self image fileName
- withFileFilters: FileSelectionBrowser saveImageFileNameFilters)
+ |fn|
- "Modified: / 30.9.1998 / 23:05:19 / cg"
+ fn := self askForFileNameToSave:'Save Image To File'.
+ self saveImageFileAs:fn
!
saveImageFileAs: aFileName
@@ -1845,11 +1864,10 @@
saveImageMaskFileAs
"ask for a fileName and save the mask only"
- self saveImageMaskFileAs:
- (FileSelectionBrowser
- request: 'Save Image Mask To File'
- fileName: self image fileName
- withFileFilters: FileSelectionBrowser saveImageFileNameFilters)
+ |fn|
+
+ fn := self askForFileNameToSave:'Save Image Mask To File'.
+ self saveImageMaskFileAs:fn
"Modified: / 30.9.1998 / 23:04:11 / cg"
!
@@ -1947,9 +1965,10 @@
].
Transcript showCR:('saving as:' , fileName asFilename pathName).
- what = #image ifTrue: [image saveOn:fileName using: imageReaderClass. modified := false].
+ what = #image ifTrue: [ image saveOn:fileName using: imageReaderClass. modified := false].
what = #mask ifTrue: [image mask saveOn:fileName using: imageReaderClass].
+ LastSaveDirectory := fileName asFilename directoryName.
fileName asFilename exists ifFalse:[
Dialog warn:'Oops image save failed.'
]
@@ -1961,14 +1980,10 @@
!
saveMethod
-
- Object errorSignal handle:
- [:ex|
+ Object errorSignal handle:[:ex|
self warn: ex errorString.
^nil
- ]
- do:
- [
+ ] do: [
|category imageStoreStream cls sel mthd imageKey|
windowGroup withExecuteCursorDo:[
@@ -1983,34 +1998,9 @@
"/ flush cache images in the Icon class (kludge)
Icon flushCachedIcons.
+ modified := false.
-"/ self image storeOn: (imageStoreStream := WriteStream on: '').
-"/ sel := self resourceSelector.
-"/
-"/ "/ if that method already exists, do not overwrite the category
-"/ category := 'image specs'.
-"/ (mthd := cls class compiledMethodAt:sel) notNil ifTrue:[
-"/ category := mthd category.
-"/ ].
-"/
-"/ imageKey := (cls name, ' ', sel) asSymbol.
-"/ Icon constantNamed: imageKey put:nil.
-"/ ByteCodeCompiler
-"/ compile: ((sel,
-"/ '\', (ResourceSpecEditor codeGenerationCommentForClass: ImageEditor),
-"/ '\\' ,
-"/ ' "\',
-"/ ' self ' , self resourceSelector , ' inspect\',
-"/ ' ImageEditor openOnClass:self andSelector:#', self resourceSelector,
-"/ '\ "',
-"/ '\\',
-"/ ' <resource: #image>',
-"/ '\\',
-"/ ' ^Icon\') withCRs,
-"/ ' constantNamed:#''', imageKey, '''\' withCRs,
-"/ ' ifAbsentPut:[', imageStoreStream contents, ']')
-"/ forClass: cls class inCategory: category.
- modified := false.
+ LastSaveClass := cls theNonMetaclass name.
]
]
@@ -2018,17 +2008,24 @@
!
saveMethodAs
+ |className|
+
+ className := self resourceClass.
+ className size == 0 ifTrue:[
+ LastSaveClass size > 0 ifTrue:[
+ className := LastSaveClass
+ ]
+ ].
(self resourceMessage:
- (ResourceSelectionBrowser
- request: 'Save Image In Class'
- onSuperclass: #Object
- andClass: self resourceClass
- andSelector: self resourceSelector
- withResourceTypes: #(image fileImage))) notNil
- ifTrue:
- [
- ^self saveMethod
+ (ResourceSelectionBrowser
+ request: 'Save Image In Class'
+ onSuperclass: #Object
+ andClass: className
+ andSelector: self resourceSelector
+ withResourceTypes: #(image fileImage))) notNil
+ ifTrue: [
+ ^ self saveMethod
].
^nil
! !
@@ -2122,6 +2119,6 @@
!ImageEditView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/ImageEditView.st,v 1.149 2001-08-22 19:36:08 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/ImageEditView.st,v 1.150 2001-08-23 08:32:58 cg Exp $'
! !
ImageEditView initialize!