#FEATURE by cg
class: ImageEditView
comment/format in: #saveMethod
changed: #saveMethodAs
preserve the method category when saving as
--- a/ImageEditView.st Fri Nov 25 08:45:13 2016 +0100
+++ b/ImageEditView.st Fri Nov 25 09:19:37 2016 +0100
@@ -2672,6 +2672,9 @@
!
saveMethod
+ "save the image as a resource method.
+ Return true if ok; false if not"
+
(resourceSelector trimBlanks notEmptyOrNil and:[ resourceClass isBehavior ]) ifFalse: [
^ self saveMethodAs.
].
@@ -2718,7 +2721,7 @@
in:resourceClass class
selector:resourceSelector.
- "/ flush cache images in the Icon class (kludge)
+ "/ flush cached images in the Icon class (kludge)
Icon flushCachedIcons.
self clearModified.
@@ -2728,18 +2731,31 @@
^ true
"Modified: / 31-01-2011 / 18:28:06 / cg"
+ "Modified (comment): / 25-11-2016 / 08:48:44 / cg"
!
saveMethodAs
"ask for method/selector; save the image there.
Return true if saved, false if not"
- |className classAndSelector|
-
+ |className classAndSelector
+ previousClass previousCategory previousSelector
+ previousMethod newMethod ok|
+
+ previousSelector := self resourceSelector.
className := self resourceClassName.
className isEmptyOrNil ifTrue:[
className := LastSaveClass
].
+ (className notEmptyOrNil and:[previousSelector notNil]) ifTrue:[
+ previousClass := Smalltalk classNamed:className.
+ previousClass notNil ifTrue:[
+ previousMethod := previousClass class compiledMethodAt:previousSelector.
+ previousMethod notNil ifTrue:[
+ previousCategory := previousMethod category.
+ ]
+ ]
+ ].
self withWaitCursorDo:[
classAndSelector := ResourceSelectionBrowser
@@ -2754,7 +2770,18 @@
resourceClass := classAndSelector methodClass.
resourceSelector := classAndSelector methodSelector.
- ^ self saveMethod
+ ok := self saveMethod.
+ ok ifTrue:[
+ previousCategory notNil ifTrue:[
+ newMethod := resourceClass class compiledMethodAt:resourceSelector asSymbol.
+ newMethod notNil ifTrue:[
+ newMethod category:previousCategory.
+ ]
+ ]
+ ].
+ ^ ok
+
+ "Modified: / 25-11-2016 / 09:17:22 / cg"
! !
!ImageEditView methodsFor:'printing'!