The Inbox: System-dtl.977.mcz

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

The Inbox: System-dtl.977.mcz

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

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

Name: System-dtl.977
Author: dtl
Time: 15 November 2017, 8:22:41.646862 pm
UUID: 3d7fa082-cd00-4df2-8574-19b747bb5784
Ancestors: System-dtl.976

Initial rehabilitation of worlds in worlds. Changes are in Morphic and System packages.

To: [hidden email]
From: Bob Arning <[hidden email]>
Date: Tue, 14 Nov 2017 08:14:07 -0500
Subject: Re: [squeak-dev] ActiveWorld and World globals

Here is a start (squeak 5.1). Not extensively tested, but a FileList in
a world in the World was operational.

'From Squeak5.1 of 23 August 2016 [latest update: #16548] on 14 November 2017 at 8:11:28 am'!
"Change Set: fixProjectView
Date: 14 November 2017
Author: Bob Arning

squeak 5.1...

reinstate 'ENTER ACTIVE' option in menu for ProjectViewMorph "!

=============== Diff against System-dtl.976 ===============

Item was added:
+ ----- Method: Project>>enterAsActiveSubprojectWithin: (in category 'enter') -----
+ enterAsActiveSubprojectWithin: enclosingWorld
+
+     "Install my ChangeSet, Transcript, and scheduled views as current globals.
+
+     If returningFlag is true, we will return to the project from whence the current project was entered; don't change its previousProject link in this case.
+     If saveForRevert is true, save the ImageSegment of the project being left.
+     If revertFlag is true, make stubs for the world of the project being left.
+     If revertWithoutAsking is true in the project being left, then always revert."
+
+     "Experimental mods for initial multi-project work:
+         1. assume in morphic (this eliminated need for <showZoom>)
+         2. assume <saveForRevert> is false (usual case) - removed <old>
+         3. assume <revertFlag> is false
+         4. assume <revertWithoutAsking> is false - <forceRevert> now auto false <seg> n.u.
+         5. no zooming
+         6. assume <projectsSentToDisk> false - could be dangerous here
+         7. assume no isolation problems (isolationHead ==)
+         8. no closing scripts
+     "
+
+     self isCurrentProject ifTrue: [^ self].
+
+     "guards ifNotNil: [
+         guards := guards reject: [:obj | obj isNil].
+         guards do: [:obj | obj okayToEnterProject ifFalse: [^ self]]
+     ]."
+
+         "CurrentProject makeThumbnail."
+         "--> Display bestGuessOfCurrentWorld triggerClosingScripts."
+     CurrentProject displayDepth: Display depth.
+
+     displayDepth == nil ifTrue: [displayDepth := Display depth].
+         "Display newDepthNoRestore: displayDepth."
+
+         "(world hasProperty: #letTheMusicPlay)
+             ifTrue: [world removeProperty: #letTheMusicPlay]
+             ifFalse: [Smalltalk at: #ScorePlayer ifPresent: [:playerClass |
+                         playerClass allSubInstancesDo: [:player | player pause]]]."
+
+         "returningFlag
+             ifTrue: [nextProject := CurrentProject]
+             ifFalse: [previousProject := CurrentProject]."
+
+         "CurrentProject saveState."
+         "CurrentProject := self."
+         "Smalltalk newChanges: changeSet."
+         "TranscriptStream newTranscript: transcript."
+         "Sensor flushKeyboard."
+         "recorderOrNil := Display pauseMorphicEventRecorder."
+
+         "Display changeMorphicWorldTo: world."  "Signifies Morphic"
+     world
+         installAsActiveSubprojectIn: enclosingWorld
+         titled: self name.
+
+         "recorderOrNil ifNotNil: [recorderOrNil resumeIn: world]."
+     world triggerOpeningScripts.
+     self removeParameter: #exportState.
+         "self spawnNewProcessAndTerminateOld: true"!