*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Thu, 20 Feb 2003 13:43:41 +0100
changeset 4574 bcc59a552bca
parent 4573 8478b8e9c494
child 4575 c7cd0dfec11e
*** empty log message ***
AbstractSettingsApplication.st
FileBrowserV2SettingsAppl.st
FileBrowserV2SettingsFrame.st
SettingsDialog.st
--- a/AbstractSettingsApplication.st	Thu Feb 20 13:37:05 2003 +0100
+++ b/AbstractSettingsApplication.st	Thu Feb 20 13:43:41 2003 +0100
@@ -1,17 +1,17 @@
 "{ Package: 'stx:libtool' }"
 
 ApplicationModel subclass:#AbstractSettingsApplication
-	instanceVariableNames:'settingsString'
+	instanceVariableNames:'settingsString currentUserPrefs modifiedChannel'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Smalltalk'
 !
 
 AbstractSettingsApplication subclass:#ByteCodeCompilerSettingsAppl
-	instanceVariableNames:'modifiedChannel allowQualifiedNames warnDollar warnOldStyle
-		fullDebugSupport warnCommonMistakes warnUnderscore keepSource
-		constantFolding warnCompatibility constantFoldingOptions warnings
-		warnSTX allowDollar allowReservedWordsAsSelectors immutableArrays
+	instanceVariableNames:'allowQualifiedNames warnDollar warnOldStyle fullDebugSupport
+		warnCommonMistakes warnUnderscore keepSource constantFolding
+		warnCompatibility constantFoldingOptions warnings warnSTX
+		allowDollar allowReservedWordsAsSelectors immutableArrays
 		allowOldStyleAssignment allowUnderscore allowDolphinExtensions
 		warnUnusedVars allowSqueakExtensions justInTimeCompilation
 		canLoadBinaries constantFoldingSelection enableUnderscore
@@ -22,27 +22,26 @@
 !
 
 AbstractSettingsApplication subclass:#DebuggerSettingsAppl
-	instanceVariableNames:'modifiedChannel showErrorNotifier showVerboseStack
-		allowSendMailFromDebugger currentUserPrefs'
+	instanceVariableNames:'showErrorNotifier showVerboseStack allowSendMailFromDebugger'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#DisplaySettingsAppl
-	instanceVariableNames:'modifiedChannel isColorMonitor useFixGrayPaletteLabel
-		useFixPalette sizeY clipEncodingListSelection sizeX monitorList
-		ditherList clipEncodingList ditherListSelection deepIcons
-		monitorSelection useFixPaletteLabel visualIsPseudoColor
-		ditherSymsNotNil useFixGrayPalette sizeInfos screen ditherStyles
-		ditherSyms screenDepthVisualLabelHolder'
+	instanceVariableNames:'isColorMonitor useFixGrayPaletteLabel useFixPalette sizeY
+		clipEncodingListSelection sizeX monitorList ditherList
+		clipEncodingList ditherListSelection deepIcons monitorSelection
+		useFixPaletteLabel visualIsPseudoColor ditherSymsNotNil
+		useFixGrayPalette sizeInfos screen ditherStyles ditherSyms
+		screenDepthVisualLabelHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#EditSettingsAppl
-	instanceVariableNames:'modifiedChannel st80EditingMode tabsIs4 st80DoubleClickSelectMode
+	instanceVariableNames:'st80EditingMode tabsIs4 st80DoubleClickSelectMode
 		searchDialogIsModal startTextDragWithControl'
 	classVariableNames:''
 	poolDictionaries:''
@@ -50,18 +49,17 @@
 !
 
 AbstractSettingsApplication subclass:#FontSettingsAppl
-	instanceVariableNames:'modifiedChannel filter allOfThem labelDef buttonDef listDef
-		menuDef textDef allFontLabelHolder buttonsFontLabelHolder
-		textFontLabelHolder labelsFontLabelHolder listsFontLabelHolder
-		menusFontLabelHolder allLabel buttonsLabel textLabel labelLabel
-		listsLabel menuLabel'
+	instanceVariableNames:'filter allOfThem labelDef buttonDef listDef menuDef textDef
+		allFontLabelHolder buttonsFontLabelHolder textFontLabelHolder
+		labelsFontLabelHolder listsFontLabelHolder menusFontLabelHolder
+		allLabel buttonsLabel textLabel labelLabel listsLabel menuLabel'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#GeneralCompilerSettingsAppl
-	instanceVariableNames:'modifiedChannel st80EditingMode tabsIs4 st80DoubleClickSelectMode
+	instanceVariableNames:'st80EditingMode tabsIs4 st80DoubleClickSelectMode
 		searchDialogIsModal startTextDragWithControl catchClassRedefs
 		fullHistoryUpdate historyLines keepSourceSelection keepSource
 		hasHistoryManager canLoadBinaries loadBinaries catchMethodRedefs'
@@ -71,35 +69,32 @@
 !
 
 AbstractSettingsApplication subclass:#KbdMappingSettingsAppl
-	instanceVariableNames:'modifiedChannel selectedRawKey macroTextHolder
-		selectedFunctionKey labelTextHolder functionKeyList rawKeyList
-		mappings'
+	instanceVariableNames:'selectedRawKey macroTextHolder selectedFunctionKey
+		labelTextHolder functionKeyList rawKeyList mappings'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#LanguageSettingsAppl
-	instanceVariableNames:'modifiedChannel languageHolder languageList listOfLanguages
-		translatedLanguages noticeLabelHolder currentLanguageChannel
-		currentLanguageLabel'
+	instanceVariableNames:'languageHolder languageList listOfLanguages translatedLanguages
+		noticeLabelHolder currentLanguageChannel currentLanguageLabel'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#MemorySettingsAppl
-	instanceVariableNames:'modifiedChannel newSpaceSize maxOldSpace fastMoreLimit
-		warningLabelHolder codeTrigger codeLimit oldIncr compressLimit
-		igcFreeLimit igcLimit igcFreeAmount stackLimit
-		supportsJustInTimeCompilation'
+	instanceVariableNames:'newSpaceSize maxOldSpace fastMoreLimit warningLabelHolder
+		codeTrigger codeLimit oldIncr compressLimit igcFreeLimit igcLimit
+		igcFreeAmount stackLimit supportsJustInTimeCompilation'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#MiscCommunicationSettingsAppl
-	instanceVariableNames:'modifiedChannel remoteBrowsingEnabled windowMigrationEnabled
+	instanceVariableNames:'remoteBrowsingEnabled windowMigrationEnabled
 		windowMigrationPassword windowMigrationAuthenticate
 		enablePasswordCheck'
 	classVariableNames:''
@@ -108,20 +103,20 @@
 !
 
 AbstractSettingsApplication subclass:#MiscDisplaySettingsAppl
-	instanceVariableNames:'modifiedChannel returnFocus focusFollowsMouse beepEnabled
-		takeFocus activateOnClick shadows opaqueVariablePanelResize
+	instanceVariableNames:'returnFocus focusFollowsMouse beepEnabled takeFocus
+		activateOnClick shadows opaqueVariablePanelResize
 		formatHostNameinWindowLabels opaqueTableColumnResize
-		hostNameInLabelHolder showAccelerators currentUserPrefs
-		newWindowLabelFormat formatHostNameWindowLabel'
+		hostNameInLabelHolder showAccelerators newWindowLabelFormat
+		formatHostNameWindowLabel'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#OsiSettingsAppl
-	instanceVariableNames:'modifiedChannel osiACSEConnectionLogging osiROSEErrorLogging
-		osiCMISEErrorLogging osiACSEErrorLogging osiROSEPresent
-		osiCMISEPresent osiCMISEMessageLogging osiACSEDataLogging
+	instanceVariableNames:'osiACSEConnectionLogging osiROSEErrorLogging osiCMISEErrorLogging
+		osiACSEErrorLogging osiROSEPresent osiCMISEPresent
+		osiCMISEMessageLogging osiACSEDataLogging
 		osiROSEInvokationLogging osiACSEPresent osiROSEResponseLogging'
 	classVariableNames:''
 	poolDictionaries:''
@@ -129,9 +124,9 @@
 !
 
 AbstractSettingsApplication subclass:#PrinterSettingsAppl
-	instanceVariableNames:'modifiedChannel selectedUnit supportsColor topMargin rightMargin
-		bottomMargin landscape pageFormatList pageFormat unitList
-		leftMargin possiblePrinters printerType printerTypeSelection
+	instanceVariableNames:'selectedUnit supportsColor topMargin rightMargin bottomMargin
+		landscape pageFormatList pageFormat unitList leftMargin
+		possiblePrinters printerType printerTypeSelection
 		printCommandList commandList printCommand enableFormat
 		enablelandscape enableMargins enableColorBox'
 	classVariableNames:''
@@ -140,23 +135,23 @@
 !
 
 AbstractSettingsApplication subclass:#ProcessorSchedulerSettingsAppl
-	instanceVariableNames:'modifiedChannel dynamicPrios preemptive'
+	instanceVariableNames:'dynamicPrios preemptive'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#RDoItServerSettingsAppl
-	instanceVariableNames:'modifiedChannel rDoitLogging rDoitsEnabled rDoitErrorLogging
-		hasRDoitServer rDoitErrorDebugging rDoitServerPort'
+	instanceVariableNames:'rDoitLogging rDoitsEnabled rDoitErrorLogging hasRDoitServer
+		rDoitErrorDebugging rDoitServerPort'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#STCCompilerSettingsAppl
-	instanceVariableNames:'modifiedChannel cc ccOptions stcIncludes linkCommand stc linkArgs
-		canLoadBinaries stcDefines stcLibraries stcOptions stcLibraryPath
+	instanceVariableNames:'cc ccOptions stcIncludes linkCommand stc linkArgs canLoadBinaries
+		stcDefines stcLibraries stcOptions stcLibraryPath
 		stcCompilationSelection stcCompilationList'
 	classVariableNames:''
 	poolDictionaries:''
@@ -164,33 +159,31 @@
 !
 
 AbstractSettingsApplication subclass:#SourceCodeFormatSettingsAppl
-	instanceVariableNames:'modifiedChannel spaceAfterKeywordSelector
-		emptyLineAfterTemporaries tabIndent autoFormat cStyleBlocks
-		editorText maxLengthForSingleLineBlocks blockArgumentsOnNewLine
-		spaceAfterReturnToken spaceAroundTemporaries currentUserPrefs
-		oldUserPreferences reformatLocked'
+	instanceVariableNames:'spaceAfterKeywordSelector emptyLineAfterTemporaries tabIndent
+		autoFormat cStyleBlocks editorText maxLengthForSingleLineBlocks
+		blockArgumentsOnNewLine spaceAfterReturnToken
+		spaceAroundTemporaries oldUserPreferences reformatLocked'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#SourceCodeManagementSettingsAppl
-	instanceVariableNames:'modifiedChannel sourceCacheDir useManager condenseSourceCache
+	instanceVariableNames:'sourceCacheDir useManager condenseSourceCache
 		syntaxColorConfiguration setupSourceCodeManager
 		checkClassesWhenCheckingIn formattingConfiguration
 		flushSourceCache localSourceFirst cvsIsSetup repositoryHolder
-		manager repository currentUserPrefs listOfModules
-		cvsRootPrototypeList addPerModuleRoot removeEnabled
-		perModuleRootModule acceptChannel removePerModuleRoot
-		perModuleRoot cvsRootHolder selectedPerModuleRoot
-		cvsBinDirectoryHolder rootsPerModule'
+		manager repository listOfModules cvsRootPrototypeList
+		addPerModuleRoot removeEnabled perModuleRootModule acceptChannel
+		removePerModuleRoot perModuleRoot cvsRootHolder
+		selectedPerModuleRoot cvsBinDirectoryHolder rootsPerModule'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#StyleSettingsAppl
-	instanceVariableNames:'modifiedChannel showStandardStylesOnly styleList selectedStyle
+	instanceVariableNames:'showStandardStylesOnly styleList selectedStyle
 		styleDirectoryContents infoLabelHolder noticeLabelHolder'
 	classVariableNames:''
 	poolDictionaries:''
@@ -198,20 +191,19 @@
 !
 
 AbstractSettingsApplication subclass:#SyntaxColorSettingsAppl
-	instanceVariableNames:'modifiedChannel coloredText syntaxColor syntaxColors resetList
-		resetListSelection fullSelectorCheck syntaxColoring
-		currentUserPrefs oldUserPreferences syntaxFontSelector
-		syntaxFonts syntaxElementList syntaxElementSelection
-		syntaxEmphasisList syntaxEmphasisSelection emphasisDictionary
-		resetListDictionary'
+	instanceVariableNames:'coloredText syntaxColor syntaxColors resetList resetListSelection
+		fullSelectorCheck syntaxColoring oldUserPreferences
+		syntaxFontSelector syntaxFonts syntaxElementList
+		syntaxElementSelection syntaxEmphasisList syntaxEmphasisSelection
+		emphasisDictionary resetListDictionary'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
 !
 
 AbstractSettingsApplication subclass:#SystemMessageSettingsAppl
-	instanceVariableNames:'modifiedChannel classInfos vmInfo vmErrors displayErrors logDoits
-		updChanges changeFileName'
+	instanceVariableNames:'classInfos vmInfo vmErrors displayErrors logDoits updChanges
+		changeFileName'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
@@ -220,8 +212,8 @@
 AbstractSettingsApplication subclass:#ToolsSettingsAppl
 	instanceVariableNames:'useNewVersionDiffBrowser transcriptBufferSize useNewInspector
 		showClockInLauncher useNewChangesBrowser useNewFileBrowser
-		useNewSystemBrowser currentUserPrefs modifiedChannel
-		useNewFileDialog useNewSettingsApplication useProcessMonitorV2'
+		useNewSystemBrowser useNewFileDialog useNewSettingsApplication
+		useProcessMonitorV2'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractSettingsApplication
@@ -244,22 +236,57 @@
 !AbstractSettingsApplication methodsFor:'actions'!
 
 saveRequest
-    | result|
+    |result|
 
     (self hasUnsavedChanges) ifTrue:[
-        result := self confirmWithCancel:(resources string:'Save changed ', settingsString, ' ?'). 
-        result isNil ifTrue:[ ^ false].
+        result := self confirmWithCancel:(resources 
+                            string:'Save changed ' , settingsString , ' ?').
+        result isNil ifTrue:[
+            ^ false
+        ].
         result ifTrue:[
-            self saveSettings.
+            self saveSettings
         ] ifFalse:[
-            self loadRequest.
+            self readSettings
         ]
     ].
     ^ true
+!
+
+saveSettingsIfUnsavedChangesArePresent
+    self hasUnsavedChanges ifTrue:[
+        self saveSettings.
+        self modifiedChannel value:false
+    ].
+! !
+
+!AbstractSettingsApplication methodsFor:'aspects'!
+
+modifiedChannel
+
+    modifiedChannel isNil ifTrue:[
+        modifiedChannel := false asValue.
+    ].
+    ^ modifiedChannel
+! !
+
+!AbstractSettingsApplication methodsFor:'initialization'!
+
+initialize
+    super initialize.
+    resources := self class classResources.
+    currentUserPrefs := UserPreferences current.
+    settingsString := (UISpecification from:(self class windowSpec)) window label.
+    self readSettings.
 ! !
 
 !AbstractSettingsApplication methodsFor:'protocol'!
 
+basicSaveSettings
+
+    self subclassResponsibility.
+!
+
 hasUnsavedChanges
 
     ^ self subclassResponsibility
@@ -272,21 +299,14 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
 !
 
-initialize
-
-    settingsString := (UISpecification from:(self class windowSpec)) window label.
-    super initialize
-!
-
-loadRequest
-
-    self subclassResponsibility.
-"/    self modifiedChannel value:false.
+readSettings
+    self subclassResponsibility
 !
 
 saveSettings
 
-    self subclassResponsibility.
+    self basicSaveSettings.
+    self modifiedChannel value:false.
 ! !
 
 !AbstractSettingsApplication::ByteCodeCompilerSettingsAppl class methodsFor:'defaults'!
