Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.1017.mcz
==================== Summary ====================
Name: Morphic-cmm.1017
Author: cmm
Time: 21 October 2015, 10:58:27.344 am
UUID: e7bb8d82-a440-4d4f-b53d-b4c772827458
Ancestors: Morphic-topa.1016
- When Windows Raise On Click is off, still raise SystemWindows when any of their resize or splitter handles are clicked, not just their title bar, so that Z-order can be adjusted even when the title bar is covered.
- Demote Command+t back to a desktop-only command key, not global, because I forgot about Command+t for stepping Over in the debugger -- we don't need that opening a Transcript.
=============== Diff against Morphic-topa.1016 ===============
Item was added:
+ ----- Method: CornerGripMorph>>mouseDown: (in category 'as yet unclassified') -----
+ mouseDown: aMouseButtonEvent
+ target isSystemWindow ifTrue:
+ [ target == SystemWindow topWindow ifFalse: [ target activate ] ].
+ super mouseDown: aMouseButtonEvent!
Item was changed:
----- Method: PasteUpMorph>>handleListenEvent: (in category 'events-processing') -----
handleListenEvent: aUserInputEvent
"Handlers for *global* keys, regardless of which widget has keyboard focus."
aUserInputEvent type = #keystroke ifTrue:
[ aUserInputEvent commandKeyPressed ifTrue:
+ [ aUserInputEvent keyValue = $R asciiValue ifTrue: [ Utilities browseRecentSubmissions ].
- [ aUserInputEvent keyValue = $t asciiValue ifTrue: [ World findATranscript: aUserInputEvent ].
- aUserInputEvent keyValue = $R asciiValue ifTrue: [ Utilities browseRecentSubmissions ].
aUserInputEvent keyValue = $L asciiValue ifTrue: [ World findAFileList: aUserInputEvent ].
aUserInputEvent keyValue = $O asciiValue ifTrue: [ World findAMonticelloBrowser ].
aUserInputEvent keyValue = $P asciiValue ifTrue: [ World findAPreferencesPanel: aUserInputEvent ].
aUserInputEvent keyValue = $Z asciiValue ifTrue: [ ChangeList browseRecentLog ].
aUserInputEvent keyValue = $] asciiValue ifTrue:
[ Smalltalk
snapshot: true
andQuit: false ] ] ]!
Item was changed:
----- Method: ProportionalSplitterMorph>>mouseDown: (in category 'events') -----
mouseDown: anEvent
"If the user manually drags me, don't override him with auto positioning."
+ self owningWindow ifNotNil: [ : systemWindow | systemWindow == SystemWindow topWindow ifFalse: [ systemWindow activate ]].
anEvent redButtonChanged
ifTrue: [ self withSiblingSplittersDo: [ : each | each stopStepping ] ]
ifFalse:
[ anEvent shiftPressed
ifTrue: [ self startStepping ]
ifFalse:
[ self startStepping.
self withSiblingSplittersDo: [ : each | each startStepping ] ] ].
(self class showSplitterHandles not and: [ self bounds containsPoint: anEvent cursorPoint ]) ifTrue:
[ oldColor := self color.
self color: Color black ].
^ super mouseDown: anEvent!
Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.1017.mcz
==================== Summary ====================
Name: Morphic-cmm.1017
Author: cmm
Time: 21 October 2015, 10:58:27.344 am
UUID: e7bb8d82-a440-4d4f-b53d-b4c772827458
Ancestors: Morphic-topa.1016
- When Windows Raise On Click is off, still raise SystemWindows when any of their resize or splitter handles are clicked, not just their title bar, so that Z-order can be adjusted even when the title bar is covered.
- Demote Command+t back to a desktop-only command key, not global, because I forgot about Command+t for stepping Over in the debugger -- we don't need that opening a Transcript.
=============== Diff against Morphic-topa.1016 ===============
Item was added:
+ ----- Method: CornerGripMorph>>mouseDown: (in category 'as yet unclassified') -----
+ mouseDown: aMouseButtonEvent
+ target isSystemWindow ifTrue:
+ [ target == SystemWindow topWindow ifFalse: [ target activate ] ].
+ super mouseDown: aMouseButtonEvent!
Item was changed:
----- Method: PasteUpMorph>>handleListenEvent: (in category 'events-processing') -----
handleListenEvent: aUserInputEvent
"Handlers for *global* keys, regardless of which widget has keyboard focus."
aUserInputEvent type = #keystroke ifTrue:
[ aUserInputEvent commandKeyPressed ifTrue:
+ [ aUserInputEvent keyValue = $R asciiValue ifTrue: [ Utilities browseRecentSubmissions ].
- [ aUserInputEvent keyValue = $t asciiValue ifTrue: [ World findATranscript: aUserInputEvent ].
- aUserInputEvent keyValue = $R asciiValue ifTrue: [ Utilities browseRecentSubmissions ].
aUserInputEvent keyValue = $L asciiValue ifTrue: [ World findAFileList: aUserInputEvent ].
aUserInputEvent keyValue = $O asciiValue ifTrue: [ World findAMonticelloBrowser ].
aUserInputEvent keyValue = $P asciiValue ifTrue: [ World findAPreferencesPanel: aUserInputEvent ].
aUserInputEvent keyValue = $Z asciiValue ifTrue: [ ChangeList browseRecentLog ].
aUserInputEvent keyValue = $] asciiValue ifTrue:
[ Smalltalk
snapshot: true
andQuit: false ] ] ]!
Item was changed:
----- Method: ProportionalSplitterMorph>>mouseDown: (in category 'events') -----
mouseDown: anEvent
"If the user manually drags me, don't override him with auto positioning."
+ self owningWindow ifNotNil: [ : systemWindow | systemWindow == SystemWindow topWindow ifFalse: [ systemWindow activate ]].
anEvent redButtonChanged
ifTrue: [ self withSiblingSplittersDo: [ : each | each stopStepping ] ]
ifFalse:
[ anEvent shiftPressed
ifTrue: [ self startStepping ]
ifFalse:
[ self startStepping.
self withSiblingSplittersDo: [ : each | each startStepping ] ] ].
(self class showSplitterHandles not and: [ self bounds containsPoint: anEvent cursorPoint ]) ifTrue:
[ oldColor := self color.
self color: Color black ].
^ super mouseDown: anEvent!
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.643.mcz
==================== Summary ====================
Name: Tools-mt.643
Author: mt
Time: 21 October 2015, 9:32:57.533 am
UUID: bab4a899-da58-a849-893a-e974390d7253
Ancestors: Tools-cmm.642
If there is nothing to pretty-diff, show at least the pretty-printed version of the code to avoid confusion.
=============== Diff against Tools-cmm.642 ===============
Item was changed:
----- Method: ChangeList>>diffedVersionContents (in category 'viewing access') -----
diffedVersionContents
"Answer diffed version contents, maybe pretty maybe not"
| change class earlier later |
(listIndex = 0
or: [changeList size < listIndex])
ifTrue: [^ ''].
change := changeList at: listIndex.
later := change text.
class := change methodClass.
(listIndex == changeList size or: [class == nil])
+ ifTrue: [^ (self showingPrettyDiffs and: [class notNil])
+ ifTrue: [class prettyPrinterClass format: later in: class notifying: nil]
+ ifFalse: [later]].
- ifTrue: [^ later].
earlier := (changeList at: listIndex + 1) text.
^ TextDiffBuilder buildDisplayPatchFrom: earlier to: later inClass: class prettyDiffs: self showingPrettyDiffs!
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.643.mcz
==================== Summary ====================
Name: Tools-mt.643
Author: mt
Time: 21 October 2015, 9:32:57.533 am
UUID: bab4a899-da58-a849-893a-e974390d7253
Ancestors: Tools-cmm.642
If there is nothing to pretty-diff, show at least the pretty-printed version of the code to avoid confusion.
=============== Diff against Tools-cmm.642 ===============
Item was changed:
----- Method: ChangeList>>diffedVersionContents (in category 'viewing access') -----
diffedVersionContents
"Answer diffed version contents, maybe pretty maybe not"
| change class earlier later |
(listIndex = 0
or: [changeList size < listIndex])
ifTrue: [^ ''].
change := changeList at: listIndex.
later := change text.
class := change methodClass.
(listIndex == changeList size or: [class == nil])
+ ifTrue: [^ (self showingPrettyDiffs and: [class notNil])
+ ifTrue: [class prettyPrinterClass format: later in: class notifying: nil]
+ ifFalse: [later]].
- ifTrue: [^ later].
earlier := (changeList at: listIndex + 1) text.
^ TextDiffBuilder buildDisplayPatchFrom: earlier to: later inClass: class prettyDiffs: self showingPrettyDiffs!
Tobias Pape uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-topa.91.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-topa.91
Author: topa
Time: 20 October 2015, 10:45:19.628 am
UUID: 63d2a49c-5a31-4fcd-a2ff-8c24c045b1d3
Ancestors: ToolBuilder-Kernel-topa.90
Don't bother displaying emty lists to chose from
=============== Diff against ToolBuilder-Kernel-topa.90 ===============
Item was changed:
----- Method: UIManager>>classOrTraitFrom:pattern:label: (in category 'system introspecting') -----
classOrTraitFrom: environment pattern: pattern label: label
"If there is a class or trait whose name exactly given by pattern, return it.
If there is only one class or trait in the given environment whose name matches pattern, return it.
Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
This method ignores separator characters in the pattern"
| toMatch potentialNames names exactMatch lines reducedIdentifiers selectedIndex |
toMatch := pattern copyWithoutAll: Character separators.
toMatch ifEmpty: [ ^nil ].
"If there's a class or trait named as pattern, then return it."
Symbol hasInterned: pattern ifTrue: [ :symbol |
environment at: symbol ifPresent: [ :maybeClassOrTrait |
((maybeClassOrTrait isKindOf: Class) or: [
maybeClassOrTrait isTrait ])
ifTrue: [ ^maybeClassOrTrait ] ] ].
"No exact match, look for potential matches."
toMatch := pattern asLowercase copyWithout: $..
potentialNames := (environment classAndTraitNames) asOrderedCollection.
names := pattern last = $. "This is some old hack, using String>>#match: may be better."
ifTrue: [ potentialNames select: [ :each | each asLowercase = toMatch ] ]
ifFalse: [
potentialNames select: [ :each |
each includesSubstring: toMatch caseSensitive: false ] ].
exactMatch := names detect: [ :each | each asLowercase = toMatch ] ifNone: [ nil ].
lines := OrderedCollection new.
exactMatch ifNotNil: [ lines add: 1 ].
"Also try some fuzzy matching."
reducedIdentifiers := pattern suggestedTypeNames select: [ :each |
potentialNames includes: each ].
reducedIdentifiers ifNotEmpty: [
names addAll: reducedIdentifiers.
lines add: 1 + names size + reducedIdentifiers size ].
"Let the user select if there's more than one possible match. This may give surprising results."
+ names size = 0 ifTrue: [^ nil "nothing matches"].
+
selectedIndex := names size = 1
ifTrue: [ 1 ]
ifFalse: [
exactMatch ifNotNil: [ names addFirst: exactMatch ].
self chooseFrom: names lines: lines title: label ].
selectedIndex = 0 ifTrue: [ ^nil ].
^environment at: (names at: selectedIndex) asSymbol!
Tobias Pape uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-topa.91.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-topa.91
Author: topa
Time: 20 October 2015, 10:45:19.628 am
UUID: 63d2a49c-5a31-4fcd-a2ff-8c24c045b1d3
Ancestors: ToolBuilder-Kernel-topa.90
Don't bother displaying emty lists to chose from
=============== Diff against ToolBuilder-Kernel-topa.90 ===============
Item was changed:
----- Method: UIManager>>classOrTraitFrom:pattern:label: (in category 'system introspecting') -----
classOrTraitFrom: environment pattern: pattern label: label
"If there is a class or trait whose name exactly given by pattern, return it.
If there is only one class or trait in the given environment whose name matches pattern, return it.
Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
This method ignores separator characters in the pattern"
| toMatch potentialNames names exactMatch lines reducedIdentifiers selectedIndex |
toMatch := pattern copyWithoutAll: Character separators.
toMatch ifEmpty: [ ^nil ].
"If there's a class or trait named as pattern, then return it."
Symbol hasInterned: pattern ifTrue: [ :symbol |
environment at: symbol ifPresent: [ :maybeClassOrTrait |
((maybeClassOrTrait isKindOf: Class) or: [
maybeClassOrTrait isTrait ])
ifTrue: [ ^maybeClassOrTrait ] ] ].
"No exact match, look for potential matches."
toMatch := pattern asLowercase copyWithout: $..
potentialNames := (environment classAndTraitNames) asOrderedCollection.
names := pattern last = $. "This is some old hack, using String>>#match: may be better."
ifTrue: [ potentialNames select: [ :each | each asLowercase = toMatch ] ]
ifFalse: [
potentialNames select: [ :each |
each includesSubstring: toMatch caseSensitive: false ] ].
exactMatch := names detect: [ :each | each asLowercase = toMatch ] ifNone: [ nil ].
lines := OrderedCollection new.
exactMatch ifNotNil: [ lines add: 1 ].
"Also try some fuzzy matching."
reducedIdentifiers := pattern suggestedTypeNames select: [ :each |
potentialNames includes: each ].
reducedIdentifiers ifNotEmpty: [
names addAll: reducedIdentifiers.
lines add: 1 + names size + reducedIdentifiers size ].
"Let the user select if there's more than one possible match. This may give surprising results."
+ names size = 0 ifTrue: [^ nil "nothing matches"].
+
selectedIndex := names size = 1
ifTrue: [ 1 ]
ifFalse: [
exactMatch ifNotNil: [ names addFirst: exactMatch ].
self chooseFrom: names lines: lines title: label ].
selectedIndex = 0 ifTrue: [ ^nil ].
^environment at: (names at: selectedIndex) asSymbol!
Tobias Pape uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-topa.189.mcz
==================== Summary ====================
Name: ST80-topa.189
Author: topa
Time: 20 October 2015, 10:44:13.911 am
UUID: 33441d36-5afd-43db-9708-dbbe07425792
Ancestors: ST80-topa.188
React to deprecations, renames, and missing methods
=============== Diff against ST80-topa.188 ===============
Item was added:
+ ----- Method: Controller>>closeAndUnscheduleNoTerminate (in category 'as yet unclassified') -----
+ closeAndUnscheduleNoTerminate
+ !
Item was changed:
----- Method: Debugger>>mvcResumeProcess: (in category '*ST80-opening') -----
mvcResumeProcess: aTopView
aTopView erase.
savedCursor
+ ifNotNil: [Cursor currentCursor: savedCursor].
- ifNotNil: [Sensor currentCursor: savedCursor].
interruptedProcess isTerminated ifFalse: [
ScheduledControllers activeControllerNoTerminate: interruptedController andProcess: interruptedProcess].
"if old process was terminated, just terminate current one"
interruptedProcess := nil. "Before delete, so release doesn't terminate it"
aTopView controller closeAndUnscheduleNoErase.
Smalltalk installLowSpaceWatcher. "restart low space handler"
Processor terminateActive
!
Item was changed:
----- Method: ParagraphEditor>>browseClassFromIt (in category 'menu messages') -----
browseClassFromIt
"Launch a browser for the class indicated by the current selection.
If multiple classes matching the selection exist, let the user choose among them."
| aClass |
self
lineSelectAndEmptyCheck: [^ self].
+ aClass := UIManager default
+ classFromPattern: self selection string
- aClass := Utilities
- classFromPattern: (self selection string copyWithoutAll: CharacterSet separators)
withCaption: 'choose a class to browse...'.
aClass
ifNil: [^ view flash].
self
terminateAndInitializeAround:
[| aBrow |
aBrow := SystemBrowser default new.
aBrow setClass: aClass selector: nil.
aBrow class
openBrowserView: (aBrow openEditString: nil) label: 'System Browser'].!
Item was changed:
----- Method: PluggableButtonView>>getModelState (in category 'private') -----
getModelState
"Answer the result of sending the receiver's model the getStateSelector message."
+ (model isNil or: [getStateSelector isNil])
- getStateSelector == nil
ifTrue: [^ false]
ifFalse: [^ model perform: getStateSelector].
!
Item was changed:
----- Method: ScreenController>>configureFonts (in category 'menu messages') -----
configureFonts
+ | aMenu result |
+ aMenu := CustomMenu fromArray: #(
+ ('default text font...' chooseSystemFont)
+ ('list font' chooseListFont)
+ ('flaps font' chooseFlapsFont)
+ ('menu font' chooseMenuFont)
+ ('window-title font' chooseWindowTitleFont)
+ ('code font' chooseCodeFont)
+ -
+ ('restore default font choices' restoreDefaultFonts)).
+ aMenu title: 'Standard System Fonts'.
+
+ (result := aMenu startUp) ifNotNil:
+ [Preferences perform: result].!
- Preferences presentMvcFontConfigurationMenu!
Item was changed:
----- Method: View>>setDefaultBackgroundColor (in category 'initialize-release') -----
setDefaultBackgroundColor
+ "Obtain the background color from the receiver's model.
+ The preferences make sure whether this is a colorful or uniform
+ look."
- "Obtain the background color from the receiver's model, unless the #uniformWindowColors preference is set to true, in which case obtain it from generic Object; and install it as the receiver's background color. 5/1/96 sw"
+ self backgroundColor: model defaultBackgroundColor!
- | colorToUse |
- colorToUse := Preferences uniformWindowColors
- ifTrue:
- [Object new defaultBackgroundColor]
- ifFalse:
- [model defaultBackgroundColor].
- self backgroundColor: colorToUse!
Tobias Pape uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-topa.189.mcz
==================== Summary ====================
Name: ST80-topa.189
Author: topa
Time: 20 October 2015, 10:44:13.911 am
UUID: 33441d36-5afd-43db-9708-dbbe07425792
Ancestors: ST80-topa.188
React to deprecations, renames, and missing methods
=============== Diff against ST80-topa.188 ===============
Item was added:
+ ----- Method: Controller>>closeAndUnscheduleNoTerminate (in category 'as yet unclassified') -----
+ closeAndUnscheduleNoTerminate
+ !
Item was changed:
----- Method: Debugger>>mvcResumeProcess: (in category '*ST80-opening') -----
mvcResumeProcess: aTopView
aTopView erase.
savedCursor
+ ifNotNil: [Cursor currentCursor: savedCursor].
- ifNotNil: [Sensor currentCursor: savedCursor].
interruptedProcess isTerminated ifFalse: [
ScheduledControllers activeControllerNoTerminate: interruptedController andProcess: interruptedProcess].
"if old process was terminated, just terminate current one"
interruptedProcess := nil. "Before delete, so release doesn't terminate it"
aTopView controller closeAndUnscheduleNoErase.
Smalltalk installLowSpaceWatcher. "restart low space handler"
Processor terminateActive
!
Item was changed:
----- Method: ParagraphEditor>>browseClassFromIt (in category 'menu messages') -----
browseClassFromIt
"Launch a browser for the class indicated by the current selection.
If multiple classes matching the selection exist, let the user choose among them."
| aClass |
self
lineSelectAndEmptyCheck: [^ self].
+ aClass := UIManager default
+ classFromPattern: self selection string
- aClass := Utilities
- classFromPattern: (self selection string copyWithoutAll: CharacterSet separators)
withCaption: 'choose a class to browse...'.
aClass
ifNil: [^ view flash].
self
terminateAndInitializeAround:
[| aBrow |
aBrow := SystemBrowser default new.
aBrow setClass: aClass selector: nil.
aBrow class
openBrowserView: (aBrow openEditString: nil) label: 'System Browser'].!
Item was changed:
----- Method: PluggableButtonView>>getModelState (in category 'private') -----
getModelState
"Answer the result of sending the receiver's model the getStateSelector message."
+ (model isNil or: [getStateSelector isNil])
- getStateSelector == nil
ifTrue: [^ false]
ifFalse: [^ model perform: getStateSelector].
!
Item was changed:
----- Method: ScreenController>>configureFonts (in category 'menu messages') -----
configureFonts
+ | aMenu result |
+ aMenu := CustomMenu fromArray: #(
+ ('default text font...' chooseSystemFont)
+ ('list font' chooseListFont)
+ ('flaps font' chooseFlapsFont)
+ ('menu font' chooseMenuFont)
+ ('window-title font' chooseWindowTitleFont)
+ ('code font' chooseCodeFont)
+ -
+ ('restore default font choices' restoreDefaultFonts)).
+ aMenu title: 'Standard System Fonts'.
+
+ (result := aMenu startUp) ifNotNil:
+ [Preferences perform: result].!
- Preferences presentMvcFontConfigurationMenu!
Item was changed:
----- Method: View>>setDefaultBackgroundColor (in category 'initialize-release') -----
setDefaultBackgroundColor
+ "Obtain the background color from the receiver's model.
+ The preferences make sure whether this is a colorful or uniform
+ look."
- "Obtain the background color from the receiver's model, unless the #uniformWindowColors preference is set to true, in which case obtain it from generic Object; and install it as the receiver's background color. 5/1/96 sw"
+ self backgroundColor: model defaultBackgroundColor!
- | colorToUse |
- colorToUse := Preferences uniformWindowColors
- ifTrue:
- [Object new defaultBackgroundColor]
- ifFalse:
- [model defaultBackgroundColor].
- self backgroundColor: colorToUse!