[squeak-dev] The Trunk: System-mt.1382.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 18 15:52:14 UTC 2023
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1382.mcz
==================== Summary ====================
Name: System-mt.1382
Author: mt
Time: 18 January 2023, 4:52:12.391866 pm
UUID: 13ab9e16-a00e-4a4c-a572-4f039c386451
Ancestors: System-mt.1381
*** Debugger Refactoring - Step 1 of 2 ***
We want to get rid of MorphicDebugger and MVCDebugger variations while keeping Debugger as simple as possible. So, we move GUI-framework-specific (scheduling) code to MorphicProject and MVCProject.
In this first step, we set up the new hooks for Morphic and MVC:
#debugProcess:inWindow:
#prepareProcessForDebugger:
#openDebuggerWindow:
#suspendProcessSafely:
#resumeProcessSafely:
Thanks to Christoph (ct) for the idea and constant reminding that I should finally review and commit this. :-) Note that I feel responsible for any bad naming as I decided to rewrite some parts of the interface between Debugger and Project. ;-)
Note that SavedExtent is not available anymore in Debugger but will be back soon. Sorry for any inconvenience.
=============== Diff against System-mt.1381 ===============
Item was changed:
----- Method: Process>>clearErrorRecursionFlag (in category '*System-debugging support') -----
clearErrorRecursionFlag
+ self environmentRemoveKey: #errorRecursionFlag ifAbsent: nil.!
- self environmentAt: #errorRecursionFlag put: false.!
Item was added:
+ ----- Method: Project>>debugProcess:inWindow: (in category 'scheduling & debugging') -----
+ debugProcess: processToDebug inWindow: aViewOrModel
+ "Safely open a 'debugger tool' (here: aViewOrModel) on processToDebug. Projects can customize prepare-open-suspend hooks to keep the UI (and system) responsive. Also see #resumeProcessSafely:. There should be no need to overwrite this method in subclasses but only the hooks."
+
+ self
+ prepareProcessForDebugger: processToDebug;
+ openDebuggerWindow: aViewOrModel;
+ suspendProcessSafely: processToDebug.!
Item was added:
+ ----- Method: Project>>openDebuggerWindow: (in category 'scheduling & debugging') -----
+ openDebuggerWindow: aViewOrModel
+ "Build an interactive view in the current GUI framework."
+
+ self uiManager toolBuilder open: aViewOrModel.!
Item was added:
+ ----- Method: Project>>prepareProcessForDebugger: (in category 'scheduling & debugging') -----
+ prepareProcessForDebugger: processToDebug
+
+ EventSensor default flushEvents.
+ Cursor normal show.
+ !
Item was added:
+ ----- Method: Project>>resumeProcessSafely: (in category 'scheduling & debugging') -----
+ resumeProcessSafely: aProcess
+ "A debugger wants to resume the process it is debugging. Custom projects can refine this hook to take precautions so that the UI stays responsive."
+
+ aProcess resume.!
Item was added:
+ ----- Method: Project>>suspendProcessSafely: (in category 'scheduling & debugging') -----
+ suspendProcessSafely: processToDebug
+ "Suspend processToDebug. Note that if that process is the active process, no further code will be executed in the sender."
+
+ processToDebug suspend.!
More information about the Squeak-dev
mailing list
|