@@ -581,49 +601,7 @@
 
 !AbstractSettingsApplication::ByteCodeCompilerSettingsAppl methodsFor:'actions'!
 
-evaluateModified
-
-    self modifiedChannel value:(self hasUnsavedChanges).
-!
-
-help
-
-    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/compilerSettings.html'].
-!
-
-loadRequest
-
-    self allowDollar value:(Compiler allowDollarInIdentifier ? false).
-    self allowDolphinExtensions value:(Compiler allowDolphinExtensions ? false).
-    self allowOldStyleAssignment value:(Compiler allowOldStyleAssignment ? false).
-    self allowQualifiedNames value:(Compiler allowQualifiedNames ? false).
-    self allowReservedWordsAsSelectors value:(Compiler allowReservedWordsAsSelectors ? false).
-    self allowSqueakExtensions value:(Compiler allowSqueakExtensions ? false).
-    self allowUnderscore value:(Compiler allowUnderscoreInIdentifier ? false).
-    self constantFoldingSelection value:(self class constantFoldingOptions indexOf:Compiler foldConstants ifAbsent:3).
-    self supportsJustInTimeCompilation ifTrue:[
-        self fullDebugSupport value:(ObjectMemory fullSingleStepSupport ? false).
-    ] ifFalse:[ 
-        self fullDebugSupport value:(Compiler lineNumberInfo == #full).
-    ].
-    self immutableArrays value:(Compiler arraysAreImmutable ? false).
-    self supportsJustInTimeCompilation ifTrue:[
-        self justInTimeCompilation value:(ObjectMemory justInTimeCompilation ? false).
-    ] ifFalse:[ 
-        self justInTimeCompilation value:false.
-    ].
-    self warnCommonMistakes value:(Compiler warnCommonMistakes ? false).
-    self warnCompatibility value:(Compiler warnPossibleIncompatibilities ? false).
-    self warnDollar value:(Compiler warnDollarInIdentifier ? false).
-    self warnOldStyle value:(Compiler warnOldStyleAssignment ? false).
-    self warnSTX value:(Compiler warnSTXSpecials ? false).
-    self warnUnderscore value:(Compiler warnUnderscoreInIdentifier ? false).
-    self warnUnusedVars value:(Compiler warnUnusedVars ? false).
-    self warnings value:(Compiler warnings ? false).
-    self modifiedChannel value:false.
-!
-
-saveSettings
+basicSaveSettings
 
     Compiler warnings:self warnings value.
     Compiler warnSTXSpecials:self warnSTX value.
@@ -659,7 +637,54 @@
         ObjectMemory justInTimeCompilation:justInTime.
         ObjectMemory fullSingleStepSupport:self fullDebugSupport value.
     ].
-    self modifiedChannel value:false.
+!
+
+evaluateModified
+
+    self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/compilerSettings.html'].
+!
+
+readSettings
+    self allowDollar value:(Compiler allowDollarInIdentifier ? false).
+    self allowDolphinExtensions 
+        value:(Compiler allowDolphinExtensions ? false).
+    self allowOldStyleAssignment 
+        value:(Compiler allowOldStyleAssignment ? false).
+    self allowQualifiedNames value:(Compiler allowQualifiedNames ? false).
+    self allowReservedWordsAsSelectors 
+        value:(Compiler allowReservedWordsAsSelectors ? false).
+    self allowSqueakExtensions value:(Compiler allowSqueakExtensions ? false).
+    self allowUnderscore value:(Compiler allowUnderscoreInIdentifier ? false).
+    self constantFoldingSelection 
+        value:(self class constantFoldingOptions indexOf:Compiler foldConstants
+                ifAbsent:3).
+    self supportsJustInTimeCompilation ifTrue:[
+        self fullDebugSupport value:(ObjectMemory fullSingleStepSupport ? false)
+    ] ifFalse:[
+        self fullDebugSupport value:(Compiler lineNumberInfo == #full)
+    ].
+    self immutableArrays value:(Compiler arraysAreImmutable ? false).
+    self supportsJustInTimeCompilation ifTrue:[
+        self justInTimeCompilation 
+            value:(ObjectMemory justInTimeCompilation ? false)
+    ] ifFalse:[
+        self justInTimeCompilation value:false
+    ].
+    self warnCommonMistakes value:(Compiler warnCommonMistakes ? false).
+    self warnCompatibility 
+        value:(Compiler warnPossibleIncompatibilities ? false).
+    self warnDollar value:(Compiler warnDollarInIdentifier ? false).
+    self warnOldStyle value:(Compiler warnOldStyleAssignment ? false).
+    self warnSTX value:(Compiler warnSTXSpecials ? false).
+    self warnUnderscore value:(Compiler warnUnderscoreInIdentifier ? false).
+    self warnUnusedVars value:(Compiler warnUnusedVars ? false).
+    self warnings value:(Compiler warnings ? false).
+    self modifiedChannel value:false
 !
 
 stcCompilerSettings
@@ -822,14 +847,6 @@
     ^ justInTimeCompilation.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 warnCommonMistakes
 
     warnCommonMistakes isNil ifTrue:[
@@ -929,14 +946,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::ByteCodeCompilerSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    super initialize
-! !
-
 !AbstractSettingsApplication::ByteCodeCompilerSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -1095,6 +1104,17 @@
 
 !AbstractSettingsApplication::DebuggerSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    currentUserPrefs allowSendMailFromDebugger:self allowSendMailFromDebugger value.
+    self showErrorNotifier value ifFalse:[
+        Exception emergencyHandler:nil
+    ] ifTrue:[
+        Exception emergencyHandler:(AbstractLauncherApplication notifyingEmergencyHandler)
+    ].
+    DebugView defaultVerboseBacktrace:self showVerboseStack value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -1106,26 +1126,13 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/editSettings.html'].
 !
 
-loadRequest
-
-    self allowSendMailFromDebugger value:currentUserPrefs allowSendMailFromDebugger.
-    self showErrorNotifier value:(NoHandlerError emergencyHandler == AbstractLauncherApplication notifyingEmergencyHandler).
+readSettings
+    self allowSendMailFromDebugger 
+        value:currentUserPrefs allowSendMailFromDebugger.
+    self showErrorNotifier value:(NoHandlerError emergencyHandler 
+                == AbstractLauncherApplication notifyingEmergencyHandler).
     self showVerboseStack value:(DebugView defaultVerboseBacktrace ? false).
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        currentUserPrefs allowSendMailFromDebugger:self allowSendMailFromDebugger value.
-        self showErrorNotifier value ifFalse:[
-            Exception emergencyHandler:nil
-        ] ifTrue:[
-            Exception emergencyHandler:(AbstractLauncherApplication notifyingEmergencyHandler)
-        ].
-        DebugView defaultVerboseBacktrace:self showVerboseStack value.
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::DebuggerSettingsAppl methodsFor:'aspects'!
@@ -1139,14 +1146,6 @@
     ^ allowSendMailFromDebugger.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 showErrorNotifier
 
     showErrorNotifier isNil ifTrue:[
@@ -1179,16 +1178,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::DebuggerSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    currentUserPrefs := UserPreferences current.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::DebuggerSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -1454,6 +1443,47 @@
 
 !AbstractSettingsApplication::DisplaySettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    Image flushDeviceImages.
+
+    screen visualType == #PseudoColor ifTrue:[
+        self useFixPalette value ifTrue:[
+            Color colorAllocationFailSignal handle:[:ex |
+                self warn:'Could not allocate colors.'.
+            ] do:[
+                Color getColorsRed:4 green:8 blue:4 on:screen
+            ]
+        ] ifFalse:[
+            screen releaseFixColors
+        ].
+
+        self useFixGrayPalette value ifTrue:[
+            Color colorAllocationFailSignal handle:[:ex |
+                self warn:'Could not allocate colors.'.
+            ] do:[
+                Color getGrayColors:32 on:screen
+            ]
+        ] ifFalse:[
+            screen releaseFixGrayColors
+        ]
+    ].
+    screen hasColors:self isColorMonitor value.
+    screen widthInMillimeter:self sizeX value.
+    screen heightInMillimeter:self sizeY value.
+
+    screen supportsDeepIcons:self deepIcons value.
+    ditherSyms notNil ifTrue:[
+        Image ditherAlgorithm:(ditherSyms at:self ditherListSelection value).
+    ].
+
+    WindowGroup activeGroup withWaitCursorDo:[
+        View defaultStyle:(View defaultStyle).
+    ].
+
+    screen clipBoardEncoding:(self class clipEncodingSyms at:self clipEncodingListSelection value).
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -1465,64 +1495,21 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/screenSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self useFixPalette value:screen fixColors notNil.
     self useFixGrayPalette value:screen fixGrayColors notNil.
     self isColorMonitor value:screen hasColors.
     self sizeX value:screen widthInMillimeter.
     self sizeY value:screen heightInMillimeter.
-
     self deepIcons value:screen supportsDeepIcons.
     ditherSyms notNil ifTrue:[
-        self ditherListSelection value:(ditherSyms indexOf:(Image ditherAlgorithm) ifAbsent:#threshold).
-    ].
-    self clipEncodingListSelection value:(self class clipEncodingSyms indexOf:screen clipBoardEncoding ifAbsent:1).
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        Image flushDeviceImages.
-
-        screen visualType == #PseudoColor ifTrue:[
-            self useFixPalette value ifTrue:[
-                Color colorAllocationFailSignal handle:[:ex |
-                    self warn:'Could not allocate colors.'.
-                ] do:[
-                    Color getColorsRed:4 green:8 blue:4 on:screen
-                ]
-            ] ifFalse:[
-                screen releaseFixColors
-            ].
-
-            self useFixGrayPalette value ifTrue:[
-                Color colorAllocationFailSignal handle:[:ex |
-                    self warn:'Could not allocate colors.'.
-                ] do:[
-                    Color getGrayColors:32 on:screen
-                ]
-            ] ifFalse:[
-                screen releaseFixGrayColors
-            ]
-        ].
-        screen hasColors:self isColorMonitor value.
-        screen widthInMillimeter:self sizeX value.
-        screen heightInMillimeter:self sizeY value.
-
-        screen supportsDeepIcons:self deepIcons value.
-        ditherSyms notNil ifTrue:[
-            Image ditherAlgorithm:(ditherSyms at:self ditherListSelection value).
-        ].
-
-        WindowGroup activeGroup withWaitCursorDo:[
-            View defaultStyle:(View defaultStyle).
-        ].
-
-        screen clipBoardEncoding:(self class clipEncodingSyms at:self clipEncodingListSelection value).
-        self modifiedChannel value:false.
-    ].
+        self ditherListSelection 
+            value:(ditherSyms indexOf:(Image ditherAlgorithm) ifAbsent:#threshold)
+    ].
+    self clipEncodingListSelection 
+        value:(self class clipEncodingSyms indexOf:screen clipBoardEncoding
+                ifAbsent:1).
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::DisplaySettingsAppl methodsFor:'aspects'!
@@ -1594,14 +1581,6 @@
     ^ isColorMonitor.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 monitorList
 
     monitorList isNil ifTrue:[
@@ -1747,9 +1726,10 @@
 initialize
 
     | listOfSizes visual|
-    resources := self class classResources.
+
     screen := Screen current.
-    listOfSizes := resources at:'LIST_OF_OFFERED_SCREEN_SIZES' default:#default.
+
+    listOfSizes := self class classResources at:'LIST_OF_OFFERED_SCREEN_SIZES' default:#default.
     listOfSizes == #default ifTrue:[
         "/ nothing in resource file; offer at least some.
         sizeInfos := #(
@@ -1772,7 +1752,8 @@
             ditherSyms := self class trueColorDitherSyms.
         ]
     ].
-    super initialize
+    super initialize.
+
 !
 
 postOpen
@@ -1940,6 +1921,20 @@
 
 !AbstractSettingsApplication::EditSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    UserPreferences current st80EditMode:(self st80EditingMode value).
+    TextView st80SelectMode:(self st80DoubleClickSelectMode value).
+    tabsIs4 value ~~ (ListView userDefaultTabPositions = ListView tab4Positions) ifTrue:[
+        ListView userDefaultTabPositions:(self tabsIs4 value ifTrue:[ListView tab4Positions] ifFalse:[ListView tab8Positions]).
+        ListView allSubInstancesDo:[:eachKindOfListView |
+            self tabsIs4 value ifTrue:[eachKindOfListView setTab4] ifFalse:[eachKindOfListView setTab8]
+        ].
+    ].
+    UserPreferences current searchDialogIsModal:self searchDialogIsModal value.
+    UserPreferences current startTextDragWithControl:self startTextDragWithControl value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -1951,43 +1946,20 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/editSettings.html'].
 !
 
