[squeak-dev] The Trunk: ST80-mt.201.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Apr 12 17:42:21 UTC 2016


Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.201.mcz

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

Name: ST80-mt.201
Author: mt
Time: 12 April 2016, 7:42:10.072943 pm
UUID: 318221b7-0676-3842-a01a-c0039d004bf8
Ancestors: ST80-mt.200

Reduce the use of globals in project classes. Clean-up code.

=============== Diff against ST80-mt.200 ===============

Item was changed:
  ----- Method: MVCProject>>addDeferredUIMessage: (in category 'scheduling') -----
  addDeferredUIMessage: valuableObject 
  	"Arrange for valuableObject to be evaluated at a time when the user interface
  	is in a coherent state."
  
+ 	world activeController
- 	ScheduledControllers activeController
  		ifNotNil: [:controller | controller addDeferredUIMessage: valuableObject]!

Item was removed:
- ----- Method: MVCProject>>addItem:toMenu:selection:requestor: (in category 'utilities') -----
- addItem: item toMenu: menu selection: action requestor: requestingProject
- 	"Add a menu item representing this project to a menu being created by requestingProject"
- 
- 	| color |
- 	"Color to be used for this menu item, will be ignored if current project is MVC"
- 	color := self world isInMemory
- 						ifTrue: [Color veryVeryDarkGray]
- 						ifFalse: [Color blue].
- 	"Menu item of type appropriate for current project"
- 	requestingProject
- 		addItem: item
- 		toMenu: menu
- 		selection: action
- 		color: color
- 		thumbnail: thumbnail!

Item was added:
+ ----- Method: MVCProject>>color (in category 'accessing') -----
+ color
+ 
+ 	^ self world isInMemory
+ 		ifTrue: [Color veryVeryDarkGray]
+ 		ifFalse: [Color blue]!

Item was changed:
  ----- Method: MVCProject>>interruptName: (in category 'utilities') -----
  interruptName: labelString
  	"Create a Notifier on the active scheduling process with the given label."
  
+ 	^ world interruptName: labelString
- 	^ ScheduledControllers interruptName: labelString
  !

Item was changed:
  ----- Method: MVCProject>>interruptName:preemptedProcess: (in category 'utilities') -----
  interruptName: labelString preemptedProcess: theInterruptedProcess
  	"Create a Notifier on the active scheduling process with the given label."
  
+ 	^ world interruptName: labelString preemptedProcess: theInterruptedProcess
- 	^ ScheduledControllers interruptName: labelString preemptedProcess: theInterruptedProcess
  !

Item was changed:
  ----- Method: MVCProject>>resetDisplay (in category 'display') -----
  resetDisplay 
  	"Bring the display to a usable state after handling primitiveError."
  
+ 	world searchForActiveController!
- 	ScheduledControllers searchForActiveController!

Item was changed:
  ----- Method: MVCProject>>restoreDisplay (in category 'display') -----
  restoreDisplay 
  	"Clear the screen to gray and then redisplay all the scheduled views."
  
  	Display extent = DisplayScreen actualScreenSize
  		ifFalse:
  			[DisplayScreen startUp.
+ 			world unCacheWindows].
+ 	world restore!
- 			ScheduledControllers unCacheWindows].
- 	ScheduledControllers restore!

Item was changed:
  ----- Method: MVCProject>>saveState (in category 'enter') -----
  saveState
  	"Save the current state in me prior to leaving this project"
  
  	changeSet := ChangeSet current.
  	thumbnail ifNotNil: [thumbnail hibernate].
- 	world := ScheduledControllers.
  	transcript := Transcript
  !

Item was changed:
  ----- Method: MVCProject>>scheduleProcessForEnter: (in category 'enter') -----
  scheduleProcessForEnter: showZoom
  	"Complete the enter: by launching a new process"
  
  	| newProcess |
  	SystemWindow clearTopWindow.	"break external ref to this project"
  	newProcess := [	
+ 		world resetActiveController.	"in case of walkback in #restore"
+ 		showZoom ifFalse: [world restore].
+ 		world searchForActiveController
- 		ScheduledControllers resetActiveController.	"in case of walkback in #restore"
- 		showZoom ifFalse: [ScheduledControllers restore].
- 		ScheduledControllers searchForActiveController
  	] newProcess priority: Processor userSchedulingPriority.
  	newProcess resume.		"lose the current process and its referenced morphs"
  !

Item was changed:
  ----- Method: MVCProject>>setAsBackground: (in category 'utilities') -----
  setAsBackground: aForm
  	"Set  aForm as a background image."
  
+ 	world screenController model form: aForm.
- 	ScheduledControllers screenController model form: aForm.
  	Display restoreAfter: []!

Item was changed:
  ----- Method: MVCProject>>textWindows (in category 'utilities') -----
  textWindows
  	"Answer a dictionary of all system windows for text display keyed by window title.
  	Generate new window titles as required to ensure unique keys in the dictionary."
  
  	| aDict windows title |
  	aDict := Dictionary new.
+ 	windows := world controllersSatisfying:
- 	windows := ScheduledControllers controllersSatisfying:
  		[:c | (c model isKindOf: StringHolder)].
  	windows do:
  		[:aController | | textToUse aTextView | 
  			aTextView := aController view subViews detect: [:m | m isKindOf: PluggableTextView] ifNone: [nil].
  			textToUse := aTextView
  				ifNil:		[aController model contents]
  				ifNotNil:	[aTextView controller text].  "The latest edits, whether accepted or not"
  				title := aController view label.
  				(aDict includesKey: title) ifTrue: [ | newKey | "Ensure unique keys in aDict"
  					(1 to: 100) detect: [:e |
  							newKey := title, '-', e asString.
  							(aDict includesKey: newKey) not].
  					title := newKey].
  			aDict at: title put: textToUse].
  	^ aDict!

Item was changed:
  ----- Method: MVCProject>>uiProcess (in category 'active process') -----
  uiProcess
+ 	
+ 	^ world activeControllerProcess!
- 	^ScheduledControllers activeControllerProcess!



More information about the Squeak-dev mailing list