Issue #80: remove initialization of `Language` and `LanguageTerritory` globals. jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 21 Nov 2017 21:31:18 +0000
branchjv
changeset 23093 9c9fa5a584bb
parent 23092 5d343af8922a
child 23094 664a6370e264
Issue #80: remove initialization of `Language` and `LanguageTerritory` globals. Application should alway use `UserPreferences current language` resp. `UserPreferences current languageTerritory` instead. See https://swing.fit.cvut.cz/projects/stx-jv/ticket/80
Smalltalk.st
UserPreferences.st
--- a/Smalltalk.st	Mon Nov 20 14:23:33 2017 +0100
+++ b/Smalltalk.st	Tue Nov 21 21:31:18 2017 +0000
@@ -329,18 +329,12 @@
         HeadlessOperation := false.
     ].
 
-    Language := OperatingSystem getLanguage.
-    LanguageTerritory := OperatingSystem getLanguageTerritory.
-
-
-
-
     "
      Smalltalk initGlobalsFromEnvironment
     "
 
     "Modified: / 14-02-2012 / 15:25:08 / cg"
-    "Modified: / 21-11-2017 / 12:15:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-11-2017 / 21:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 initInterrupts
@@ -5437,10 +5431,10 @@
 !
 
 setLanguage:aLanguageSymbol territory:aTerritorySymbol
-    "set the language & territory - no change notification"
-
-    Language := aLanguageSymbol asSymbol.
-    LanguageTerritory := aTerritorySymbol asSymbol.
+    <resource: #obsolete>
+    self obsoleteFeatureWarning.
+
+    "Modified (format): / 28-11-2017 / 00:03:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Smalltalk class methodsFor:'system management'!
--- a/UserPreferences.st	Mon Nov 20 14:23:33 2017 +0100
+++ b/UserPreferences.st	Tue Nov 21 21:31:18 2017 +0000
@@ -148,7 +148,7 @@
     ].
     "/ The #value message allows CurrentPrefences to be a block (or anything
     "/ that responds to #value) that returns different preferences in different
-    "/ contexts. For example, each screen might have different user with 
+    "/ contexts. For example, each screen might have different user with
     "/ different settings.
     ^ CurrentPreferences value.
 
@@ -489,7 +489,7 @@
 defaultUserSettingsFile
     "Return default user settings file."
 
-    ^self defaultUserSettingsFileLocations first.       
+    ^self defaultUserSettingsFileLocations first.
     "
     UserPreferences defaultUserSettingsFile
     "
@@ -503,13 +503,13 @@
     "Return list of files which are probed when looking for
      saved user settings.
 