-loadRequest
-
-    self st80EditingMode value: UserPreferences current st80EditMode.
-    self st80DoubleClickSelectMode value: TextView st80SelectMode.
-    self tabsIs4 value: (ListView userDefaultTabPositions = ListView tab4Positions).
-    self searchDialogIsModal value: UserPreferences current searchDialogIsModal.
-    self startTextDragWithControl value: UserPreferences current startTextDragWithControl.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        UserPreferences current st80EditMode:(self st80EditingMode value).
-        TextView st80SelectMode:(self st80DoubleClickSelectMode value).
-        tabsIs4 value ~~ (ListView userDefaultTabPositions = ListView tab4Positions) ifTrue:[
-            ListView userDefaultTabPositions:(self tabsIs4 value ifTrue:[ListView tab4Positions] ifFalse:[ListView tab8Positions]).
-            ListView allSubInstancesDo:[:eachKindOfListView |
-                self tabsIs4 value ifTrue:[eachKindOfListView setTab4] ifFalse:[eachKindOfListView setTab8]
-            ].
-        ].
-        UserPreferences current searchDialogIsModal:self searchDialogIsModal value.
-        UserPreferences current startTextDragWithControl:self startTextDragWithControl value.
-        self modifiedChannel value:false.
-    ].
+readSettings
+    self st80EditingMode value:UserPreferences current st80EditMode.
+    self st80DoubleClickSelectMode value:TextView st80SelectMode.
+    self tabsIs4 
+        value:(ListView userDefaultTabPositions = ListView tab4Positions).
+    self searchDialogIsModal 
+        value:UserPreferences current searchDialogIsModal.
+    self startTextDragWithControl 
+        value:UserPreferences current startTextDragWithControl.
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::EditSettingsAppl methodsFor:'aspects'!
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 searchDialogIsModal
 
     searchDialogIsModal isNil ifTrue:[
@@ -2049,13 +2021,6 @@
 
 !AbstractSettingsApplication::EditSettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-!
-
 postOpen
 !
 
@@ -2207,7 +2172,7 @@
                    #(#SpecCollection
                       #collection: #(
                        #(#LabelSpec
-                          #label: 'All'
+                          #label: 'All (Others)'
                           #name: 'All'
                           #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
                           #style: #(#FontDescription #helvetica #bold #roman 12)
@@ -2451,6 +2416,24 @@
 
 !AbstractSettingsApplication::FontSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    | master requestor|
+
+    master := self masterApplication.
+    master notNil ifTrue:[
+        requestor := master requestor.
+    ].
+
+    Label defaultFont:self labelDef value.
+    Button defaultFont:self buttonDef value.
+    Toggle defaultFont:self buttonDef value.
+    TextView withAllSubclasses do:[:cls | cls defaultFont:self textDef value].
+    SelectionInListView withAllSubclasses do:[:cls | cls defaultFont:self listDef value].
+    MenuView defaultFont:self menuDef value.
+    PullDownMenu defaultFont:self menuDef value.
+!
+
 changeAllFont
     |f|
 
@@ -2540,35 +2523,14 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
 !
 
-loadRequest
-
+readSettings
     View readStyleSheetAndUpdateAllStyleCaches.
     self labelDef value:Label defaultFont.
     self buttonDef value:Button defaultFont.
     self listDef value:SelectionInListView defaultFont.
     self menuDef value:MenuView defaultFont.
     self textDef value:TextView defaultFont.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    | master requestor|
-
-    master := self masterApplication.
-    master notNil ifTrue:[
-        requestor := master requestor.
-    ].
-    self hasUnsavedChanges ifTrue:[
-        Label defaultFont:self labelDef value.
-        Button defaultFont:self buttonDef value.
-        Toggle defaultFont:self buttonDef value.
-        TextView withAllSubclasses do:[:cls | cls defaultFont:self textDef value].
-        SelectionInListView withAllSubclasses do:[:cls | cls defaultFont:self listDef value].
-        MenuView defaultFont:self menuDef value.
-        PullDownMenu defaultFont:self menuDef value.
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::FontSettingsAppl methodsFor:'aspects'!
@@ -2663,14 +2625,6 @@
     ^ menusFontLabelHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 textDef
     "return/create the 'textDef' value holder (automatically generated)"
 
@@ -2696,96 +2650,61 @@
 
     "stub code automatically generated - please change as required"
 
-    changedObject == self allOfThem ifTrue:[
-        | f label|
-        f := self allOfThem value.
-        allLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
+    builder notNil ifTrue:[
+        changedObject == self allOfThem ifTrue:[
+            self updateFontOfLabel:allLabel andFontNameHolder:(self allFontLabelHolder) from:changedObject.
+            ^ self.
+        ].
+        changedObject == self labelDef ifTrue:[
+            self updateFontOfLabel:labelLabel andFontNameHolder:(self labelsFontLabelHolder) from:changedObject.
+            ^ self.
         ].
-        self allFontLabelHolder value:label.
-        self evaluateModified.
-        ^ self.
-    ].
-    changedObject == self labelDef ifTrue:[
-        | f label|
-        f := self labelDef value.
-        labelLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
+        changedObject == self buttonDef ifTrue:[
+            self updateFontOfLabel:buttonsLabel andFontNameHolder:(self buttonsFontLabelHolder) from:changedObject.
+            ^ self.
+        ].
+        changedObject == self listDef ifTrue:[
+            self updateFontOfLabel:listsLabel andFontNameHolder:(self listsFontLabelHolder) from:changedObject.
+            ^ self.
         ].
-        self labelsFontLabelHolder value:label.
-        self evaluateModified.
-        ^ self.
-    ].
-    changedObject == self buttonDef ifTrue:[
-        | f label|
-        f := self buttonDef value.
-        buttonsLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
+        changedObject == self menuDef ifTrue:[
+            self updateFontOfLabel:menuLabel andFontNameHolder:(self menusFontLabelHolder) from:changedObject.
+            ^ self.
+        ].
+        changedObject == self textDef ifTrue:[
+            self updateFontOfLabel:textLabel andFontNameHolder:(self textFontLabelHolder) from:changedObject.
+            ^ self.
         ].
-        self buttonsFontLabelHolder value:label.
-        self evaluateModified.
-        ^ self.
-    ].
-    changedObject == self listDef ifTrue:[
-        | f label|
-        f := self listDef value.
-        listsLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
-        ].
-        self listsFontLabelHolder value:label.
-        self evaluateModified.
-        ^ self.
-    ].
-    changedObject == self menuDef ifTrue:[
-        | f label|
-        f := self menuDef value.
-        menuLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
-        ].
-        self menusFontLabelHolder value:label.
-        self evaluateModified.
-        ^ self.
-    ].
-    changedObject == self textDef ifTrue:[
-        | f label|
-        f := self textDef value.
-        textLabel font:f.
-        label := f isNil ifTrue:[
-            ''
-        ] ifFalse:[
-            f userFriendlyName
-        ].
-        self evaluateModified.
-        self textFontLabelHolder value:label.
-        ^ self.
-    ].
-
+    ].
     super update:something with:aParameter from:changedObject
+!
+
+updateAllFontLabels
+    self update:#value with:nil from:self allOfThem.
+    self update:#value with:nil from:self labelDef.
+    self update:#value with:nil from:self buttonDef.
+    self update:#value with:nil from:self listDef.
+    self update:#value with:nil from:self menuDef.
+    self update:#value with:nil from:self textDef.
+!
+
+updateFontOfLabel:labelWidget andFontNameHolder:fontNameHolder from:changedObject 
+    | f label|
+
+    f := changedObject value.
+
+    labelWidget font:f.
+    label := f isNil ifTrue:[
+        ''
+    ] ifFalse:[
+        f userFriendlyName
+    ].
+    fontNameHolder value:label.
+    self evaluateModified.
 ! !
 
 !AbstractSettingsApplication::FontSettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := self class classResources.
-    super initialize
-!
-
 postBuildAllFontLabel:aWidget
 
     allLabel := aWidget.
@@ -2816,9 +2735,9 @@
     textLabel := aWidget.
 !
 
-postBuildWith:aBuilder
-
-    self loadRequest.
+postBuildWith:aBuilder 
+"/    self readSettings.
+    self updateAllFontLabels.
     super postBuildWith:aBuilder
 ! !
 
@@ -2993,6 +2912,22 @@
 
 !AbstractSettingsApplication::GeneralCompilerSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    ClassCategoryReader sourceMode:(self class keepSourceOptions at:self keepSourceSelection value).
+    Class catchClassRedefinitions:self catchClassRedefs value.
+    Class catchMethodRedefinitions:self catchMethodRedefs value.
+    HistoryManager notNil ifTrue:[
+        HistoryManager fullHistoryUpdate:self fullHistoryUpdate value.
+        self historyLines value ifTrue:[
+            HistoryManager activate
+        ] ifFalse:[
+            HistoryManager deactivate
+        ].
+    ].
+    Smalltalk loadBinaries:self loadBinaries value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -3004,42 +2939,24 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/compilerSettings.html'].
 !
 
-loadRequest
-
-    self keepSourceSelection value:(self class keepSourceOptions indexOf:ClassCategoryReader sourceMode ifAbsent:1).
+readSettings
+    self keepSourceSelection value:(self class keepSourceOptions 
+                indexOf:ClassCategoryReader sourceMode
+                ifAbsent:1).
     self catchClassRedefs value:(Class catchClassRedefinitions ? false).
     self catchMethodRedefs value:(Class catchMethodRedefinitions ? false).
-    self canLoadBinaries ifTrue:[ 
-        self loadBinaries value:Smalltalk loadBinaries.
+    self canLoadBinaries ifTrue:[
+        self loadBinaries value:Smalltalk loadBinaries
     ] ifFalse:[
         self loadBinaries value:false
     ].
     self hasHistoryManager ifTrue:[
-        self fullHistoryUpdate value:(HistoryManager fullHistoryUpdate ? false).
+        self fullHistoryUpdate value:(HistoryManager fullHistoryUpdate ? false)
     ] ifFalse:[
-        self fullHistoryUpdate value:false.
+        self fullHistoryUpdate value:false
     ].
     self historyLines value:self hasHistoryManager.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        ClassCategoryReader sourceMode:(self class keepSourceOptions at:self keepSourceSelection value).
-        Class catchClassRedefinitions:self catchClassRedefs value.
-        Class catchMethodRedefinitions:self catchMethodRedefs value.
-        HistoryManager notNil ifTrue:[
-            HistoryManager fullHistoryUpdate:self fullHistoryUpdate value.
-            self historyLines value ifTrue:[
-                HistoryManager activate
-            ] ifFalse:[
-                HistoryManager deactivate
-            ].
-        ].
-        Smalltalk loadBinaries:self loadBinaries value.
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::GeneralCompilerSettingsAppl methodsFor:'aspects'!
@@ -3125,14 +3042,6 @@
         loadBinaries onChangeSend:#evaluateModified to:self.
     ].
     ^ loadBinaries.
-!
-
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
 ! !
 
 !AbstractSettingsApplication::GeneralCompilerSettingsAppl methodsFor:'change & update'!
@@ -3149,15 +3058,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::GeneralCompilerSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::GeneralCompilerSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -3310,6 +3210,9 @@
 
 !AbstractSettingsApplication::KbdMappingSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -3320,12 +3223,8 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
 !
 
-loadRequest
-
-    self modifiedChannel value:false.
-!
-
-saveSettings
+readSettings
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::KbdMappingSettingsAppl methodsFor:'aspects'!
@@ -3381,14 +3280,6 @@
     ^ macroTextHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 rawKeyList
 
     rawKeyList isNil ifTrue:[
@@ -3512,7 +3403,7 @@
 
 initialize
 
-    resources := self class classResources.
+    super initialize.
     
     mappings := Screen current keyboardMap.
 
@@ -3520,7 +3411,6 @@
     functionKeyList := (mappings values asSet asArray collect:[:key | key asString]) sort.
 
     self labelTextHolder value:(resources at:'KEY_MSG2' default:'keyboard mapping:') withCRs.
-    super initialize
 ! !
 
 !AbstractSettingsApplication::KbdMappingSettingsAppl methodsFor:'queries'!
@@ -3584,14 +3474,14 @@
           #name: 'Language Settings'
           #min: #(#Point 10 10)
           #max: #(#Point 1024 768)
-          #bounds: #(#Rectangle 16 42 491 713)
+          #bounds: #(#Rectangle 16 46 491 717)
         )
         #component: 
        #(#SpecCollection
           #collection: #(
            #(#InputFieldSpec
               #name: 'EntryField1'
-              #layout: #(#LayoutFrame 0 0.0 105 0 0 1.0 125 0)
+              #layout: #(#LayoutFrame 2 0.0 105 0 -2 1.0 125 0)
               #model: #languageHolder
               #acceptOnReturn: true
               #acceptOnTab: true
@@ -3600,7 +3490,7 @@
             )
            #(#SequenceViewSpec
               #name: 'List1'
-              #layout: #(#LayoutFrame 0 0.0 125 0 0 1.0 0 1.0)
+              #layout: #(#LayoutFrame 2 0.0 125 0 -2 1.0 -30 1.0)
               #model: #languageHolder
               #hasHorizontalScrollBar: true
               #hasVerticalScrollBar: true
@@ -3633,6 +3523,27 @@
               #labelChannel: #currentLanguageLabel
               #adjust: #right
             )
+           #(#HorizontalPanelViewSpec
+              #name: 'HorizontalPanel1'
+              #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
+              #horizontalLayout: #center
+              #verticalLayout: #center
+              #horizontalSpace: 3
+              #verticalSpace: 3
+              #component: 
+             #(#SpecCollection
+                #collection: #(
+                 #(#ActionButtonSpec
+                    #label: 'Reread Language Resources'
+                    #name: 'RereadResourcesButton'
+                    #translateLabel: true
+                    #model: #rereadResourceFiles
+                    #extent: #(#Point 190 22)
+                  )
+                 )
+               
+              )
+            )
            )
          
         )
@@ -3660,29 +3571,7 @@
 
 !AbstractSettingsApplication::LanguageSettingsAppl methodsFor:'actions'!
 
-doubleClick:aEntry
-
-    self saveSettings.
-!
-
-evaluateModified
-
-    self modifiedChannel value:(self hasUnsavedChanges).
-!
-
-help
-
-    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/languageSetting.html'].
-!
-
-loadRequest
-
-    self languageHolder value:self currentLanguage.
-    self currentLanguageChannel value:self currentLanguage.
-    self modifiedChannel value:false.
-!
-
-saveSettings
+basicSaveSettings
 
     |fontPref idx language oldLanguage territory enc 
      answer matchingFonts l screen newLanguage switch|
@@ -3770,7 +3659,37 @@
         DebugView newDebugger.
     ].
     self currentLanguageChannel value:self currentLanguage.
-    self modifiedChannel value:false.
+!
+
+doubleClick:aEntry
+
+    self saveSettingsIfUnsavedChangesArePresent.
+!
+
+evaluateModified
+
+    self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/languageSetting.html'].
+!
+
+readSettings
+    self languageHolder value:self currentLanguage.
+    self currentLanguageChannel value:self currentLanguage.
+    self modifiedChannel value:false
+!
+
+rereadResourceFiles
+    ResourcePack flushCachedResourcePacks.
+
+"/    Smalltalk language:(Smalltalk language).
+"/    Smalltalk languageTerritory:(Smalltalk languageTerritory).
+
+    Smalltalk changed:#Language.
+    Smalltalk changed:#LanguageTerritory.
 ! !
 
 !AbstractSettingsApplication::LanguageSettingsAppl methodsFor:'aspects'!
