[Pkg] The Trunk: System-mt.795.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Feb 12 15:39:12 UTC 2016


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
  !



More information about the Packages mailing list