[squeak-dev] The Trunk: ST80-dtl.204.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Apr 30 19:20:25 UTC 2016


David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.204.mcz

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

Name: ST80-dtl.204
Author: dtl
Time: 30 April 2016, 3:19:53.457686 pm
UUID: acbcf1f1-f922-49b2-a551-cc7bcec09d61
Ancestors: ST80-mt.203

Simplify unloading and reloading MVC.

Originally described circa Squeak 4.1: http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-February/144305.html

The original SystemImage>>zapMVCProjects method is reimplemented as MVCProject class>>removeProjectsFromSystem.

To completely remove MVC: "MVCProject unloadMVC".

To reinstall MVC, load packages ST80, ST880Tools, ST80Tests, and ToolBuild-MVC from the trunk repository.

Note - unloading MVC when the current project is MVC should work, but does not.

=============== Diff against ST80-mt.203 ===============

Item was added:
+ ----- Method: MVCProject class>>removeProjectsFromSystem (in category 'shrinking') -----
+ removeProjectsFromSystem
+ 	"Remove all MVC projects from the system, reorganizing the project hierarchy as needed.
+ 	This method was originally implemented as SmalltalkImage>>zapMVCProjects in earlier
+ 	versions of Squeak."
+ 
+ 	"MVCProject removeProjectsFromSystem"
+ 	
+ 	Smalltalk garbageCollect. "So allInstances is precise"
+ 	Project
+ 		allSubInstancesDo: [:proj | | window | proj isTopProject
+ 				ifTrue: [(proj isKindOf: self)
+ 						ifTrue: ["Root project is MVC -- we must become the root"
+ 							Project current setParent: Project current.]]
+ 				ifFalse: [(proj parent isKindOf: self)
+ 						ifTrue: [(proj isKindOf: self)
+ 								ifFalse: ["Remove Morphic projects from MVC views "
+ 									"... and add them back here."
+ 									window := (SystemWindow labelled: proj name)
+ 												model: proj.
+ 									window
+ 										addMorph: (ProjectViewMorph on: proj)
+ 										frame: (0 @ 0 corner: 1.0 @ 1.0).
+ 									window openInWorld.
+ 									proj setParent: Project current]].
+ 					(proj isKindOf: self)
+ 						ifTrue: ["Remove MVC projects from Morphic views"
+ 							Project deletingProject: proj]]]!

Item was added:
+ ----- Method: MVCProject class>>unloadMVC (in category 'shrinking') -----
+ unloadMVC
+ 	"Completely remove MVC from the system. All MVC projects will be destroyed.
+ 	To reinstall MVC, load all of the ST80 and MVCToolbuilder packages."
+ 
+ 	"MVCProject unloadMVC"
+ 
+ 	self removeProjectsFromSystem.
+ 	ScheduledControllers := nil.
+ 	{ 'ToolBuilder-MVC' . 'ST80Tests' . 'ST80Tools' . 'ST80' }
+ 		do: [ :package | (MCPackage named: package) unload ].
+ 
+ !



More information about the Squeak-dev mailing list