@@ -3800,14 +3719,6 @@
     ^ languageHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 noticeLabelHolder
 
     noticeLabelHolder isNil ifTrue:[
@@ -3839,8 +3750,7 @@
 
     |flags|
 
-    resources := self class classResources.
-    listOfLanguages := resources at:'LIST_OF_OFFERED_LANGUAGES' default:#('default').
+    listOfLanguages := self class classResources at:'LIST_OF_OFFERED_LANGUAGES' default:#('default').
     listOfLanguages := listOfLanguages asOrderedCollection.
     translatedLanguages := listOfLanguages collect:[:lang | |item|
                                         item := resources at:lang.
@@ -3870,7 +3780,8 @@
                            ].
     listOfLanguages := listOfLanguages collect:[:nm | nm copyFrom:'LANG_' size + 1].
     languageList := translatedLanguages with:flags collect:[:lang :flag | LabelAndIcon icon:flag string:lang.].
-    super initialize
+
+    super initialize.
 ! !
 
 !AbstractSettingsApplication::LanguageSettingsAppl methodsFor:'queries'!
@@ -4401,6 +4312,21 @@
 
 !AbstractSettingsApplication::MemorySettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    ObjectMemory freeSpaceGCAmount:self igcFreeAmount value.
+    ObjectMemory freeSpaceGCLimit:self igcFreeLimit value.
+    ObjectMemory incrementalGCLimit:self igcLimit value.
+    ObjectMemory newSpaceSize:self newSpaceSize value.
+    ObjectMemory oldSpaceIncrement:self oldIncr value.
+    Process defaultMaximumStackSize:self stackLimit value.
+    ObjectMemory fastMoreOldSpaceLimit:self fastMoreLimit value.
+    ObjectMemory maxOldSpace:self maxOldSpace value.
+    ObjectMemory oldSpaceCompressLimit:self compressLimit value.
+    ObjectMemory dynamicCodeLimit:self codeLimit value.
+    ObjectMemory dynamicCodeGCTrigger:self codeTrigger value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -4412,8 +4338,7 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/memorySettings.html'].
 !
 
-loadRequest
-
+readSettings
     self igcLimit value:ObjectMemory incrementalGCLimit.
     self igcFreeLimit value:ObjectMemory freeSpaceGCLimit.
     self igcFreeAmount value:ObjectMemory freeSpaceGCAmount.
@@ -4425,25 +4350,7 @@
     self stackLimit value:Process defaultMaximumStackSize.
     self fastMoreLimit value:(ObjectMemory fastMoreOldSpaceLimit:-1).
     self maxOldSpace value:ObjectMemory maxOldSpace.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        ObjectMemory freeSpaceGCAmount:self igcFreeAmount value.
-        ObjectMemory freeSpaceGCLimit:self igcFreeLimit value.
-        ObjectMemory incrementalGCLimit:self igcLimit value.
-        ObjectMemory newSpaceSize:self newSpaceSize value.
-        ObjectMemory oldSpaceIncrement:self oldIncr value.
-        Process defaultMaximumStackSize:self stackLimit value.
-        ObjectMemory fastMoreOldSpaceLimit:self fastMoreLimit value.
-        ObjectMemory maxOldSpace:self maxOldSpace value.
-        ObjectMemory oldSpaceCompressLimit:self compressLimit value.
-        ObjectMemory dynamicCodeLimit:self codeLimit value.
-        ObjectMemory dynamicCodeGCTrigger:self codeTrigger value.
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::MemorySettingsAppl methodsFor:'aspects'!
@@ -4520,14 +4427,6 @@
     ^ maxOldSpace.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 newSpaceSize
 
     newSpaceSize isNil ifTrue:[
@@ -4572,10 +4471,9 @@
 
 initialize
 
-    resources := self class classResources.
+    super initialize.
     self warningLabelHolder value:'Warning - invalid settings may result in failures or poor performance
 ' , 'You have been warned' allBold , '.'.
-    super initialize
 ! !
 
 !AbstractSettingsApplication::MemorySettingsAppl methodsFor:'queries'!
@@ -4792,6 +4690,49 @@
 
 !AbstractSettingsApplication::MiscCommunicationSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    self hasRemoteBrowsingSupport ifTrue:[
+        self remoteBrowsingEnabled value ifTrue:[
+            SmalltalkShareServer serverRunning ifTrue:[
+                SmalltalkShareServer killAll
+            ].
+        ] ifFalse:[
+            SmalltalkShareServer serverRunning not ifTrue:[
+                SmalltalkShareServer start.
+                "/ must wait a bit; give it a chance to
+                "/ really start (before checking)
+                Delay waitForSeconds:0.5.
+                SmalltalkShareServer serverRunning ifFalse:[
+                    self warn:'SmalltalkShareServer startup failed (see stderr).'
+                ]
+            ].
+        ].
+    ].
+    self hasWindowMigrationServer ifTrue:[
+        self windowMigrationAuthenticate value ifTrue:[
+            WindowMigrationServer password:self windowMigrationPassword value.
+        ] ifFalse:[
+            WindowMigrationServer password:nil    
+        ].
+        self windowMigrationEnabled value ifTrue:[
+            WindowMigrationServer serverRunning ifTrue:[
+                WindowMigrationServer stop
+            ].
+        ] ifFalse:[
+            WindowMigrationServer serverRunning not ifTrue:[
+                WindowMigrationServer start.
+                "/ must wait a bit; give it a chance to
+                "/ really start (before checking)
+                Delay waitForSeconds:0.5.
+                WindowMigrationServer serverRunning ifFalse:[
+                    self warn:'WindowMigrationServer startup failed (see stderr).'
+                ]
+            ].
+        ].
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -4803,64 +4744,22 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/communicationsSettings.html'].
 !
 
-loadRequest
-
-    self remoteBrowsingEnabled value:(self hasRemoteBrowsingSupport and:[SmalltalkShareServer isLoaded and:[SmalltalkShareServer serverRunning]]).
-    self windowMigrationEnabled value:(self hasWindowMigrationServer and:[WindowMigrationServer isLoaded and:[WindowMigrationServer serverRunning]]).
+readSettings
+    self remoteBrowsingEnabled value:(self hasRemoteBrowsingSupport 
+                and:[SmalltalkShareServer isLoaded and:[SmalltalkShareServer serverRunning]]).
+    self windowMigrationEnabled value:(self hasWindowMigrationServer 
+                and:[
+                    WindowMigrationServer isLoaded and:[WindowMigrationServer serverRunning]
+                ]).
     (self hasWindowMigrationServer and:[WindowMigrationServer isLoaded]) ifTrue:[
         self windowMigrationPassword value:WindowMigrationServer password.
-        self windowMigrationAuthenticate value:self windowMigrationPassword value notNil.
+        self windowMigrationAuthenticate 
+            value:self windowMigrationPassword value notNil
     ] ifFalse:[
         self windowMigrationPassword value:nil.
-        self windowMigrationAuthenticate value:false.
-    ].
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        self hasRemoteBrowsingSupport ifTrue:[
-            self remoteBrowsingEnabled value ifTrue:[
-                SmalltalkShareServer serverRunning ifTrue:[
-                    SmalltalkShareServer killAll
-                ].
-            ] ifFalse:[
-                SmalltalkShareServer serverRunning not ifTrue:[
-                    SmalltalkShareServer start.
-                    "/ must wait a bit; give it a chance to
-                    "/ really start (before checking)
-                    Delay waitForSeconds:0.5.
-                    SmalltalkShareServer serverRunning ifFalse:[
-                        self warn:'SmalltalkShareServer startup failed (see stderr).'
-                    ]
-                ].
-            ].
-        ].
-        self hasWindowMigrationServer ifTrue:[
-            self windowMigrationAuthenticate value ifTrue:[
-                WindowMigrationServer password:self windowMigrationPassword value.
-            ] ifFalse:[
-                WindowMigrationServer password:nil    
-            ].
-            self windowMigrationEnabled value ifTrue:[
-                WindowMigrationServer serverRunning ifTrue:[
-                    WindowMigrationServer stop
-                ].
-            ] ifFalse:[
-                WindowMigrationServer serverRunning not ifTrue:[
-                    WindowMigrationServer start.
-                    "/ must wait a bit; give it a chance to
-                    "/ really start (before checking)
-                    Delay waitForSeconds:0.5.
-                    WindowMigrationServer serverRunning ifFalse:[
-                        self warn:'WindowMigrationServer startup failed (see stderr).'
-                    ]
-                ].
-            ].
-        ].
-        self modifiedChannel value:false.
-    ].
+        self windowMigrationAuthenticate value:false
+    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::MiscCommunicationSettingsAppl methodsFor:'aspects'!
@@ -4877,14 +4776,6 @@
     ^ enablePasswordCheck.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 remoteBrowsingEnabled
 
     remoteBrowsingEnabled isNil ifTrue:[
@@ -4938,10 +4829,8 @@
 !AbstractSettingsApplication::MiscCommunicationSettingsAppl methodsFor:'initialization & release'!
 
 initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
+    super initialize.
+    self readSettings.
 ! !
 
 !AbstractSettingsApplication::MiscCommunicationSettingsAppl methodsFor:'queries'!
@@ -5020,7 +4909,7 @@
           #name: 'Display settings'
           #min: #(#Point 10 10)
           #max: #(#Point 1024 768)
-          #bounds: #(#Rectangle 23 48 533 614)
+          #bounds: #(#Rectangle 16 46 526 612)
         )
         #component: 
        #(#SpecCollection
@@ -5123,13 +5012,13 @@
                              #(#CheckBoxSpec
                                 #label: 'Hostname in Window Labels'
                                 #name: 'CheckBox5'
-                                #layout: #(#LayoutFrame 0 0 -22 1 200 0 0 1)
+                                #layout: #(#LayoutFrame 0 0 -22 1 216 0 0 1)
                                 #model: #hostNameInLabelHolder
                                 #translateLabel: true
                               )
                              #(#InputFieldSpec
                                 #name: 'EntryField1'
-                                #layout: #(#LayoutFrame 200 0 -22 1 -5 1 0 1)
+                                #layout: #(#LayoutFrame 218 0 -22 1 -5 1 0 1)
                                 #enableChannel: #hostNameInLabelHolder
                                 #model: #newWindowLabelFormat
                                 #immediateAccept: true
@@ -5160,6 +5049,45 @@
 
 !AbstractSettingsApplication::MiscDisplaySettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    PopUpView shadows:self shadows value.
+    (self hostNameInLabelHolder value ~= StandardSystemView includeHostNameInLabel 
+    or:[self newWindowLabelFormat value ~= StandardSystemView windowLabelFormat]) ifTrue:[ 
+        StandardSystemView includeHostNameInLabel:self hostNameInLabelHolder value.
+        self newWindowLabelFormat value notNil ifTrue:[
+            StandardSystemView windowLabelFormat:self newWindowLabelFormat value
+        ].
+
+        Screen allScreens do:[:aDisplay |
+            aDisplay allViewsDo:[:aView |
+                |l|
+
+                aView isTopView ifTrue:[
+                    l := aView label.
+                    l notNil ifTrue:[
+                        aView label:(l , ' '); label:l.  "/ force a change
+                    ]
+                ]
+            ]
+        ]
+    ].
+
+    currentUserPrefs opaqueVariablePanelResizing:self opaqueVariablePanelResize value.
+    currentUserPrefs opaqueTableColumnResizing:self opaqueTableColumnResize value.
+
+    currentUserPrefs beepEnabled:self beepEnabled value.
+
+    StandardSystemView returnFocusWhenClosingModalBoxes:self returnFocus value.
+    StandardSystemView takeFocusWhenMapped:self takeFocus value.
+    currentUserPrefs focusFollowsMouse:self focusFollowsMouse value.
+    Screen current activateOnClick:self activateOnClick value.
+
+    MenuView showAcceleratorKeys:self showAccelerators value.
+
+    "Modified: / 16.12.2002 / 18:06:31 / penk"
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -5184,66 +5112,23 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/miscSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self shadows value:PopUpView shadows.
     self beepEnabled value:currentUserPrefs beepEnabled.
     self newWindowLabelFormat value:StandardSystemView windowLabelFormat.
-
-    self hostNameInLabelHolder value:StandardSystemView includeHostNameInLabel.
-    self returnFocus value:StandardSystemView returnFocusWhenClosingModalBoxes.
-    self takeFocus value:StandardSystemView takeFocusWhenMapped .
-    self focusFollowsMouse value:(currentUserPrefs focusFollowsMouse ? true) .
+    self hostNameInLabelHolder 
+        value:StandardSystemView includeHostNameInLabel.
+    self returnFocus 
+        value:StandardSystemView returnFocusWhenClosingModalBoxes.
+    self takeFocus value:StandardSystemView takeFocusWhenMapped.
+    self focusFollowsMouse value:(currentUserPrefs focusFollowsMouse ? true).
     self activateOnClick value:(Display activateOnClick:nil).
-    self opaqueVariablePanelResize value:currentUserPrefs opaqueVariablePanelResizing.
-    self opaqueTableColumnResize value:currentUserPrefs opaqueTableColumnResizing.
-
+    self opaqueVariablePanelResize 
+        value:currentUserPrefs opaqueVariablePanelResizing.
+    self opaqueTableColumnResize 
+        value:currentUserPrefs opaqueTableColumnResizing.
     self showAccelerators value:MenuView showAcceleratorKeys.
-    self modifiedChannel value:false.
-
-    "Modified: / 16.12.2002 / 18:08:20 / penk"
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        PopUpView shadows:self shadows value.
-        (self hostNameInLabelHolder value ~= StandardSystemView includeHostNameInLabel 
-        or:[self newWindowLabelFormat value ~= StandardSystemView windowLabelFormat]) ifTrue:[ 
-            StandardSystemView includeHostNameInLabel:self hostNameInLabelHolder value.
-            self newWindowLabelFormat value notNil ifTrue:[
-                StandardSystemView windowLabelFormat:self newWindowLabelFormat value
-            ].
-
-            Screen allScreens do:[:aDisplay |
-                aDisplay allViewsDo:[:aView |
-                    |l|
-
-                    aView isTopView ifTrue:[
-                        l := aView label.
-                        l notNil ifTrue:[
-                            aView label:(l , ' '); label:l.  "/ force a change
-                        ]
-                    ]
-                ]
-            ]
-        ].
-
-        currentUserPrefs opaqueVariablePanelResizing:self opaqueVariablePanelResize value.
-        currentUserPrefs opaqueTableColumnResizing:self opaqueTableColumnResize value.
-
-        currentUserPrefs beepEnabled:self beepEnabled value.
-
-        StandardSystemView returnFocusWhenClosingModalBoxes:self returnFocus value.
-        StandardSystemView takeFocusWhenMapped:self takeFocus value.
-        currentUserPrefs focusFollowsMouse:self focusFollowsMouse value.
-        Screen current activateOnClick:self activateOnClick value.
-
-        MenuView showAcceleratorKeys:self showAccelerators value.
-        self modifiedChannel value:false.
-    ].
-
-    "Modified: / 16.12.2002 / 18:06:31 / penk"
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::MiscDisplaySettingsAppl methodsFor:'aspects'!
@@ -5297,14 +5182,6 @@
     ^ hostNameInLabelHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 newWindowLabelFormat
 
     newWindowLabelFormat isNil ifTrue:[
@@ -5386,16 +5263,6 @@
 
 !AbstractSettingsApplication::MiscDisplaySettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := self class classResources.
-    currentUserPrefs := UserPreferences current.
-    self loadRequest.
-    super initialize
-
-    "Modified: / 16.12.2002 / 17:50:59 / penk"
-!
-
 postOpen
 !
 
@@ -5648,6 +5515,24 @@
 
 !AbstractSettingsApplication::OsiSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    self osiACSEPresent value ifTrue:[
+        OSI::ACSE errorLogging:self osiACSEErrorLogging value.
+        OSI::ACSE connectionLogging:self osiACSEConnectionLogging value.
+        OSI::ACSE dataLogging:self osiACSEDataLogging value.
+    ].
+    self osiROSEPresent value ifTrue:[
+        OSI::ROSE errorLogging:self osiROSEErrorLogging value.
+        OSI::ROSE invocationLogging:self osiROSEInvokationLogging value.
+        OSI::ROSE responseLogging:self osiROSEResponseLogging value.
+    ].
+    self osiCMISEPresent value ifTrue:[
+        OSI::CMISE errorLogging:self osiCMISEErrorLogging value.
+        OSI::CMISE messageLogging:self osiCMISEMessageLogging value.
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -5658,60 +5543,29 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/communicationsSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self osiACSEPresent value:(OSI::ACSE notNil and:[OSI::ACSE isLoaded]).
     self osiROSEPresent value:(OSI::ROSE notNil and:[OSI::ROSE isLoaded]).
     self osiCMISEPresent value:(OSI::CMISE notNil and:[OSI::CMISE isLoaded]).
-
     self osiACSEPresent value ifTrue:[
         self osiACSEErrorLogging value:OSI::ACSE errorLogging.
         self osiACSEConnectionLogging value:OSI::ACSE connectionLogging.
-        self osiACSEDataLogging value:OSI::ACSE dataLogging.
+        self osiACSEDataLogging value:OSI::ACSE dataLogging
     ].
     self osiROSEPresent value ifTrue:[
         self osiROSEErrorLogging value:OSI::ROSE errorLogging.
         self osiROSEInvokationLogging value:OSI::ROSE invocationLogging.
-        self osiROSEResponseLogging value:OSI::ROSE responseLogging.
+        self osiROSEResponseLogging value:OSI::ROSE responseLogging
     ].
     self osiCMISEPresent value ifTrue:[
         self osiCMISEErrorLogging value:OSI::CMISE errorLogging.
-        self osiCMISEMessageLogging value:OSI::CMISE messageLogging.
-    ].
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        self osiACSEPresent value ifTrue:[
-            OSI::ACSE errorLogging:self osiACSEErrorLogging value.
-            OSI::ACSE connectionLogging:self osiACSEConnectionLogging value.
-            OSI::ACSE dataLogging:self osiACSEDataLogging value.
-        ].
-        self osiROSEPresent value ifTrue:[
-            OSI::ROSE errorLogging:self osiROSEErrorLogging value.
-            OSI::ROSE invocationLogging:self osiROSEInvokationLogging value.
-            OSI::ROSE responseLogging:self osiROSEResponseLogging value.
-        ].
-        self osiCMISEPresent value ifTrue:[
-            OSI::CMISE errorLogging:self osiCMISEErrorLogging value.
-            OSI::CMISE messageLogging:self osiCMISEMessageLogging value.
-        ].
-        self modifiedChannel value:false.
-    ].
+        self osiCMISEMessageLogging value:OSI::CMISE messageLogging
+    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::OsiSettingsAppl methodsFor:'aspects'!
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 osiACSEConnectionLogging
     "automatically generated by UIPainter ..."
 
@@ -5913,15 +5767,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::OsiSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::OsiSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -6270,6 +6115,32 @@
 
 !AbstractSettingsApplication::PrinterSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    Printer := self possiblePrinters at:(self printerTypeSelection value).
+    Printer printCommand:self printCommand value.
+
+    Printer supportsPageSizes ifTrue:[
+        Printer pageFormat:(self pageFormat value).
+        Printer landscape:(self landscape value).
+    ].
+    Printer supportsMargins ifTrue:[
+        | unit |
+        self selectedUnit value == 2 ifTrue:[
+            unit := #mm
+        ] ifFalse:[
+            unit := #inch
+        ].
+        Printer topMargin:(UnitConverter convert:(self topMargin value) from:unit to:#inch).
+        Printer leftMargin:(UnitConverter convert:(self leftMargin value) from:unit to:#inch).
+        Printer rightMargin:(UnitConverter convert:(self rightMargin value) from:unit to:#inch).
+        Printer bottomMargin:(UnitConverter convert:(self bottomMargin value) from:unit to:#inch).
+    ].
+    Printer supportsPostscript ifTrue:[
+        Printer supportsColor:self supportsColor value.
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -6281,50 +6152,21 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/printerSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self bottomMargin value:Printer bottomMargin.
     self landscape value:Printer landscape.
     self leftMargin value:Printer leftMargin.
     self rightMargin value:Printer rightMargin.
     self topMargin value:Printer topMargin.
     self printCommand value:Printer printCommand.
-    self printerTypeSelection value:(possiblePrinters identityIndexOf:Printer).
+    self printerTypeSelection 
+        value:(self possiblePrinters identityIndexOf:Printer).
     self supportsColor value:Printer supportsColor.
     self pageFormatList notEmpty ifTrue:[
-        self pageFormat value:Printer pageFormat.
+        self pageFormat value:Printer pageFormat
     ].
     self printerTypeSelectionOrUnitListChanged.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        Printer := possiblePrinters at:(self printerTypeSelection value).
-        Printer printCommand:self printCommand value.
-
-        Printer supportsPageSizes ifTrue:[
-            Printer pageFormat:(self pageFormat value).
-            Printer landscape:(self landscape value).
-        ].
-        Printer supportsMargins ifTrue:[
-            | unit |
-            self selectedUnit value == 2 ifTrue:[
-                unit := #mm
-            ] ifFalse:[
-                unit := #inch
-            ].
-            Printer topMargin:(UnitConverter convert:(self topMargin value) from:unit to:#inch).
-            Printer leftMargin:(UnitConverter convert:(self leftMargin value) from:unit to:#inch).
-            Printer rightMargin:(UnitConverter convert:(self rightMargin value) from:unit to:#inch).
-            Printer bottomMargin:(UnitConverter convert:(self bottomMargin value) from:unit to:#inch).
-        ].
-        Printer supportsPostscript ifTrue:[
-            Printer supportsColor:self supportsColor value.
-        ].
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::PrinterSettingsAppl methodsFor:'aspects'!
@@ -6388,14 +6230,6 @@
     ^ leftMargin.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 pageFormat
 
     pageFormat isNil ifTrue:[
@@ -6432,7 +6266,7 @@
 printCommandList
 
     printCommandList isNil ifTrue:[
-        printCommandList := commandList asList.
+        printCommandList := self commandList asList.
     ].
     ^ printCommandList.
 !
@@ -6440,7 +6274,7 @@
 printerType
 
     printerType isNil ifTrue:[
-        printerType := (possiblePrinters collect:[:cls | cls printerTypeName]) asList.
+        printerType := (self possiblePrinters collect:[:cls | cls printerTypeName]) asList.
         printerType onChangeSend:#evaluateModified to:self
     ].
     ^ printerType.
@@ -6449,7 +6283,7 @@
 printerTypeSelection
 
     printerTypeSelection isNil ifTrue:[
-        printerTypeSelection := (possiblePrinters identityIndexOf:Printer) asValue.
+        printerTypeSelection := (self possiblePrinters identityIndexOf:Printer) asValue.
 "/       printerTypeSelection onChangeSend:#printerTypeSelectionChanged to:self.
         printerTypeSelection addDependent:self.
         printerTypeSelection changed.
@@ -6510,7 +6344,7 @@
 
     | p hasPageSize hasMargins|
     self printerType selectionIndex ~~ 0 ifTrue:[
-        p := possiblePrinters at:(self printerType selectionIndex).
+        p := self possiblePrinters at:(self printerType selectionIndex).
         hasPageSize := p supportsPageSizes. 
         hasMargins := p supportsMargins. 
     ] ifFalse:[
@@ -6524,7 +6358,7 @@
     | p hasPageSize hasMargins unit|
 
     self printerTypeSelection value ~~ 0 ifTrue:[
-        p := possiblePrinters at:(self printerTypeSelection value).
+        p := self possiblePrinters at:(self printerTypeSelection value).
         hasPageSize := p supportsPageSizes. 
         hasMargins := p supportsMargins. 
     ] ifFalse:[
@@ -6590,25 +6424,6 @@
 
 !AbstractSettingsApplication::PrinterSettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := self class classResources.
-    possiblePrinters := PrinterStream withAllSubclasses asArray.
-    commandList := resources at:'PRINT_COMMANDS' ifAbsent:nil.
-    commandList isNil ifTrue:[
-        commandList := PrinterStream defaultCommands.
-        commandList isNil ifTrue:[
-            commandList := #('lpr' 
-                             'lp' 
-                            ) asOrderedCollection.
-        ].
-        (commandList includes:self printCommand value) not ifTrue:[
-            commandList add:self printCommand value.
-        ].
-    ].
-    super initialize
-!
-
 postOpen
 !
 
@@ -6626,6 +6441,24 @@
 
 !AbstractSettingsApplication::PrinterSettingsAppl methodsFor:'queries'!
 
+commandList
+    commandList isNil ifTrue:[
+        commandList := resources at:'PRINT_COMMANDS' ifAbsent:nil.
+        commandList isNil ifTrue:[
+            commandList := PrinterStream defaultCommands.
+            commandList isNil ifTrue:[
+                commandList := #('lpr' 
+                                 'lp' 
+                                ) asOrderedCollection.
+            ].
+            (commandList includes:self printCommand value) not ifTrue:[
+                commandList add:self printCommand value.
+            ].
+        ].
+    ].
+    ^ commandList
+!
+
 hasUnsavedChanges
 
 
@@ -6635,7 +6468,7 @@
     ] ifFalse:[
         unit := #inch
     ].
-    printer := possiblePrinters at:(self printerTypeSelection value).
+    printer := self possiblePrinters at:(self printerTypeSelection value).
     ^ (
         printer ~= Printer or:[
         Printer printCommand ~= self printCommand value or:[
@@ -6653,6 +6486,13 @@
             Printer supportsColor ~= self supportsColor value
         ]]]]]
     )
+!
+
+possiblePrinters
+    possiblePrinters isNil ifTrue:[
+        possiblePrinters := PrinterStream withAllSubclasses asArray.
+    ].
+    ^ possiblePrinters
 ! !
 
 !AbstractSettingsApplication::ProcessorSchedulerSettingsAppl class methodsFor:'image specs'!
@@ -6761,6 +6601,20 @@
 
 !AbstractSettingsApplication::ProcessorSchedulerSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    Processor isTimeSlicing ~~ self preemptive value ifTrue:[
+        self preemptive value ifTrue:[
+            Processor startTimeSlicing
+        ] ifFalse:[
+            Processor stopTimeSlicing
+        ]
+    ].
+    Processor supportDynamicPriorities ~~ self dynamicPrios value ifTrue:[
+        Processor supportDynamicPriorities:self dynamicPrios value
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -6772,28 +6626,10 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/editSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self preemptive value:Processor isTimeSlicing.
     self dynamicPrios value:Processor supportDynamicPriorities.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        Processor isTimeSlicing ~~ self preemptive value ifTrue:[
-            self preemptive value ifTrue:[
-                Processor startTimeSlicing
-            ] ifFalse:[
-                Processor stopTimeSlicing
-            ]
-        ].
-        Processor supportDynamicPriorities ~~ self dynamicPrios value ifTrue:[
-            Processor supportDynamicPriorities:self dynamicPrios value
-        ].
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::ProcessorSchedulerSettingsAppl methodsFor:'aspects'!
@@ -6815,14 +6651,6 @@
     ^ dynamicPrios.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 preemptive
     "automatically generated by UIPainter ..."
 
@@ -6854,15 +6682,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::ProcessorSchedulerSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::ProcessorSchedulerSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -7068,6 +6887,30 @@
 
 !AbstractSettingsApplication::RDoItServerSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    |rDoits|
+
+    RDoItServer defaultPortNumber:self rDoitServerPort value.
+    RDoItServer logging:self rDoitLogging value.
+    RDoItServer errorLogging:self rDoitErrorLogging value.
+    RDoItServer errorCatching:(self rDoitErrorDebugging value not).
+    rDoits := self rDoitsEnabled value.
+    rDoits ~~ RDoItServer serverRunning ifTrue:[
+        rDoits ifFalse:[
+            RDoItServer stop
+        ] ifTrue:[
+            RDoItServer start.
+            "/ must wait a bit; give it a chance to
+            "/ really start (before checking)
+            Delay waitForSeconds:0.5.
+            RDoItServer serverRunning ifFalse:[
+                self warn:'RDoit startup failed (see stderr).'
+            ]
+        ]
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -7079,61 +6922,25 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/communicationsSettings.html'].
 !
 
-loadRequest
-
+readSettings
     (self hasRDoitServer and:[RDoItServer isLoaded]) ifTrue:[
         self rDoitsEnabled value:RDoItServer serverRunning.
         self rDoitLogging value:RDoItServer isLogging.
         self rDoitErrorLogging value:RDoItServer isErrorLogging.
         self rDoitErrorDebugging value:RDoItServer isErrorCatching not.
-        self rDoitServerPort value:RDoItServer defaultPortNumber.
+        self rDoitServerPort value:RDoItServer defaultPortNumber
     ] ifFalse:[
         self rDoitsEnabled value:false.
         self rDoitLogging value:false.
         self rDoitErrorLogging value:false.
         self rDoitErrorDebugging value:false.
-        self rDoitServerPort value:nil.
-    ].
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    |rDoits|
-
-    self hasUnsavedChanges ifTrue:[
-        RDoItServer defaultPortNumber:self rDoitServerPort value.
-        RDoItServer logging:self rDoitLogging value.
-        RDoItServer errorLogging:self rDoitErrorLogging value.
-        RDoItServer errorCatching:(self rDoitErrorDebugging value not).
-        rDoits := self rDoitsEnabled value.
-        rDoits ~~ RDoItServer serverRunning ifTrue:[
-            rDoits ifFalse:[
-                RDoItServer stop
-            ] ifTrue:[
-                RDoItServer start.
-                "/ must wait a bit; give it a chance to
-                "/ really start (before checking)
-                Delay waitForSeconds:0.5.
-                RDoItServer serverRunning ifFalse:[
-                    self warn:'RDoit startup failed (see stderr).'
-                ]
-            ]
-        ].
-        self modifiedChannel value:false.
-    ].
+        self rDoitServerPort value:nil
+    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::RDoItServerSettingsAppl methodsFor:'aspects'!
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 rDoitErrorDebugging
 
     rDoitErrorDebugging isNil ifTrue:[
@@ -7206,13 +7013,6 @@
 
 !AbstractSettingsApplication::RDoItServerSettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-!
-
 postOpen
 !
 
@@ -7655,6 +7455,29 @@
 
 !AbstractSettingsApplication::STCCompilerSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    Compiler stcCompilation:(self class stcCompilationOptions at:self stcCompilationSelection value).
+    Compiler stcCompilationIncludes:self stcIncludes value.
+    Compiler stcCompilationDefines:self stcDefines value.
+    Compiler stcCompilationOptions:self stcOptions value.
+    Compiler ccCompilationOptions:self ccOptions value.
+    Compiler ccPath:self cc value.
+    self stc value ~= Compiler stcPath ifTrue:[
+        Compiler stcPath:self stc value
+    ].
+    ObjectFileLoader linkCommand:self linkCommand value.
+    ObjectFileLoader linkArgs:self linkArgs value.
+    ObjectFileLoader notNil ifTrue:[
+        self stcLibraries value notNil ifTrue:[
+            ObjectFileLoader searchedLibraries:(self stcLibraries value asCollectionOfWords).
+        ].
+        stcLibraryPath notNil ifTrue:[
+            ObjectFileLoader libPath:(self stcLibraryPath value).
+        ]
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -7666,61 +7489,35 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/compilerSettings.html'].
 !
 
-loadRequest
-
-    self canLoadBinaries value:(ObjectFileLoader notNil and:[ObjectFileLoader canLoadObjectFiles]).
+readSettings
+    self canLoadBinaries 
+        value:(ObjectFileLoader notNil and:[ObjectFileLoader canLoadObjectFiles]).
     self stcIncludes value:Compiler stcCompilationIncludes.
     self stcDefines value:Compiler stcCompilationDefines.
     self stcOptions value:Compiler stcCompilationOptions.
     self ccOptions value:Compiler ccCompilationOptions.
-
     self cc value:Compiler ccPath.
     self stc value:Compiler stcPath.
     self linkCommand value:ObjectFileLoader linkCommand.
     self linkArgs value:ObjectFileLoader linkArgs.
     ObjectFileLoader notNil ifTrue:[
-        | t |
+        |t|
+
         (t := ObjectFileLoader searchedLibraries) notNil ifTrue:[
-            self stcLibraries value:(String fromStringCollection:t separatedBy:' ').
+            self stcLibraries value:(String fromStringCollection:t separatedBy:' ')
         ].
         (t := ObjectFileLoader libPath) notNil ifTrue:[
-            self stcLibraryPath value:t.
+            self stcLibraryPath value:t
         ]
     ].
     self thisIsADemoVersion ifTrue:[
-        self stcCompilationSelection value:(self class stcCompilationOptions indexOf:(Compiler stcCompilation) ifAbsent:2).
+        self stcCompilationSelection value:(self class stcCompilationOptions 
+                    indexOf:(Compiler stcCompilation)
+                    ifAbsent:2)
     ] ifFalse:[
-        self stcCompilationSelection value:2.
-    ].
-
-
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        Compiler stcCompilation:(self class stcCompilationOptions at:self stcCompilationSelection value).
-        Compiler stcCompilationIncludes:self stcIncludes value.
-        Compiler stcCompilationDefines:self stcDefines value.
-        Compiler stcCompilationOptions:self stcOptions value.
-        Compiler ccCompilationOptions:self ccOptions value.
-        Compiler ccPath:self cc value.
-        self stc value ~= Compiler stcPath ifTrue:[
-            Compiler stcPath:self stc value
-        ].
-        ObjectFileLoader linkCommand:self linkCommand value.
-        ObjectFileLoader linkArgs:self linkArgs value.
-        ObjectFileLoader notNil ifTrue:[
-            self stcLibraries value notNil ifTrue:[
-                ObjectFileLoader searchedLibraries:(self stcLibraries value asCollectionOfWords).
-            ].
-            stcLibraryPath notNil ifTrue:[
-                ObjectFileLoader libPath:(self stcLibraryPath value).
-            ]
-        ].
-        self modifiedChannel value:false.
-    ].
+        self stcCompilationSelection value:2
+    ].
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::STCCompilerSettingsAppl methodsFor:'aspects'!
@@ -7774,14 +7571,6 @@
     ^ linkCommand.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 stc
 
     stc isNil ifTrue:[
@@ -7875,15 +7664,6 @@
     super update:something with:aParameter from:changedObject
 ! !
 
-!AbstractSettingsApplication::STCCompilerSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::STCCompilerSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -8249,6 +8029,28 @@
 
 !AbstractSettingsApplication::SourceCodeFormatSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    currentUserPrefs autoFormatting:self autoFormat value.
+    currentUserPrefs at:#'formatter.tabIndent' put:self tabIndent value.
+    currentUserPrefs at:#'formatter.spaceAroundTemporaries' put:self spaceAroundTemporaries value.
+    currentUserPrefs at:#'formatter.emptyLineAfterTemporaries' put:self emptyLineAfterTemporaries value.
+    currentUserPrefs at:#'formatter.spaceAfterReturnToken' put:self spaceAfterReturnToken value.
+    currentUserPrefs at:#'formatter.spaceAfterKeywordSelector' put:self spaceAfterKeywordSelector value.
+    currentUserPrefs at:#'formatter.cStyleBlocks' put:self cStyleBlocks value.
+    currentUserPrefs at:#'formatter.blockArgumentsOnNewLine' put:self blockArgumentsOnNewLine value.
+    currentUserPrefs at:#'formatter.maxLengthForSingleLineBlocks' put:self maxLengthForSingleLineBlocks value.
+    RBFormatter 
+        tabIndent:self tabIndent value;
+        spaceAroundTemporaries:self spaceAroundTemporaries value;
+        emptyLineAfterTemporaries:self emptyLineAfterTemporaries value;
+        spaceAfterReturnToken:self spaceAfterReturnToken value;
+        spaceAfterKeywordSelector:self spaceAfterKeywordSelector value;
+        cStyleBlocks:self cStyleBlocks value;
+        blockArgumentsOnNewLine:self blockArgumentsOnNewLine value;
+        maxLengthForSingleLineBlocks:self maxLengthForSingleLineBlocks value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -8260,21 +8062,23 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/sourceFormatSettings.html'].
 !
 
-loadRequest
-
+readSettings
     reformatLocked := true.
     self autoFormat value:currentUserPrefs autoFormatting.
     self tabIndent value:RBFormatter tabIndent.
     self spaceAroundTemporaries value:RBFormatter spaceAroundTemporaries.
-    self emptyLineAfterTemporaries value:RBFormatter emptyLineAfterTemporaries.
+    self emptyLineAfterTemporaries 
+        value:RBFormatter emptyLineAfterTemporaries.
     self spaceAfterReturnToken value:RBFormatter spaceAfterReturnToken.
-    self spaceAfterKeywordSelector value:RBFormatter spaceAfterKeywordSelector.
+    self spaceAfterKeywordSelector 
+        value:RBFormatter spaceAfterKeywordSelector.
     self cStyleBlocks value:RBFormatter cStyleBlocks.
     self blockArgumentsOnNewLine value:RBFormatter blockArgumentsOnNewLine.
-    self maxLengthForSingleLineBlocks value:RBFormatter maxLengthForSingleLineBlocks.
+    self maxLengthForSingleLineBlocks 
+        value:RBFormatter maxLengthForSingleLineBlocks.
     self evaluateModified.
     reformatLocked := false.
-    self reformat.
+    self reformat
 !
 
 reformat
@@ -8356,31 +8160,6 @@
     self maxLengthForSingleLineBlocks value: 20.
     reformatLocked := false.
     self reformat.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        currentUserPrefs autoFormatting:self autoFormat value.
-        currentUserPrefs at:#'formatter.tabIndent' put:self tabIndent value.
-        currentUserPrefs at:#'formatter.spaceAroundTemporaries' put:self spaceAroundTemporaries value.
-        currentUserPrefs at:#'formatter.emptyLineAfterTemporaries' put:self emptyLineAfterTemporaries value.
-        currentUserPrefs at:#'formatter.spaceAfterReturnToken' put:self spaceAfterReturnToken value.
-        currentUserPrefs at:#'formatter.spaceAfterKeywordSelector' put:self spaceAfterKeywordSelector value.
-        currentUserPrefs at:#'formatter.cStyleBlocks' put:self cStyleBlocks value.
-        currentUserPrefs at:#'formatter.blockArgumentsOnNewLine' put:self blockArgumentsOnNewLine value.
-        currentUserPrefs at:#'formatter.maxLengthForSingleLineBlocks' put:self maxLengthForSingleLineBlocks value.
-        RBFormatter 
-            tabIndent:self tabIndent value;
-            spaceAroundTemporaries:self spaceAroundTemporaries value;
-            emptyLineAfterTemporaries:self emptyLineAfterTemporaries value;
-            spaceAfterReturnToken:self spaceAfterReturnToken value;
-            spaceAfterKeywordSelector:self spaceAfterKeywordSelector value;
-            cStyleBlocks:self cStyleBlocks value;
-            blockArgumentsOnNewLine:self blockArgumentsOnNewLine value;
-            maxLengthForSingleLineBlocks:self maxLengthForSingleLineBlocks value.
-        self modifiedChannel value:false.
-    ].
 ! !
 
 !AbstractSettingsApplication::SourceCodeFormatSettingsAppl methodsFor:'aspects'!
@@ -8438,14 +8217,6 @@
     ^ maxLengthForSingleLineBlocks.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 spaceAfterKeywordSelector
 
     spaceAfterKeywordSelector isNil ifTrue:[
@@ -8508,21 +8279,14 @@
 !AbstractSettingsApplication::SourceCodeFormatSettingsAppl methodsFor:'initialization & release'!
 
 initialize
-
-    resources := self class classResources.
+    super initialize.
     RBFormatter isNil ifTrue:[
-        ^ self warn:'Sorry, no RBFormatter class'.
-    ].
-
+        ^ self warn:'Sorry, no RBFormatter class'
+    ].
     RBFormatter isLoaded ifFalse:[
-        WindowGroup activeGroup withWaitCursorDo:[
-            RBFormatter autoload
-        ]
-    ].
-    currentUserPrefs := UserPreferences current.
+        WindowGroup activeGroup withWaitCursorDo:[RBFormatter autoload]
+    ].
     reformatLocked := false.
-    self loadRequest.
-    super initialize
 !
 
 postBuildTextEditor:aWidget
@@ -8941,6 +8705,59 @@
     ].
 !
 
+basicSaveSettings
+
+    (self hasManager and:[self useManager value]) ifTrue:[
+        manager isNil ifTrue:[
+            Smalltalk at:#SourceCodeManager put:(AbstractSourceCodeManager defaultManager).
+            manager := Smalltalk at:#SourceCodeManager.
+        ].
+        Class tryLocalSourceFirst:self localSourceFirst value.
+
+        manager notNil ifTrue:[
+            | nm fn|
+            nm := self sourceCacheDir value.
+            nm size > 0 ifTrue:[
+                (fn := nm asFilename) exists ifFalse:[
+                    (self confirm:('CVS cache directory ''' , nm , ''' does not exists\create ?' withCRs)) ifTrue:[
+                        fn makeDirectory; 
+                           makeReadableForAll;
+                           makeWritableForAll;
+                           makeExecutableForAll.
+                    ]
+                ].
+                (fn exists 
+                and:[fn isDirectory
+                and:[fn isReadable
+                and:[fn isWritable]]]) ifTrue:[
+                    AbstractSourceCodeManager cacheDirectoryName:(self sourceCacheDir value).
+                ] ifFalse:[
+                    self warn:'Invalid sourceCache directory.'
+                ]
+            ]
+        ].
+
+        repositoryHolder notNil ifTrue:[
+            repositoryHolder value size > 0 ifTrue:[
+                manager notNil ifTrue:[
+                    manager initializeForRepository:repositoryHolder value.
+                ]
+            ].
+        ].
+        self cvsBinDirectoryHolder value size > 0 ifTrue:[
+            CVSSourceCodeManager cvsBinDirectory:self cvsBinDirectoryHolder value.
+        ].
+        CVSSourceCodeManager initializeForRepository:self cvsRootHolder value.
+        CVSSourceCodeManager repositoryNamesPerModule:rootsPerModule.
+        DebugView newDebugger.
+    ] ifFalse:[
+        Smalltalk at:#SourceCodeManager put:nil
+    ].
+
+    UserPreferences current at:#checkClassesWhenCheckingIn put:self checkClassesWhenCheckingIn value.
+    self acceptChannel value.    
+!
+
 condenseSourceCache
 
     self withWaitCursorDo:[ AbstractSourceCodeManager condenseSourceCache ]
@@ -8962,33 +8779,34 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/cvsSetup.html'].
 !
 
-loadRequest
-
+readSettings
     self hasManager ifTrue:[
-        self useManager value:(manager := Smalltalk at:#SourceCodeManager) notNil.
+        self useManager 
+            value:(manager := Smalltalk at:#SourceCodeManager) notNil.
         self localSourceFirst value:Class tryLocalSourceFirst.
         self sourceCacheDir value:(AbstractSourceCodeManager cacheDirectoryName).
         manager notNil ifTrue:[
             manager forgetDisabledModules.
             repository := manager repositoryName.
             repository notNil ifTrue:[
-                repositoryHolder := repository asValue.
+                repositoryHolder := repository asValue
             ] ifFalse:[
-                repositoryHolder := '' asValue.
-            ].
+                repositoryHolder := '' asValue
+            ]
         ].
-        self cvsIsSetup value:true.
+        self cvsIsSetup value:true
     ] ifFalse:[
-        self useManager value: false.
+        self useManager value:false.
         self localSourceFirst value:false.
-        self cvsIsSetup value:false.
-    ].
-
-    self checkClassesWhenCheckingIn value:(currentUserPrefs at:#checkClassesWhenCheckingIn ifAbsent:true).
-    self cvsRootHolder value:CVSSourceCodeManager repositoryName ? '/files/CVS'.
+        self cvsIsSetup value:false
+    ].
+    self checkClassesWhenCheckingIn 
+        value:(currentUserPrefs at:#checkClassesWhenCheckingIn ifAbsent:true).
+    self cvsRootHolder 
+        value:CVSSourceCodeManager repositoryName ? '/files/CVS'.
     self cvsBinDirectoryHolder value:CVSSourceCodeManager cvsBinDirectory.
     self perModuleRootModule value:nil.
-    self modifiedChannel value:false.
+    self modifiedChannel value:false
 !
 
 removePerModuleRoot
@@ -9003,66 +8821,6 @@
     self perModuleRoot value:nil.
 !
 
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        (self hasManager and:[self useManager value]) ifTrue:[
-            manager isNil ifTrue:[
-                Smalltalk at:#SourceCodeManager put:(AbstractSourceCodeManager defaultManager).
-                manager := Smalltalk at:#SourceCodeManager.
-            ].
-            Class tryLocalSourceFirst:self localSourceFirst value.
-
-            manager notNil ifTrue:[
-                | nm fn|
-                nm := self sourceCacheDir value.
-                nm size > 0 ifTrue:[
-                    (fn := nm asFilename) exists ifFalse:[
-                        (self confirm:('CVS cache directory ''' , nm , ''' does not exists\create ?' withCRs)) ifTrue:[
-                            fn makeDirectory; 
-                               makeReadableForAll;
-                               makeWritableForAll;
-                               makeExecutableForAll.
-                        ]
-                    ].
-                    (fn exists 
-                    and:[fn isDirectory
-                    and:[fn isReadable
-                    and:[fn isWritable]]]) ifTrue:[
-                        AbstractSourceCodeManager cacheDirectoryName:(self sourceCacheDir value).
-                    ] ifFalse:[
-                        self warn:'Invalid sourceCache directory.'
-                    ]
-                ]
-            ].
-
-            repositoryHolder notNil ifTrue:[
-                repositoryHolder value size > 0 ifTrue:[
-                    manager notNil ifTrue:[
-                        manager initializeForRepository:repositoryHolder value.
-                    ]
-                ].
-            ].
-            self cvsBinDirectoryHolder value size > 0 ifTrue:[
-                CVSSourceCodeManager cvsBinDirectory:self cvsBinDirectoryHolder value.
-            ].
-            CVSSourceCodeManager initializeForRepository:self cvsRootHolder value.
-            CVSSourceCodeManager repositoryNamesPerModule:rootsPerModule.
-            DebugView newDebugger.
-        ] ifFalse:[
-            Smalltalk at:#SourceCodeManager put:nil
-        ].
-
-        UserPreferences current at:#checkClassesWhenCheckingIn put:self checkClassesWhenCheckingIn value.
-        self acceptChannel value.    
-
-        "/
-        "/ update system settings
-        "/
-        self modifiedChannel value:false.
-    ].
-!
-
 setupSourceCodeManager
 
    AbstractLauncherApplication::LauncherDialogs cvsConfigurationDialog.
@@ -9176,14 +8934,6 @@
     ^ localSourceFirst.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 perModuleRoot
     "automatically generated by UIPainter ..."
 
@@ -9317,17 +9067,14 @@
 !AbstractSettingsApplication::SourceCodeManagementSettingsAppl methodsFor:'initialization & release'!
 
 initialize
-
-    resources := self class classResources.
-    currentUserPrefs := UserPreferences current.
+    super initialize.
+
     (AbstractSourceCodeManager notNil 
-    and:[AbstractSourceCodeManager isLoaded not]) ifTrue:[
-        AbstractSourceCodeManager autoload.    
-    ].
+        and:[AbstractSourceCodeManager isLoaded not]) 
+            ifTrue:[AbstractSourceCodeManager autoload].
     repositoryHolder := '' asValue.
-    rootsPerModule := Dictionary new declareAllFrom:(CVSSourceCodeManager repositoryNamesPerModule).
-    self loadRequest.
-    super initialize
+    rootsPerModule := Dictionary new 
+                declareAllFrom:(CVSSourceCodeManager repositoryNamesPerModule).
 !
 
 postOpen
@@ -9486,6 +9233,39 @@
 
 !AbstractSettingsApplication::StyleSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    | newStyle master requestor launcher|
+
+    newStyle := self selectedStyle value.
+    master := self masterApplication.
+    master notNil ifTrue:[
+        requestor := master requestor.
+    ].
+
+    requestor notNil ifTrue:[
+        launcher := requestor.
+    ] ifFalse:[
+        | transcript |    
+        transcript := Transcript current.
+        transcript notNil ifTrue:[
+            | app|
+            app := transcript topView application.
+            (app respondsTo:#reopenLauncher) ifTrue:[
+                launcher := app.
+            ].
+        ].
+    ].
+    self withWaitCursorDo:[
+        Transcript showCR:'change style to ' , newStyle , ' ...'.
+        View defaultStyle:newStyle asSymbol.
+    ].
+    launcher notNil ifTrue:[
+        launcher reopenLauncher.
+    ].
+    DebugView newDebugger.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -9497,45 +9277,8 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
 !
 
-loadRequest
-
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    | newStyle master requestor|
-
-    newStyle := self selectedStyle value.
-    master := self masterApplication.
-    master notNil ifTrue:[
-        requestor := master requestor.
-    ].
-    self hasUnsavedChanges ifTrue:[
-        | launcher |
-        requestor notNil ifTrue:[
-            launcher := requestor.
-        ] ifFalse:[
-            | transcript |    
-            transcript := Transcript current.
-            transcript notNil ifTrue:[
-                | app|
-                app := transcript topView application.
-                (app respondsTo:#reopenLauncher) ifTrue:[
-                    launcher := app.
-                ].
-            ].
-        ].
-        self withWaitCursorDo:[
-            Transcript showCR:'change style to ' , newStyle , ' ...'.
-            View defaultStyle:newStyle asSymbol.
-        ].
-        launcher notNil ifTrue:[
-            launcher reopenLauncher.
-        ].
-        DebugView newDebugger.
-        self modifiedChannel value:false.
-    ].
+readSettings
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::StyleSettingsAppl methodsFor:'aspects'!
@@ -9548,14 +9291,6 @@
     ^ infoLabelHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 noticeLabelHolder
 
     noticeLabelHolder isNil ifTrue:[
@@ -9671,7 +9406,8 @@
 
     |someRsrcFile resourceDir|
 
-    resources := self class classResources.
+    super initialize.
+
     someRsrcFile := Smalltalk getSystemFileName:('resources' asFilename constructString:'normal.style').
     someRsrcFile isNil ifTrue:[
         someRsrcFile := Smalltalk getResourceFileName:'normal.style' forPackage:'stx:libview'.
@@ -9696,7 +9432,6 @@
     ].
     self selectedStyle value:(View defaultStyle).
     self noticeLabelHolder value:(resources at:'STYLE_MSG' default:'Select a Style') withCRs.    
-    super initialize
 ! !
 
 !AbstractSettingsApplication::StyleSettingsAppl methodsFor:'queries'!
@@ -9985,6 +9720,13 @@
 
 !AbstractSettingsApplication::SyntaxColorSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    oldUserPreferences := currentUserPrefs copy.
+    currentUserPrefs syntaxColoring:self syntaxColoring value.
+    currentUserPrefs at:#fullSelectorCheck put:self fullSelectorCheck value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -10008,24 +9750,26 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/sourceSettings.html'].
 !
 
-loadRequest
-
-    | colorList resetListLoc|
+readSettings
+    |colorList resetListLoc|
 
     oldUserPreferences notNil ifTrue:[
-        (UserPreferences reset; current) declareAllFrom: oldUserPreferences
+        (UserPreferences
+            reset;
+            current) declareAllFrom:oldUserPreferences
     ].
     self syntaxColoring value:currentUserPrefs syntaxColoring.
     self fullSelectorCheck value:currentUserPrefs fullSelectorCheck.
     oldUserPreferences := currentUserPrefs copy.
     colorList := UserPreferences syntaxColorNames.
-    resetListLoc := currentUserPrefs listOfPredefinedSyntaxColoringSchemes collect:[: entry | entry second].
+    resetListLoc := currentUserPrefs listOfPredefinedSyntaxColoringSchemes 
+                collect:[:entry | entry second].
     self resetList value:resetListLoc.
     self resetListSelection value:resetListLoc first.
     self syntaxEmphasisList value:self class emphasisList.
     self syntaxElementList value:colorList.
     self syntaxElementSelection value:(colorList at:1).
-    self modifiedChannel value:false.
+    self modifiedChannel value:false
 !
 
 recolor
@@ -10048,16 +9792,6 @@
     currentUserPrefs perform:resetSelector. 
     self recolor.
     self evaluateModified.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        oldUserPreferences := currentUserPrefs copy.
-        currentUserPrefs syntaxColoring:self syntaxColoring value.
-        currentUserPrefs at:#fullSelectorCheck put:self fullSelectorCheck value.
-        self modifiedChannel value:false.
-    ].
 ! !
 
 !AbstractSettingsApplication::SyntaxColorSettingsAppl methodsFor:'aspects'!
@@ -10079,14 +9813,6 @@
     ^ fullSelectorCheck.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 resetList
 
     resetList isNil ifTrue:[
@@ -10242,16 +9968,13 @@
 !AbstractSettingsApplication::SyntaxColorSettingsAppl methodsFor:'initialization & release'!
 
 initialize
-
-    resources := self class classResources.
-    currentUserPrefs := UserPreferences current.
     self initializeEmphasisDictionary.
+    super initialize.
+
     resetListDictionary := Dictionary new.
-    currentUserPrefs listOfPredefinedSyntaxColoringSchemes do:[: entry |
-        resetListDictionary at:(entry at:1) put:(entry at:2).
-    ].
-    self loadRequest.
-    super initialize
+    currentUserPrefs listOfPredefinedSyntaxColoringSchemes do:[:entry | 
+        resetListDictionary at:(entry at:1) put:(entry at:2)
+    ].
 !
 
 initializeEmphasisDictionary
@@ -10523,6 +10246,17 @@
 
 !AbstractSettingsApplication::SystemMessageSettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+
+    ObjectMemory infoPrinting:self vmInfo value.
+    ObjectMemory debugPrinting:self vmErrors value.
+    Object infoPrinting:self classInfos value.
+    DeviceWorkstation errorPrinting:self displayErrors value.
+    ObjectMemory nameForChanges:self changeFileName value.
+    Smalltalk logDoits:self logDoits value.
+    Class updateChanges:self updChanges value.
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -10533,8 +10267,7 @@
     self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/messageSettings.html'].
 !
 
-loadRequest
-
+readSettings
     self vmInfo value:ObjectMemory infoPrinting.
     self vmErrors value:ObjectMemory debugPrinting.
     self classInfos value:Object infoPrinting.
@@ -10542,19 +10275,7 @@
     self changeFileName value:ObjectMemory nameForChanges.
     self logDoits value:Smalltalk logDoits.
     self updChanges value:Class updatingChanges.
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    ObjectMemory infoPrinting:self vmInfo value.
-    ObjectMemory debugPrinting:self vmErrors value.
-    Object infoPrinting:self classInfos value.
-    DeviceWorkstation errorPrinting:self displayErrors value.
-    ObjectMemory nameForChanges:self changeFileName value.
-    Smalltalk logDoits:self logDoits value.
-    Class updateChanges:self updChanges value.
-    self modifiedChannel value:false.
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::SystemMessageSettingsAppl methodsFor:'aspects'!
@@ -10595,14 +10316,6 @@
     ^ logDoits.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 updChanges
 
     updChanges isNil ifTrue:[
@@ -10824,33 +10537,7 @@
 
 !AbstractSettingsApplication::ToolsSettingsAppl methodsFor:'actions'!
 
-evaluateModified
-
-    self modifiedChannel value:(self hasUnsavedChanges).
-!
-
-help
-
-    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/toolSettings.html'].
-!
-
-loadRequest
-
-    currentUserPrefs := UserPreferences current.
-    self showClockInLauncher value:currentUserPrefs showClockInLauncher.
-    self transcriptBufferSize value:Transcript current lineLimit.
-    self useNewChangesBrowser value:currentUserPrefs useNewChangesBrowser.
-    self useNewFileBrowser value:currentUserPrefs useNewFileBrowser.
-    self useNewInspector value:currentUserPrefs useNewInspector.
-    self useNewSystemBrowser value:currentUserPrefs useNewSystemBrowser.
-    self useNewVersionDiffBrowser value:currentUserPrefs useNewVersionDiffBrowser.
-    self useProcessMonitorV2 value:currentUserPrefs useProcessMonitorV2.
-    self useNewFileDialog value:currentUserPrefs useNewFileDialog.
-    self useNewSettingsApplication value:currentUserPrefs useNewSettingsApplication.
-    self modifiedChannel value:false.
-!
-
-saveSettings
+basicSaveSettings
 
     | showClock launcher reopenLauncher|
 
@@ -10897,19 +10584,37 @@
         ]
     ].
     currentUserPrefs := UserPreferences current.
-    self modifiedChannel value:false.
+!
+
+evaluateModified
+
+    self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/toolSettings.html'].
+!
+
+readSettings
+    currentUserPrefs := UserPreferences current.
+    self showClockInLauncher value:currentUserPrefs showClockInLauncher.
+    self transcriptBufferSize value:Transcript current lineLimit.
+    self useNewChangesBrowser value:currentUserPrefs useNewChangesBrowser.
+    self useNewFileBrowser value:currentUserPrefs useNewFileBrowser.
+    self useNewInspector value:currentUserPrefs useNewInspector.
+    self useNewSystemBrowser value:currentUserPrefs useNewSystemBrowser.
+    self useNewVersionDiffBrowser 
+        value:currentUserPrefs useNewVersionDiffBrowser.
+    self useProcessMonitorV2 value:currentUserPrefs useProcessMonitorV2.
+    self useNewFileDialog value:currentUserPrefs useNewFileDialog.
+    self useNewSettingsApplication 
+        value:currentUserPrefs useNewSettingsApplication.
+    self modifiedChannel value:false
 ! !
 
 !AbstractSettingsApplication::ToolsSettingsAppl methodsFor:'aspects'!
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 showClockInLauncher
 
     showClockInLauncher isNil ifTrue:[
@@ -11000,16 +10705,6 @@
     ^ useProcessMonitorV2.
 ! !
 
-!AbstractSettingsApplication::ToolsSettingsAppl methodsFor:'initialization & release'!
-
-initialize
-
-    resources := self class classResources.
-    currentUserPrefs := UserPreferences current.
-    self loadRequest.
-    super initialize
-! !
-
 !AbstractSettingsApplication::ToolsSettingsAppl methodsFor:'queries'!
 
 hasUnsavedChanges
@@ -11029,5 +10724,5 @@
 !AbstractSettingsApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.29 2003-02-18 13:40:06 stefan Exp $'
-! !
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.30 2003-02-20 12:42:57 cg Exp $'
+! !
--- a/FileBrowserV2SettingsAppl.st	Thu Feb 20 13:37:05 2003 +0100
+++ b/FileBrowserV2SettingsAppl.st	Thu Feb 20 13:43:41 2003 +0100
@@ -1,13 +1,13 @@
 "{ Package: 'stx:libtool' }"
 
 AbstractSettingsApplication subclass:#FileBrowserV2SettingsAppl
-	instanceVariableNames:'modifiedChannel viewFilesInDirectoryTree viewDescription
+	instanceVariableNames:'viewFilesInDirectoryTree viewDescription
 		sortDirectoriesBeforeFiles showDirectoryTree viewSize viewType
 		viewPermissions viewGroup viewDirsInContentsBrowser viewDetails
 		sortCaseless showHiddenFiles openMultipleApplicationsForType
 		viewOwner toolBarVisibleHolder viewDirectoryDescription
 		openAlwaysInTextEditor viewPreview viewTime
-		filenameEntryFieldVisibleHolder currentUserPrefs'
+		filenameEntryFieldVisibleHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Tools-File'
@@ -301,6 +301,21 @@
 
 !FileBrowserV2SettingsAppl methodsFor:'actions'!
 
+basicSaveSettings
+    |  aspectList req writeToCurrentFileBrowser|
+
+    aspectList := AbstractFileBrowser userPreferencesAspectList.
+    req := self requestor.
+    writeToCurrentFileBrowser := (req notNil and:[req isKindOf:AbstractFileBrowser]).
+    aspectList do:[ : aAspect | |value|
+        value := (self perform:aAspect) value.
+        (currentUserPrefs perform:((aAspect asString, ':') asSymbol) with:value).
+        writeToCurrentFileBrowser ifTrue:[
+            (req perform:(aAspect asString asSymbol)) value:value.
+        ].
+    ].
+!
+
 evaluateModified
 
     self modifiedChannel value:(self hasUnsavedChanges).
@@ -312,36 +327,20 @@
 "/    self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
 !
 
-loadRequest
-    
-    | req receiver aspectList|
+readSettings
+    |req receiver aspectList|
 
     req := self requestor.
-    receiver := (req notNil and:[req isKindOf:AbstractFileBrowser]) ifTrue:[req] ifFalse:[currentUserPrefs].
+    receiver := (req notNil and:[req isKindOf:AbstractFileBrowser]) ifTrue:[
+                req
+            ] ifFalse:[
+                currentUserPrefs
+            ].
     aspectList := AbstractFileBrowser userPreferencesAspectList.
-    aspectList do:[ : aAspect |
-        (self perform:aAspect) value:((receiver perform:aAspect) value).
+    aspectList do:[:aAspect | 
+        (self perform:aAspect) value:((receiver perform:aAspect) value)
     ].
-    self modifiedChannel value:false.
-!
-
-saveSettings
-
-    self hasUnsavedChanges ifTrue:[
-        |  aspectList req writeToCurrentFileBrowser|
-
-        aspectList := AbstractFileBrowser userPreferencesAspectList.
-        req := self requestor.
-        writeToCurrentFileBrowser := (req notNil and:[req isKindOf:AbstractFileBrowser]).
-        aspectList do:[ : aAspect | |value|
-            value := (self perform:aAspect) value.
-            (currentUserPrefs perform:((aAspect asString, ':') asSymbol) with:value).
-            writeToCurrentFileBrowser ifTrue:[
-                (req perform:(aAspect asString asSymbol)) value:value.
-            ].
-        ].
-        self modifiedChannel value:false.
-    ].
+    self modifiedChannel value:false
 ! !
 
 !FileBrowserV2SettingsAppl methodsFor:'aspects'!
@@ -355,14 +354,6 @@
     ^ filenameEntryFieldVisibleHolder.
 !
 
-modifiedChannel
-
-    modifiedChannel isNil ifTrue:[
-        modifiedChannel := false asValue.
-    ].
-    ^ modifiedChannel
-!
-
 openAlwaysInTextEditor
 
     openAlwaysInTextEditor isNil ifTrue:[
@@ -550,16 +541,8 @@
 
 !FileBrowserV2SettingsAppl methodsFor:'initialization & release'!
 
-initialize
-
-    resources := AbstractFileBrowser classResources.
-    currentUserPrefs := UserPreferences current.
-    super initialize
-!
-
-postBuildWith:aView
-
-    self loadRequest.
+postBuildWith:aView 
+"/    self readSettings.
     ^ super postBuildWith:aView
 ! !
 
@@ -579,5 +562,5 @@
 !FileBrowserV2SettingsAppl class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsAppl.st,v 1.5 2003-02-13 09:33:38 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsAppl.st,v 1.6 2003-02-20 12:43:09 cg Exp $'
 ! !
--- a/FileBrowserV2SettingsFrame.st	Thu Feb 20 13:37:05 2003 +0100
+++ b/FileBrowserV2SettingsFrame.st	Thu Feb 20 13:43:41 2003 +0100
@@ -37,12 +37,12 @@
               #(
                #(#MenuItem
                   #label: 'Load Settings from...'
-                  #itemValue: #loadSettings
+                  #itemValue: #loadSettingsFromFile
                   #translateLabel: true
                 )
                #(#MenuItem
                   #label: 'Save Settings to...'
-                  #itemValue: #saveSettings
+                  #itemValue: #saveSettingsIntoFile
                   #translateLabel: true
                 )
                #(#MenuItem
@@ -222,7 +222,7 @@
 
 !FileBrowserV2SettingsFrame methodsFor:'menu actions'!
 
-loadSettings
+loadSettingsFromFile
 
     "restore settings from a settings-file."
 
@@ -251,7 +251,7 @@
     ].
 !
 
-saveSettings
+saveSettingsIntoFile
 
     |fileName resources|
 
@@ -271,262 +271,10 @@
         "not canceled"
         FileDialog saveSettingsIn:fileName.
     ]
-!
-
-saveSettingsIn:fileName
-    "save settings to a settings-file."
-
-    "a temporary kludge - we need a central systemSettings object for this,
-     which can be saved/restored with a single store/read.
-     Will move entries over to UserPreferences over time;
-     new items should always go there."
-
-    |resources s screen currentUserPrefs|
-
-    resources := self class owningClass classResources.
-
-    s := fileName asFilename writeStream.
-    s isNil ifTrue:[
-        self warn:(resources string:'Cannot write the %1 file !!' with:fileName).
-        ^ self
-    ].
-
-    currentUserPrefs := UserPreferences current.
-    screen := Screen current.
-
-    s nextPutLine:'"/ ST/X saved settings';
-      nextPutLine:'"/ DO NOT MODIFY MANUALLY';
-      nextPutLine:'"/ (modifications would be lost with next save-settings)';
-      nextPutLine:'"/';
-      nextPutLine:'"/ this file was automatically generated by the';
-      nextPutLine:'"/ ''save settings'' function of the Launcher';
-      nextPutLine:'"/'.
-    s cr.
-
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ saved by ' , OperatingSystem getLoginName , '@' , OperatingSystem getHostName , ' at ' , AbsoluteTime now printString.
-    s nextPutLine:'"/'.
-    s cr.
-
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Display settings:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ only restore the display settings, if on the same Display ...'.
-    s nextPutLine:'Display notNil ifTrue:['.
-    s nextPutLine:' Display displayName = ' , (screen displayName storeString) , ' ifTrue:['.
-      screen fixColors notNil ifTrue:[
-        s nextPutLine:'  Image flushDeviceImages.'.
-        s nextPutLine:'  Color colorAllocationFailSignal catch:['.
-        s nextPutLine:'    Color getColorsRed:6 green:6 blue:4 on:Display'.
-        s nextPutLine:'  ].'.
-      ] ifFalse:[
-        s nextPutLine:'  Display releaseFixColors.'.
-      ].
-      s nextPutLine:'  Display hasColors: ' , (screen hasColors storeString) , '.'.
-      s nextPutLine:'  Display widthInMillimeter: ' , (screen widthInMillimeter storeString) , '.'.
-      s nextPutLine:'  Display heightInMillimeter: ' , (screen heightInMillimeter storeString) , '.'.
-      s nextPutLine:'  Display supportsDeepIcons: ' , (screen supportsDeepIcons storeString) , '.'.
-      s nextPutLine:'  Image ditherAlgorithm: ' , (Image ditherAlgorithm storeString) , '.'.
-      s nextPutLine:'  View defaultStyle:' , View defaultStyle storeString , '.'.
-    s nextPutLine:' ].'.
-    s nextPutLine:'].'.
-    s cr.
-
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Compiler settings:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'Compiler warnSTXSpecials: ' , (Compiler warnSTXSpecials storeString) , '.';
-      nextPutLine:'Compiler warnUnderscoreInIdentifier: ' , (Compiler warnUnderscoreInIdentifier storeString) , '.';
-      nextPutLine:'Compiler warnOldStyleAssignment: ' , (Compiler warnOldStyleAssignment storeString) , '.';
-      nextPutLine:'Compiler warnCommonMistakes: ' , (Compiler warnCommonMistakes storeString) , '.';
-      nextPutLine:'Compiler warnPossibleIncompatibilities: ' , (Compiler warnPossibleIncompatibilities storeString) , '.';
-      nextPutLine:'Compiler allowUnderscoreInIdentifier: ' , (Compiler allowUnderscoreInIdentifier storeString) , '.';
-      nextPutLine:'Compiler allowSqueakExtensions: ' , (Compiler allowSqueakExtensions storeString) , '.';
-      nextPutLine:'Compiler allowDolphinExtensions: ' , (Compiler allowDolphinExtensions storeString) , '.';
-      nextPutLine:'Compiler arraysAreImmutable: ' , (Compiler arraysAreImmutable storeString) , '.';
-      nextPutLine:'Compiler lineNumberInfo: ' , (Compiler lineNumberInfo storeString) , '.';
-
-      nextPutLine:'Compiler foldConstants: ' , (Compiler foldConstants storeString) , '.';
-      nextPutLine:'Compiler stcCompilation: ' , (Compiler stcCompilation storeString) , '.';
-      nextPutLine:'OperatingSystem getOSType = ' , (OperatingSystem getOSType storeString) , ' ifTrue:[';
-      nextPutLine:'  Compiler stcCompilationIncludes: ' , (Compiler stcCompilationIncludes storeString) , '.';
-      nextPutLine:'  Compiler stcCompilationDefines: ' , (Compiler stcCompilationDefines storeString) , '.';
-      nextPutLine:'  Compiler stcCompilationOptions: ' , (Compiler stcCompilationOptions storeString) , '.';
-      nextPutLine:'  ' , (Compiler stcModulePath storeString) , ' asFilename exists ifTrue:[';
-      nextPutLine:'    Compiler stcModulePath: ' , (Compiler stcModulePath storeString) , '.';
-      nextPutLine:'  ].';
-      nextPutLine:'  Compiler stcPath: ' , (Compiler stcPath storeString) , '.';
-      nextPutLine:'  Compiler ccCompilationOptions: ' , (Compiler ccCompilationOptions storeString) , '.';
-      nextPutLine:'  Compiler ccPath: ' , (Compiler ccPath storeString) , '.';
-      nextPutLine:'  ObjectFileLoader linkArgs: ' , (ObjectFileLoader linkArgs storeString) , '.';
-      nextPutLine:'  ObjectFileLoader linkCommand: ' , (ObjectFileLoader linkCommand storeString) , '.';
-      nextPutLine:'  ObjectFileLoader libPath: ' , (ObjectFileLoader libPath storeString) , '.';
-      nextPutLine:'  ObjectFileLoader searchedLibraries: ' , (ObjectFileLoader searchedLibraries storeString) , '.';
-      nextPutLine:'].';
-
-      nextPutLine:'ObjectMemory justInTimeCompilation: ' , (ObjectMemory justInTimeCompilation storeString) , '.';
-      nextPutLine:'ObjectMemory fullSingleStepSupport: ' , (ObjectMemory fullSingleStepSupport storeString) , '.'.
-
-    HistoryManager notNil ifTrue:[
-        HistoryManager isActive ifTrue:[
-            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager activate].'.
-            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager fullHistoryUpdate:' , HistoryManager fullHistoryUpdate storeString , '].'.
-        ] ifFalse:[
-            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager deactivate].'.
-        ].
-    ].
-
-    ObjectFileLoader notNil ifTrue:[
-        s nextPutLine:'ObjectFileLoader searchedLibraries: ' , (ObjectFileLoader searchedLibraries storeString) , '.'.
-        s nextPutLine:'ObjectFileLoader libPath: ' , (ObjectFileLoader libPath storeString) , '.'.
-    ].
-
-    s nextPutLine:'Class catchMethodRedefinitions: ' , (Class catchMethodRedefinitions storeString) , '.'.
-    s nextPutLine:'ClassCategoryReader sourceMode: ' , (ClassCategoryReader sourceMode storeString) , '.'.
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Info & Debug Messages:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'ObjectMemory infoPrinting: ' , (ObjectMemory infoPrinting storeString) , '.';
-      nextPutLine:'ObjectMemory debugPrinting: ' , (ObjectMemory debugPrinting storeString) , '.';
-      nextPutLine:'Object infoPrinting: ' , (Object infoPrinting storeString) , '.';
-      nextPutLine:'DeviceWorkstation errorPrinting: ' , (DeviceWorkstation errorPrinting storeString) , '.'.
-
-    FlyByHelp isActive ifTrue:[
-        s nextPutLine:'FlyByHelp start.'
-    ].
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Edit settings:'.
-    s nextPutLine:'"/'.
-    "/ s nextPutLine:'EditTextView st80Mode: ' , (EditTextView st80Mode storeString) , '.'.
-    s nextPutLine:'TextView st80SelectMode: ' , (TextView st80SelectMode storeString) , '.'.
-    s nextPutLine:'UserPreferences current syntaxColoring: ' , (currentUserPrefs syntaxColoring storeString) , '.'.
-    (ListView userDefaultTabPositions = ListView tab4Positions) ifTrue:[
-        s nextPutLine:'ListView userDefaultTabPositions:(ListView tab4Positions).'.
-    ] ifFalse:[
-        s nextPutLine:'ListView userDefaultTabPositions:(ListView tab8Positions).'.
-    ].
-
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ User preference values:'.
-    s nextPutLine:'"/'.
-    currentUserPrefs keysAndValuesDo:[:k :v |
-        (UserPreferences includesSelector:(k , ':') asSymbol) ifTrue:[
-            s nextPutLine:'UserPreferences current ' , k , ':' , v storeString , '.'.
-        ] ifFalse:[
-            s nextPutLine:'UserPreferences current at:' , k storeString , ' put:' , v storeString , '.'.
-        ]
-    ].
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Misc settings:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'Class keepMethodHistory: ' , (Class methodHistory notNil storeString) , '.';
-      nextPutLine:'Smalltalk logDoits: ' , (Smalltalk logDoits storeString) , '.';
-      nextPutLine:'Autoload compileLazy: ' , (Autoload compileLazy storeString) , '.';
-      nextPutLine:'Smalltalk loadBinaries: ' , (Smalltalk loadBinaries storeString) , '.';
-      nextPutLine:'StandardSystemView includeHostNameInLabel: ' , (StandardSystemView includeHostNameInLabel storeString) , '.';
-
-      "/ claus - I dont think its a good idea to save those ...
-      nextPutLine:'"/ Class updateChanges: ' , (Class updatingChanges storeString) , '.';
-      nextPutLine:'"/ ObjectMemory nameForChanges: ' , (ObjectMemory nameForChanges storeString) , '.';
-
-      nextPutLine:'StandardSystemView returnFocusWhenClosingModalBoxes: ' , (StandardSystemView returnFocusWhenClosingModalBoxes storeString) , '.';
-      nextPutLine:'StandardSystemView takeFocusWhenMapped: ' , (StandardSystemView takeFocusWhenMapped storeString) , '.';
-      nextPutLine:'Display notNil ifTrue:[';
-      nextPutLine:' Display activateOnClick: ' , ((screen activateOnClick:nil) storeString) , '.';
-      nextPutLine:'].';
-      nextPutLine:'MenuView showAcceleratorKeys: ' , (MenuView showAcceleratorKeys storeString) , '.';
-      nextPutLine:'Class tryLocalSourceFirst: ' , (Class tryLocalSourceFirst storeString) , '.'.
-    (Exception emergencyHandler == AbstractLauncherApplication notifyingEmergencyHandler) ifTrue:[
-        s nextPutLine:'Exception emergencyHandler:(AbstractLauncherApplication notifyingEmergencyHandler).'.
-    ].
-    Processor isTimeSlicing ifTrue:[
-        s nextPutLine:'Processor startTimeSlicing.'.
-        s nextPutLine:('Processor supportDynamicPriorities:' , (Processor supportDynamicPriorities ? false) storeString , '.').
-    ] ifFalse:[
-        s nextPutLine:'Processor stopTimeSlicing.'.
-    ].
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Printer settings:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'Printer := ' , (Printer name) , '.';
-      nextPutLine:'Printer printCommand: ' , (Printer printCommand storeString) , '.'.
-
-    Printer supportsPageSizes ifTrue:[
-        s nextPutLine:'Printer pageFormat: ' , (Printer pageFormat storeString) , '.'.
-        s nextPutLine:'Printer landscape: ' , (Printer landscape storeString) , '.'.
-    ].
-    Printer supportsMargins ifTrue:[
-        s nextPutLine:'Printer topMargin: ' , (Printer topMargin storeString) , '.'.
-        s nextPutLine:'Printer leftMargin: ' , (Printer leftMargin storeString) , '.'.
-        s nextPutLine:'Printer rightMargin: ' , (Printer rightMargin storeString) , '.'.
-        s nextPutLine:'Printer bottomMargin: ' , (Printer bottomMargin storeString) , '.'.
-    ].
-    Printer supportsPostscript ifTrue:[
-        s nextPutLine:'Printer supportsColor: ' , (Printer supportsColor storeString) , '.'.
-    ].
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Font settings:'.
-    s nextPutLine:'"/ (only restored, if image is restarted on the same display)'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'Display notNil ifTrue:['.
-    s nextPutLine:' Display displayName = ' , (screen displayName storeString) , ' ifTrue:['.
-    s nextPutLine:'  View defaultFont: ' , (View defaultFont storeString) , '.'.
-    s nextPutLine:'  Label defaultFont: ' , (Label defaultFont storeString) , '.'.
-    s nextPutLine:'  Button defaultFont: ' , (Button defaultFont storeString) , '.'.
-    s nextPutLine:'  Toggle defaultFont: ' , (Toggle defaultFont storeString) , '.'.
-    s nextPutLine:'  SelectionInListView defaultFont: ' , (SelectionInListView defaultFont storeString) , '.'.
-    s nextPutLine:'  MenuView defaultFont: ' , (MenuView defaultFont storeString) , '.'.
-    s nextPutLine:'  PullDownMenu defaultFont: ' , (PullDownMenu defaultFont storeString) , '.'.
-    s nextPutLine:'  TextView defaultFont: ' , (TextView defaultFont storeString) , '.'.
-    s nextPutLine:'  EditTextView defaultFont: ' , (EditTextView defaultFont storeString) , '.'.
-    s nextPutLine:'  CodeView defaultFont: ' , (CodeView defaultFont storeString) , '.'.
-    s nextPutLine:' ].'.
-    s nextPutLine:'].'.
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ Language setting:'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'Smalltalk language: ' , (Smalltalk language storeString) , '.'.
-    s nextPutLine:'Smalltalk languageTerritory: ' , (Smalltalk languageTerritory storeString) , '.'.
-
-    s cr.
-    s nextPutLine:'"/'.
-    s nextPutLine:'"/ SourceCodeManager settings:'.
-    s nextPutLine:'"/ (only restored, if image is restarted on the same host)'.
-    s nextPutLine:'"/'.
-    s nextPutLine:'OperatingSystem getHostName = ' , (OperatingSystem getHostName storeString) , ' ifTrue:['.
-    s nextPutLine:'  Class tryLocalSourceFirst:' , Class tryLocalSourceFirst storeString , '.'.
-    (Smalltalk at:#SourceCodeManager) == CVSSourceCodeManager ifTrue:[
-    s nextPutLine:'  Smalltalk at:#SourceCodeManager put: CVSSourceCodeManager.'.
-    s nextPutLine:'  AbstractSourceCodeManager cacheDirectoryName:' , AbstractSourceCodeManager cacheDirectoryName storeString , '.'.
-    s nextPutLine:'  CVSSourceCodeManager cvsBinDirectory:' , CVSSourceCodeManager cvsBinDirectory storeString , '.'.
-    s nextPutLine:'  CVSSourceCodeManager repositoryNamesPerModule:' , CVSSourceCodeManager repositoryNamesPerModule storeString , '.'.
-    s nextPutLine:'  CVSSourceCodeManager initializeForRepository:' , CVSSourceCodeManager repositoryName storeString , '.'.
-    ].
-    s nextPutLine:'].'.
-
-    s close.
-
-    "
-     Transcript topView application saveSettings
-    "
-
-    "Modified: / 6.1.1999 / 14:24:16 / cg"
 ! !
 
 !FileBrowserV2SettingsFrame class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Attic/FileBrowserV2SettingsFrame.st,v 1.4 2003-02-13 09:05:03 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Attic/FileBrowserV2SettingsFrame.st,v 1.5 2003-02-20 12:43:15 cg Exp $'
 ! !
--- a/SettingsDialog.st	Thu Feb 20 13:37:05 2003 +0100
+++ b/SettingsDialog.st	Thu Feb 20 13:43:41 2003 +0100
@@ -216,14 +216,14 @@
                                 #label: 'Save as...'
                                 #name: 'Button1'
                                 #translateLabel: true
-                                #model: #saveSettings
+                                #model: #saveSettingsIntoFile
                                 #extent: #(#Point 128 22)
                               )
                              #(#ActionButtonSpec
                                 #label: 'Load from...'
                                 #name: 'Button2'
                                 #translateLabel: true
-                                #model: #loadSettings
+                                #model: #loadSettingsFromFile
                                 #extent: #(#Point 128 22)
                               )
                              )
@@ -356,12 +356,12 @@
               #(
                #(#MenuItem
                   #label: 'Load from...'
-                  #itemValue: #loadSettings
+                  #itemValue: #loadSettingsFromFile
                   #translateLabel: true
                 )
                #(#MenuItem
                   #label: 'Save as...'
-                  #itemValue: #saveSettings
+                  #itemValue: #saveSettingsIntoFile
                   #translateLabel: true
                 )
                #(#MenuItem
@@ -414,12 +414,13 @@
 !
 
 doReload
-
-    | item |
+    |item|
 
     item := self selectedItem value.
-    (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[ ^ self].
-    item application loadRequest.
+    (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[
+        ^ self
+    ].
+    item application readSettings
 !
 
 doSave
@@ -428,7 +429,7 @@
     item := self selectedItem value.
     (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[ ^ self].
     self withWaitCursorDo:[
-        item application saveSettings.
+        item application saveSettingsIfUnsavedChangesArePresent.
     ].
 !
 
@@ -442,11 +443,10 @@
 !
 
 sendLoadRequestToAll
-
-    self applicationList do:[ : applItem |
+    self applicationList do:[:applItem | 
         (applItem isCategory not and:[applItem application notNil]) ifTrue:[
-            ^ applItem application loadRequest 
-        ].
+            ^ applItem application readSettings
+        ]
     ].
     ^ true
 !
@@ -808,7 +808,7 @@
 
 !SettingsDialog methodsFor:'menu actions'!
 
-loadSettings
+loadSettingsFromFile
 
     "restore settings from a settings-file."
 
@@ -837,7 +837,7 @@
     ].
 !
 
-saveSettings
+saveSettingsIntoFile
     SettingsDialog saveSettingsIntoFile.
 ! !
 
@@ -925,7 +925,7 @@
 !SettingsDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/SettingsDialog.st,v 1.15 2003-02-13 11:19:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SettingsDialog.st,v 1.16 2003-02-20 12:43:41 cg Exp $'
 ! !
 
 SettingsDialog initialize!