The Trunk: System-mt.795.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-mt.795.mcz

commits-2
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.795.mcz

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

Name: System-mt.795
Author: mt
Time: 12 February 2016, 4:38:53.110094 pm
UUID: ba0ba866-6fa0-496f-bfa8-23f4116f3e01
Ancestors: System-dtl.794

Add support for projects that do not have a world set. (Note that I need this for a demonstration of a minimal Squeak project to encourage discussions about next steps in the Squeak community.)

=============== Diff against System-dtl.794 ===============

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].
+ ok := world isNil or: [world isMorph not and: [world scheduledControllers size <= 1]].
- 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}).
 
  ok ifFalse: [^ false].
 
  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
  !