The Trunk: System-dtl.170.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: System-dtl.170.mcz

commits-2
David T. Lewis uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-dtl.170.mcz

==================== Summary ====================

Name: System-dtl.170
Author: dtl
Time: 22 November 2009, 6:50:24 am
UUID: 961e4a03-4cc6-402d-bfe4-e01808dda7d1
Ancestors: System-dtl.169

Remove Morphic dependencies from Project>>okToChange.
Add Project>>prepareForDelete and MorphicProject>>prepareForDelete to handle Morphic specific cleanup actions.

Remove some apparently unneeded logic by changing from this:
        ok := world isMorph not and: [world scheduledControllers size <= 1].
        ok ifFalse: [self isMorphic ifTrue:
                [self parent == CurrentProject
                        ifFalse: [^ true]]].  "view from elsewhere.  just delete it."

to this:
        self parent == CurrentProject
                        ifFalse: [^ true].  "view from elsewhere.  just delete it."


=============== Diff against System-dtl.169 ===============

Item was changed:
  ----- Method: Project>>okToChange (in category 'release') -----
  okToChange
  "Answer whether the window in which the project is housed can be dismissed -- which is destructive. We never clobber a project without confirmation"
 
- | ok is list |
  self subProjects size  >0 ifTrue:
  [self inform:
  ('The project {1}
  contains sub-projects.  You must remove these
  explicitly before removing their parent.' translated format:{self name}).
  ^ false].
+ self parent == CurrentProject
+ ifFalse: [^ true].  "view from elsewhere.  just delete it."
+ (self confirm:
- ok := world isMorph not and: [world scheduledControllers size <= 1].
- ok ifFalse: [self isMorphic ifTrue:
- [self parent == CurrentProject
- ifFalse: [^ true]]].  "view from elsewhere.  just delete it."
- ok := (self confirm:
  ('Really delete the project
  {1}
+ and all its windows?' translated format:{self name}))
+ ifFalse: [^ false].
- and all its windows?' translated format:{self name})).
-
- ok ifFalse: [^ false].
 
+ self prepareForDelete.
- world isMorph ifTrue:
- [Smalltalk at: #WonderlandCameraMorph ifPresent:[:aClass |
- world submorphs do:   "special release for wonderlands"
- [:m | (m isKindOf: aClass)
- and: [m getWonderland release]]].
- "Remove Player classes and metaclasses owned by project"
- is := ImageSegment new arrayOfRoots: (Array with: self).
- (list := is rootsIncludingPlayers) ifNotNil:
- [list do: [:playerCls |
- (playerCls respondsTo: #isMeta) ifTrue:
- [playerCls isMeta ifFalse:
- [playerCls removeFromSystemUnlogged]]]]].
 
  self removeChangeSetIfPossible.
  "do this last since it will render project inaccessible to #allProjects and their ilk"
  ProjectHistory forget: self.
  Project deletingProject: self.
  ^ true
  !

Item was added:
+ ----- Method: Project>>prepareForDelete (in category 'release') -----
+ prepareForDelete
+ "The window in which the project is housed is about to deleted. Perform
+ any necessary actions to prepare for deletion. For an MVC project, no
+ action is required."
+ !