-     The location changed over the time. To be backward 
-     compatible, return all of them. 
+     The location changed over the time. To be backward
+     compatible, return all of them.
     "
     ^ {
         (Filename usersPrivateSmalltalkDirectory / 'settings.stx') .         "/ per-user settings file (new default?)
         (Filename usersPrivateSmalltalkDirectory / 'settings.rc') .          "/ for backward compatibility with jv-branch
-    } , (   
+    } , (
         Smalltalk realSystemPath collect: [ :e|e asFilename / 'settings.stx']"/ per-user settings file (new default?)
     ) , (
         Smalltalk realSystemPath collect: [ :e|e asFilename / 'settings.rc'] "/ for backward compatibility with jv-branch
@@ -569,13 +569,13 @@
     "
 
     self defaultUserSettingsFileLocations do:[:file |
-        file exists ifTrue:[ 
-            file isDirectory ifTrue:[ 
+        file exists ifTrue:[
+            file isDirectory ifTrue:[
                 Logger warning: 'user settings file is actually a directory: %1' with: file pathName.
             ] ifFalse:[
-                file isReadable ifFalse:[ 
+                file isReadable ifFalse:[
                     Logger warning: 'user settings file is not readable, skipping: %1' with: file pathName.
-                ] ifTrue:[ 
+                ] ifTrue:[
                     ^ self loadSettingsFrom: file
                 ].
             ]
@@ -597,41 +597,41 @@
     | prefsFile prefs currentProcess currentPrefs |
 
     prefsFile := aStringOrFilename.
-    (prefsFile isReadable not or:[prefsFile isRegularFile not]) ifTrue:[ 
+    (prefsFile isReadable not or:[prefsFile isRegularFile not]) ifTrue:[
         self error: 'File not readable or not a regular file'
     ].
     "/ Currently format of user preferences is actually an executable
     "/ smalltalk code that is evaluated. That code fills in values in
     "/ `UserPreferences current`. This way, it's not possible to load
     "/ previously saved preferences to some other objects.
-    "/ 
+    "/
     "/ So, in order to load preferences we need to temporarily
     "/ swap `UserPreferences current` to pristine instance, load
     "/ preferences and then restore old preferences.
-    "/ 
+    "/
     "/ Things are more complicated since someone may access preferences
     "/ while loading. Therefore, answer old preferences except for
     "/ current process which is loading new ones.
-    "/ 
+    "/
     "/ What a hack!!
     currentPrefs := CurrentPreferences.
     currentProcess := Processor activeProcess.
     [
         prefs := self new.
-        CurrentPreferences := [ 
-            Processor activeProcess == currentProcess 
+        CurrentPreferences := [
+            Processor activeProcess == currentProcess
                 ifTrue:[ prefs ]
                 ifFalse:[ currentPrefs value ]
         ].
-        prefsFile fileIn. 
-        prefs at:#settingsFilename put: prefsFile pathName.               
-    ] ensure:[ 
+        prefsFile fileIn.
+        prefs at:#settingsFilename put: prefsFile pathName.
+    ] ensure:[
         CurrentPreferences := currentPrefs.
     ].
     ^ prefs
 
     "
-    UserPreferences loadSettingsFrom: self defaultUserSettingsFile. 
+    UserPreferences loadSettingsFrom: self defaultUserSettingsFile.
 
     | file |
 
@@ -639,7 +639,7 @@
     [
         file writingFileDo:[:s| s nextPutLine: 'UserPreferences current at: #xxx put: #yyy' ].
         UserPreferences loadSettingsFrom: file
-    ] ensure:[ 
+    ] ensure:[
         file remove.
     ].
     "
@@ -895,10 +895,6 @@
             eachManager savePreferencesOn:s
         ].
 
-        userPrefs useSystemLanguage ifFalse:[
-            s nextPutAll:('Smalltalk language:',UserPreferences current language storeString).
-            s nextPutLine:(' territory:',UserPreferences current languageTerritory storeString,'.').
-        ].
         s syncData.
         userPrefs beUnmodified.
     ].
@@ -984,13 +980,13 @@
     "this is not needed for settings applications, which notice any modifications
      themself. Howvever, if someone else modifies the settings (programmatically),
      the change should be remembered, so that the user can be warned at session end"
-     
+
     modified := true
 !
 
 beUnmodified
     "done when saved"
-    
+
     modified := false
 !
 
@@ -2758,7 +2754,7 @@
      However, we found that the danger of pressing cancel by accident
      was too high, so we changed the default.
      If you want to go back, return #acceptCancelCompare here"
-     
+
     ^ self at:#acceptCancelBarOrder ifAbsent:#acceptCompareCancel
 
     "
@@ -2773,7 +2769,7 @@
      However, we found that the danger of pressing cancel by accident
      was too high, so we changed the default.
      If you want to go back, return #acceptCancelCompare here"
-     
+
     self at:#acceptCancelBarOrder put:aSymbol
 
     "
@@ -2933,7 +2929,7 @@
     "this is a little confusing: the codeview2 has its own accept/cancel bar
      which can be turned on separately.
      The codeview2 will suppress the regular accept/cancel bar, if it uses its own."
-     
+
     ^ self at:#showAcceptCancelBarInBrowser ifAbsent:true
 
     "
@@ -4196,7 +4192,7 @@
 historyManagerAllowEditOfHistory:aBoolean
     "useful if you have 'beginner students', to prevent them from changing the history"
 
-    self 
+    self
         at: #'history-manager.allow-edit-of-history'
         put:aBoolean
 !
@@ -4204,17 +4200,17 @@
 historyManagerEnabled
     "automatically add history line comments to accepted methods"
 
-    ^self 
+    ^self
         at: #'history-manager.enabled'
-        ifAbsent: true 
+        ifAbsent: true
 !
 
 historyManagerEnabled:aBoolean
     "automatically add history line comments to accepted methods"
 
-    ^self 
+    ^self
         at: #'history-manager.enabled'
-        put: aBoolean 
+        put: aBoolean
 
 
     "
@@ -5015,10 +5011,10 @@
 
     "
      UserPreferences current osFileExplorerCommand
-     
+
      osx:
      UserPreferences current osFileExplorerCommand:'open %1'
-     
+
      linux:
      UserPreferences current osFileExplorerCommand:'nautilus %1'
      UserPreferences current osFileExplorerCommand:'dolphin %1'
@@ -5030,9 +5026,9 @@
 changeFileName
     "were to keep changes"
 
-    ^ self 
-        at: #'changeFileName' 
-        ifAbsent: [nil] 
+    ^ self
+        at: #'changeFileName'
+        ifAbsent: [nil]
 !
 
 changeFileName:aFilename
@@ -5045,7 +5041,7 @@
 
 usersModuleName
     "this will be taken as the user's module in the workspace and as a default for new projects"
-    
+
     ^ self at:#usersModuleName ifAbsent:[OperatingSystem getLoginName ]
 !
 
@@ -5059,16 +5055,16 @@
      The idea is to keep that stuff together, so we can move it as a bunch.
      These used to be in the bin-folder of st/x, but that would not work with readonly/shared
      st/x installations."
-     
+
     ^ self at:#workspaceDirectory ifAbsent:[self class defaultWorkspaceDirectory]
 !
 
 workspaceDirectory:aDirectoryOrNilForDefault
     |d|
-    
+
     (d := aDirectoryOrNilForDefault) notNil ifTrue:[
         d := d asFilename
-    ].    
+    ].
     self at:#workspaceDirectory put:d
 ! !
 
@@ -5081,9 +5077,9 @@
     "/ For now, forward to smalltalk, until all references to "Smalltalk-language"
     "/ are replaced with "UserPreferences current language"
 
-    self useSystemLanguage ifTrue:[ 
+    self useSystemLanguage ifTrue:[
         ^ OperatingSystem getLanguage
-    ] ifFalse:[ 
+    ] ifFalse:[
         ^ self at:#language ifAbsent:[OperatingSystem getLanguage].
     ].
 
@@ -5107,10 +5103,6 @@
     changed := self language ~= aLanguageSymbol.
     self at:#language put:aLanguageSymbol.
     changed ifTrue:[
-        "/ Sigh, we must update Language and LanguageTerritory
-        "/ globals as resource files still reference them directly.
-        Language := self language.
-        LanguageTerritory := self languageTerritory.
         Smalltalk changed: #Language; changed: #LanguageTerritory.
     ].
 
@@ -5121,7 +5113,7 @@
     "
 
     "Created: / 20-09-2006 / 23:55:01 / cg"
-    "Modified (format): / 21-11-2017 / 12:27:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-11-2017 / 21:29:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 languageTerritory
@@ -5131,11 +5123,11 @@
     "/ for now, forward to smalltalk, while all references to "Smalltalk-language"
     "/ are replaced with "UserPreferences current language"
 
-    self useSystemLanguage ifTrue:[ 
+    self useSystemLanguage ifTrue:[
         ^ OperatingSystem getLanguageTerritory
-    ] ifFalse:[ 
+    ] ifFalse:[
         ^ self at:#languageTerritory ifAbsent:[self language].
-    ]. 
+    ].
 
 
     "
@@ -5158,19 +5150,16 @@
     changed := self language ~= aLanguageSymbol.
     self at:#languageTerritory put:aLanguageSymbol.
     changed ifTrue:[
-        "/ Sigh, we must update LanguageTerritory
-        "/ global as resource files still reference them directly.
-        LanguageTerritory := self languageTerritory.             
         Smalltalk changed: #LanguageTerritory
     ].
-    
+
     "
      UserPreferences current languageTerritory
      UserPreferences current languageTerritory:#en
     "
 
     "Created: / 20-09-2006 / 23:55:01 / cg"
-    "Modified: / 21-11-2017 / 12:27:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-11-2017 / 21:29:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 unitForFileSize
@@ -5210,13 +5199,9 @@
 
     changed := self useSystemLanguage ~= aBoolean.
     self at:#useSystemLanguage put:aBoolean.
-    changed ifTrue:[ 
-        "/ Sigh, we must update Language and LanguageTerritory
-        "/ globals as resource files still reference them directly.
-        Language := self language.
-        LanguageTerritory := self languageTerritory.
+    changed ifTrue:[
         Smalltalk changed: #Language; changed: #LanguageTerritory.
-    ].     
+    ].
 
 
 
@@ -5226,7 +5211,7 @@
      UserPreferences current useSystemLanguage:false
     "
 
-    "Modified (format): / 21-11-2017 / 12:27:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-11-2017 / 21:29:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !UserPreferences methodsFor:'accessing-prefs-startup'!
@@ -5407,7 +5392,7 @@
 debuggerLogFile
     "if non nil, any entered debugger writes a backrace to that logfile.
      This is useful to record all session-problems"
-     
+
     ^ self at:#debuggerLogFile ifAbsent:nil
 
     "