Marcel Taeumel uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-mt.770.mcz
==================== Summary ====================
Name: Morphic-mt.770 Author: mt Time: 6 March 2015, 8:44:10.825 am UUID: c8483e78-e2d0-9747-9517-7b4b51ae1b6d Ancestors: Morphic-mt.769
Convenience items added to "Windows" menu in world main docking bar to close multiple or all windows at once.
Idea: Clean up the whole world and start a new task with few clicks.
=============== Diff against Morphic-mt.769 ===============
Item was added: + ----- Method: TheWorldMainDockingBar>>closeAllWindows (in category 'submenu - windows') ----- + closeAllWindows + self allVisibleWindows do: [:each | + each model canDiscardEdits ifTrue: [each delete]]!
Item was added: + ----- Method: TheWorldMainDockingBar>>closeAllWindowsButWorkspaces (in category 'submenu - windows') ----- + closeAllWindowsButWorkspaces + + (UserDialogBoxMorph + confirm: 'There might be unsaved changes.\Do you really want to close all windows\that are no workspaces?' withCRs + title: 'Only keep workspaces') ifTrue: [ + self allVisibleWindows + reject: [:each | each model isKindOf: Workspace] + thenDo: [:each | [each delete] valueSupplyingAnswer: true]].!
Item was added: + ----- Method: TheWorldMainDockingBar>>closeAllWindowsUnsafe (in category 'submenu - windows') ----- + closeAllWindowsUnsafe + + (UserDialogBoxMorph + confirm: 'There might be unsaved changes.\Do you really want to close all windows?' withCRs + title: 'Close All Windows') ifTrue: [ + self allVisibleWindows do: [:each | [each delete] valueSupplyingAnswer: true]].!
Item was changed: ----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'submenu - windows') ----- listWindowsOn: menu
| windows | windows := SortedCollection sortBlock: [:winA :winB | winA model name = winB model name ifTrue: [winA label < winB label] ifFalse: [winA model name < winB model name]]. windows addAll: self allVisibleWindows. windows ifEmpty: [ menu addItem: [ :item | item contents: 'No Windows' translated; isEnabled: false ] ]. windows do: [ :each | menu addItem: [ :item | item contents: (self windowMenuItemLabelFor: each); icon: (self colorIcon: each model defaultBackgroundColor); target: each; selector: #comeToFront; subMenuUpdater: self selector: #windowMenuFor:on: arguments: { each }; + action: [ each activateAndForceLabelToShow; expand ] ] ]. + menu + addLine; + add: 'Close all windows' target: self selector: #closeAllWindowsUnsafe; + add: 'Close all windows w/o changes' target: self selector: #closeAllWindows; + add: 'Close all windows but workspaces' target: self selector: #closeAllWindowsButWorkspaces.! - action: [ each activateAndForceLabelToShow; expand ] ] ].!
squeak-dev@lists.squeakfoundation.org