Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1029.mcz
==================== Summary ====================
Name: System-mt.1029
Author: mt
Time: 24 May 2018, 11:33:34.473783 am
UUID: 1e5f5805-6530-4bf9-a93b-dc6bca992319
Ancestors: System-mt.1028
Fixes the bug with entering/leaving projects that change the display depth.
=============== Diff against System-mt.1028 ===============
Item was added:
+ ----- Method: Project>>displayDepth (in category 'accessing') -----
+ displayDepth
+ ^ displayDepth!
Item was changed:
----- Method: Project>>enter:revert:saveForRevert: (in category 'enter') -----
enter: returningFlag revert: revertFlag saveForRevert: saveForRevert
"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."
| leavingProject forceRevert response seg |
self isIncompletelyLoaded
ifTrue: [^ self loadFromServer: true].
self isCurrentProject
ifTrue: [^ self].
EmergencyRecoveryRequested := false. "normal project entry clears recursion guard"
forceRevert := false.
CurrentProject rawParameters
ifNil: [revertFlag ifTrue: [^ self inform: 'nothing to revert to' translated]]
ifNotNil: [saveForRevert ifFalse: [
forceRevert := CurrentProject projectParameters
at: #revertWithoutAsking ifAbsent: [false]]].
forceRevert not & revertFlag ifTrue: [
response := (UIManager default chooseFrom: {
'Revert to saved version' translated.
'Cancel' translated.
} title: 'Are you sure you want to destroy this Project\ and revert to an older version?\\(From the parent project, click on this project''s thumbnail.)' translated withCRs) = 1.
response ifFalse: [^ self]].
revertFlag | forceRevert
ifTrue: [seg := CurrentProject projectParameters at: #revertToMe ifAbsent: [
^ self inform: 'nothing to revert to' translated]]
ifFalse: [
CurrentProject makeThumbnail.
returningFlag == #specialReturn
ifTrue:
[ProjectHistory forget: CurrentProject. "this guy is irrelevant"
Project forget: CurrentProject]
ifFalse:
[ProjectHistory remember: CurrentProject]].
(revertFlag | saveForRevert | forceRevert) ifFalse: [
(Preferences valueOfFlag: #projectsSentToDisk)
ifTrue: [
self inform: 'Project serialization via image segments\does not work at the moment. Disabling the\preference #projectsSentToDisk now...' withCRs.
Preferences disable: #projectsSentToDisk.
"self storeToMakeRoom"]].
"Update display depth for leaving and entring project."
CurrentProject displayDepth: Display depth.
displayDepth == nil ifTrue: [displayDepth := Display depth].
self installNewDisplay: Display extent depth: displayDepth.
returningFlag == #specialReturn ifTrue: [
CurrentProject removeChangeSetIfPossible. "keep this stuff from accumulating"
nextProject := nil
] ifFalse: [
returningFlag
ifTrue: [nextProject := CurrentProject]
ifFalse: [previousProject := CurrentProject].
].
CurrentProject world triggerEvent: #aboutToLeaveWorld.
CurrentProject abortResourceLoading.
CurrentProject finalExitActions: self.
CurrentProject saveState.
"********** SWITCHING CURRENT PROJECT **********"
leavingProject := CurrentProject.
CurrentProject := self.
ProjectHistory remember: self.
"********** SWITCHING CURRENT PROJECT **********"
self loadState.
self finalEnterActions: leavingProject.
self addDeferredUIMessage: [self startResourceLoading].
self world triggerEvent: #aboutToEnterWorld.
"Save project for revert."
saveForRevert ifTrue: [
Smalltalk garbageCollect. "let go of pointers"
leavingProject storeSegment.
"result :=" leavingProject world isInMemory
ifTrue: ['Can''t seem to write the project.']
ifFalse: [leavingProject projectParameters at: #revertToMe put:
leavingProject world xxxSegment shallowCopy].
'Project written.'].
"original is for coming back in and continuing."
revertFlag | forceRevert ifTrue: [
seg shallowCopy revert]. "non-cloned one is for reverting again later"
self removeParameter: #exportState.
"Now that everything is set up, we can show zoom animation."
+ (self showZoom and: [leavingProject displayDepth = self displayDepth])
- self showZoom
ifTrue: [self displayZoom: leavingProject parent ~~ self "Entering?"]
ifFalse: [self restore].
"Update processes at last."
self scheduleProcessForEnter.
leavingProject terminateProcessForLeave.
!
Item was changed:
----- Method: Project>>installNewDisplay:depth: (in category 'initialization') -----
installNewDisplay: extent depth: depth
"When entering a new project, install a new Display if necessary."
+ Display setExtent: extent depth: depth.
+ Display beDisplay.!
- ^Display setExtent: extent depth: depth!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1170.mcz
==================== Summary ====================
Name: Kernel-mt.1170
Author: mt
Time: 24 May 2018, 10:24:50.225621 am
UUID: 722cd140-f6f2-8642-be85-61be05c77c92
Ancestors: Kernel-mt.1169
Harmonize method reference and class references.
=============== Diff against Kernel-mt.1169 ===============
Item was removed:
- ----- Method: CompiledCode>>printSignatureOn: (in category 'printing') -----
- printSignatureOn: aStream
- "Print a string that can be used to access the currently installed method."
- aStream print: self methodClass;
- nextPutAll: '>>';
- nextPutAll: self selector storeString!
Item was added:
+ ----- Method: Object>>isClassReference (in category 'testing') -----
+ isClassReference
+
+ ^ false!
Item was added:
+ ----- Method: Object>>isReference (in category 'testing') -----
+ isReference
+
+ ^ self isClassReference or: [self isMethodReference]!
tim Rowledge uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-tpr.1437.mcz
==================== Summary ====================
Name: Morphic-tpr.1437
Author: tpr
Time: 22 May 2018, 5:33:32.199768 pm
UUID: d675d118-fb16-4878-b0a7-1756fb5b8aae
Ancestors: Morphic-kfr.1436
Use the new DirectoryChooser to find projects.
It lacks the interesting decorations of the older version; this may upset people enough to want to revert this.
=============== Diff against Morphic-kfr.1436 ===============
Item was changed:
----- Method: MorphicProject>>findAFolderForProject:label: (in category 'utilities') -----
findAFolderForProject: aProject label: dialogLabel
"Find a folder for saving or loading a project"
+ ^DirectoryChooserDialog findAFolderForProject: aProject label: dialogLabel
- ^FileList2 modalFolderSelectorForProject: aProject
!
tim Rowledge uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-tpr.226.mcz
==================== Summary ====================
Name: Network-tpr.226
Author: tpr
Time: 22 May 2018, 5:17:49.262652 pm
UUID: ca28ea3c-7b03-4b6e-b1ad-26c1c2efa2ba
Ancestors: Network-ul.225
If one has a server directory included in the FileList but do not enter the password when it is requested, a never ending cycle can be entered. The
#poenFTPClient method will ask if yu want to give up and if you do, will try open a notifier. Either proceeding or abandoning will just throw you back into the drug den of horror.
A simple improvement - though not really a full solution - is to not open the notifier. At least that way you get back to the real world.
Added comment to explain a little of this in FTPClient>login, which is where the real problem lies; the rather odd seeming decision that #requestPassword: should return an empty string on cancel means that we can never tell whether the intent was an actual empty password (permitted and used in some places) or a cancellation. As it is, the login is attempted (and takes up user time) with the empty string, and if that fails to login correctly, the user is asked if they meant to cancel. This is a very poor UI. Much ncer would be for a cancellation to be recognised correctly and for things to be, well, cancelled.
There aren't really any good reasons for returning an in-band value when an out-of-band action was requested. It's also not the best of ideas for non-UI systems to be explicitly requesting UI actions rather than using a more indirect method such as exception raising.
=============== Diff against Network-ul.225 ===============
Item was changed:
----- Method: FTPClient>>login (in category 'private') -----
login
self initiateSession.
self user ifNil: [^self].
["repeat both USER and PASS since some servers require it"
self sendCommand: 'USER ', self user.
"331 Password required"
self lookForCode: 331.
+
+ self sendCommand: 'PASS ', self password."will ask user, if needed. An extra delight is that either accepting an empty string or cancelling the dialog will return an empty string. So how do we know whether to try to log in with an empty password or give up?"
- "will ask user, if needed"
- self sendCommand: 'PASS ', self password.
"230 User logged in"
([self lookForCode: 230.]
on: TelnetProtocolError
do: [false]) == false
] whileTrue: [
(LoginFailedException protocolInstance: self) signal: self lastResponse]
!
Item was changed:
----- Method: ServerDirectory>>openFTPClient (in category 'dis/connect') -----
openFTPClient
| loginSuccessful |
client
ifNotNil: [client isConnected
ifTrue: [^client]
ifFalse: [client := nil]].
client := FTPClient openOnHostNamed: server.
loginSuccessful := false.
[loginSuccessful]
whileFalse: [
[loginSuccessful := true.
client loginUser: self user password: self password]
on: LoginFailedException
do: [:ex |
| what |
passwordHolder := nil.
what := UIManager default
chooseFrom: #('enter password' 'give up')
title: 'Would you like to try another password?'.
+ what = 1 ifFalse: [ ^nil].
- what = 1 ifFalse: [self error: 'Login failed.'. ^nil].
loginSuccessful := false]].
client changeDirectoryTo: directory.
^client!
Karl Ramberg uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-kfr.1436.mcz
==================== Summary ====================
Name: Morphic-kfr.1436
Author: kfr
Time: 22 May 2018, 10:58:37.053577 pm
UUID: 31da9b7c-7013-354a-838c-91d19533e3ef
Ancestors: Morphic-kfr.1435
Convert old Slider/ ScollBar sends from #scrollBarValue: to #vScrollBarValue:
I don't think there will be a problem with horizontal scrolling...
=============== Diff against Morphic-kfr.1435 ===============
Item was added:
+ ----- Method: Slider>>convertToCurrentVersion:refStream: (in category 'accessing') -----
+ convertToCurrentVersion: varDict refStream: smartRefStrm
+
+ (setValueSelector = #scrollBarValue:) ifTrue:[self setValueSelector: #vScrollBarValue:].
+ ^ super convertToCurrentVersion: varDict refStream: smartRefStrm!