'From etoys2.1 of 30 August 2007 [latest update: #1612] on 11 September 2007 at 6:31:10 pm'! "Change Set: quitFix-bf Date: 11 September 2007 Author: Bert Freudenberg Ensure we quit even if project saving fails. Log an error in that case."! !Project methodsFor: 'file in/out' stamp: 'yo 9/4/2007 14:16'! storeOnServerWithNoInteraction "Save to disk as an Export Segment. Then put that file on the server I came from, as a new version. Version is literal piece of file name. Mime encoded and http encoded." | ret | world setProperty: #optimumExtentFromAuthor toValue: world extent. self isCurrentProject ifTrue: ["exit, then do the command" Flaps globalFlapTabsIfAny do: [:each | Flaps removeFlapTab: each keepInList: true]. ret _ self armsLengthCommand: #storeOnServerWithNoInteraction withDescription: 'Publishing' translated. ^ ret ]. [self storeOnServerWithNoInteractionInnards] on: Error do: [:ex | ^ false]. ^ true. ! ! !Project methodsFor: 'file in/out' stamp: 'yo 9/4/2007 14:03'! storeOnServerWithNoInteractionInnards "Save to disk as an Export Segment. Then put that file on the server I came from, as a new version. Version is literal piece of file name. Mime encoded and http encoded." | newName primaryServerDirectory serverVersionPair localDirectory localVersionPair myVersionNumber warning maxNumber priorWorld myDepth | self assureIntegerVersion. "Find out what version" primaryServerDirectory _ self defaultFolderForAutoSaving ifNil: [^self]. localDirectory _ self squeakletDirectory. serverVersionPair _ self class mostRecent: self name onServer: primaryServerDirectory. localVersionPair _ self class mostRecent: self name onServer: localDirectory. maxNumber _ myVersionNumber _ self currentVersionNumber. ProgressNotification signal: '2:versionsDetected'. warning _ ''. myVersionNumber < serverVersionPair second ifTrue: [ warning _ warning,'\There are newer version(s) on the server' translated. maxNumber _ maxNumber max: serverVersionPair second. ]. myVersionNumber < localVersionPair second ifTrue: [ warning _ warning,'\There are newer version(s) in the local directory' translated. maxNumber _ maxNumber max: localVersionPair second. ]. version _ self bumpVersion: maxNumber. "write locally - now zipped automatically" Display isVirtualScreen ifTrue: [ myDepth _ displayDepth. displayDepth _ DisplayScreen actualScreenDepth. ]. newName _ self versionedFileName. lastSavedAtSeconds _ Time totalSeconds. priorWorld _ ActiveWorld. self exportSegmentFileName: newName directory: localDirectory withoutInteraction: true. ActiveWorld _ priorWorld. (localDirectory readOnlyFileNamed: newName) setFileTypeToObject; close. Display isVirtualScreen ifTrue: [ displayDepth _ myDepth. ]. ProgressNotification signal: '4:localSaveComplete'. "3 is deep in export logic" primaryServerDirectory ifNotNil: [ [ primaryServerDirectory writeProject: self inFileNamed: newName asFileName fromDirectory: localDirectory. ] on: ProjectPasswordNotification do: [ :ex | ex resume: '' ]. ]. ProgressNotification signal: '9999 save complete'. ! ! !Project methodsFor: 'file in/out' stamp: 'bf 9/11/2007 17:38'! storeOnServerWithNoInteractionThenQuit "Save to disk as an Export Segment. Then put that file on the server I came from, as a new version. Version is literal piece of file name. Mime encoded and http encoded. Then Quit" | ret | world setProperty: #optimumExtentFromAuthor toValue: world extent. self isCurrentProject ifTrue: ["exit, then do the command" Flaps globalFlapTabsIfAny do: [:each | Flaps removeFlapTab: each keepInList: true]. ret _ self armsLengthCommand: #storeOnServerWithNoInteractionThenQuit withDescription: 'Publishing' translated. ^ ret ]. [[self storeOnServerWithNoInteractionInnards] on: Error do: [:ex | Smalltalk logError: ex description inContext: ex signalerContext to: 'SqueakDebug.log'] ] ensure: [Smalltalk quitPrimitive]. ^ true. ! ! Project removeSelector: #storeOnServerWithNoInteractionThenQuitInnards:!