fixes to allow settings dialog to be opened from browser
authorClaus Gittinger <cg@exept.de>
Tue, 03 Jun 2003 12:37:41 +0200
changeset 4939 101cc4d46184
parent 4938 c6d812095119
child 4940 4964068c4718
fixes to allow settings dialog to be opened from browser
FileBrowserV2SettingsAppl.st
FileBrowserV2SettingsDialog.st
--- a/FileBrowserV2SettingsAppl.st	Tue Jun 03 12:37:02 2003 +0200
+++ b/FileBrowserV2SettingsAppl.st	Tue Jun 03 12:37:41 2003 +0200
@@ -135,7 +135,7 @@
                          #(#SpecCollection
                             #collection: #(
                              #(#CheckBoxSpec
-                                #label: 'Ignore Case in Sort'
+                                #label: 'Ignore Case'
                                 #name: 'CheckBox6'
                                 #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
                                 #model: #sortCaseless
@@ -162,7 +162,7 @@
                          #(#SpecCollection
                             #collection: #(
                              #(#CheckBoxSpec
-                                #label: 'Open Always in Text Editor'
+                                #label: 'Text Editor for all Types'
                                 #name: 'CheckBox8'
                                 #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
                                 #model: #openAlwaysInTextEditor
@@ -302,16 +302,16 @@
 !FileBrowserV2SettingsAppl methodsFor:'actions'!
 
 basicSaveSettings
-    |  aspectList req writeToCurrentFileBrowser|
+    |aspectList req writeToCurrentFileBrowser|
 
     aspectList := AbstractFileBrowser userPreferencesAspectList.
     req := self requestor.
     writeToCurrentFileBrowser := (req notNil and:[req isKindOf:AbstractFileBrowser]).
-    aspectList do:[ : aAspect | |value|
+    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.
+            (req perform:aAspect) value:value.
         ].
     ].
 !
@@ -337,8 +337,9 @@
                 currentUserPrefs
             ].
     aspectList := AbstractFileBrowser userPreferencesAspectList.
-    aspectList do:[:aAspect | 
-        (self perform:aAspect) value:((receiver perform:aAspect) value)
+    aspectList do:[:aAspect | |value|
+        value := (receiver perform:aAspect) value.
+        (self perform:aAspect) value:value
     ].
     self modifiedChannel value:false
 ! !
@@ -529,11 +530,20 @@
 
 hasUnsavedChanges
 
-    |aspectList|
+    |aspectList req receiver|
+
+    req := self requestor.
+    receiver := (req notNil and:[req isKindOf:AbstractFileBrowser]) ifTrue:[
+                req
+            ] ifFalse:[
+                currentUserPrefs
+            ].
 
     aspectList := AbstractFileBrowser userPreferencesAspectList.
     aspectList do:[ : aAspect |
-        (self perform:aAspect) value ~= (currentUserPrefs perform:aAspect) ifTrue:[ ^ true]
+        (self perform:aAspect) value ~= (receiver perform:aAspect) value ifTrue:[ 
+            ^ true
+        ]
     ].
     ^ false
 ! !
@@ -541,5 +551,5 @@
 !FileBrowserV2SettingsAppl class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsAppl.st,v 1.7 2003-02-27 17:14:25 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsAppl.st,v 1.8 2003-06-03 10:37:41 cg Exp $'
 ! !
--- a/FileBrowserV2SettingsDialog.st	Tue Jun 03 12:37:02 2003 +0200
+++ b/FileBrowserV2SettingsDialog.st	Tue Jun 03 12:37:41 2003 +0200
@@ -18,8 +18,8 @@
      the MenuEditor may not be able to read the specification."
 
     "
-     MenuEditor new openOnClass:FileBrowserV2SettingsFrame andSelector:#mainMenu
-     (Menu new fromLiteralArrayEncoding:(FileBrowserV2SettingsFrame mainMenu)) startUp
+     MenuEditor new openOnClass:FileBrowserV2SettingsDialog andSelector:#mainMenu
+     (Menu new fromLiteralArrayEncoding:(FileBrowserV2SettingsDialog mainMenu)) startUp
     "
 
     <resource: #menu>
@@ -44,6 +44,9 @@
                   #translateLabel: true
                 )
                #(#MenuItem
+                  #label: '-'
+                )
+               #(#MenuItem
                   #label: 'Exit'
                   #itemValue: #closeRequest
                   #translateLabel: true
@@ -67,9 +70,9 @@
      the UIPainter may not be able to read the specification."
 
     "
-     UIPainter new openOnClass:FileBrowserV2SettingsFrame andSelector:#windowSpec
-     FileBrowserV2SettingsFrame new openInterface:#windowSpec
-     FileBrowserV2SettingsFrame open
+     UIPainter new openOnClass:FileBrowserV2SettingsDialog andSelector:#windowSpec
+     FileBrowserV2SettingsDialog new openInterface:#windowSpec
+     FileBrowserV2SettingsDialog open
     "
 
     <resource: #canvas>
@@ -83,7 +86,7 @@
           #name: 'Settings Dialog'
           #min: #(#Point 10 10)
           #max: #(#Point 1024 768)
-          #bounds: #(#Rectangle 12 22 365 596)
+          #bounds: #(#Rectangle 16 46 369 620)
           #menu: #mainMenu
         )
         #component: 
@@ -122,7 +125,15 @@
                           #translateLabel: true
                           #model: #doSave
                           #enableChannel: #enableButtons
-                          #extent: #(#Point 84 22)
+                          #extent: #(#Point 67 22)
+                        )
+                       #(#ActionButtonSpec
+                          #label: 'Apply'
+                          #name: 'Apply'
+                          #translateLabel: true
+                          #model: #doApply
+                          #enableChannel: #enableButtons
+                          #extent: #(#Point 67 22)
                         )
                        #(#ActionButtonSpec
                           #label: 'Reload'
@@ -130,14 +141,14 @@
                           #translateLabel: true
                           #model: #doReload
                           #enableChannel: #enableButtons
-                          #extent: #(#Point 85 22)
+                          #extent: #(#Point 67 22)
                         )
                        #(#ActionButtonSpec
                           #label: 'Cancel'
                           #name: 'Cancel'
                           #translateLabel: true
-                          #model: #closeRequest
-                          #extent: #(#Point 84 22)
+                          #model: #doCancel
+                          #extent: #(#Point 67 22)
                         )
                        #(#ActionButtonSpec
                           #label: 'Help'
@@ -145,7 +156,7 @@
                           #translateLabel: true
                           #model: #help
                           #enableChannel: #enableButtons
-                          #extent: #(#Point 85 22)
+                          #extent: #(#Point 67 22)
                         )
                        )
                      
@@ -177,6 +188,16 @@
 
 !FileBrowserV2SettingsDialog methodsFor:'actions'!
 
+doApply
+    (settingsAppl saveRequestAsking:false) ifFalse:[
+        ^ self
+    ].
+!
+
+doCancel
+    super closeRequest.
+!
+
 doReload
 
     settingsAppl readSettings.
@@ -184,8 +205,11 @@
 
 doSave
 
-    settingsAppl saveRequest.
-    self closeRequest.
+"/    settingsAppl saveRequest.  -- already done in closeRequest.
+    (settingsAppl saveRequestAsking:false) ifFalse:[
+        ^ self
+    ].
+    ^ super closeRequest
 !
 
 help
@@ -201,17 +225,12 @@
      closed (this method has a chance to suppress the close).
      See also #closeDownViews, which is invoked when the close is really done."
 
-    settingsAppl saveRequest ifFalse:[
+    (settingsAppl saveRequestAsking:true) ifFalse:[
         ^ self
     ].
     ^ super closeRequest
 !
 
-initialize
-
-    super initialize.
-!
-
 postBuildSubCanvas:aWidget
 
     settingsAppl := aWidget client.
@@ -274,5 +293,5 @@
 !FileBrowserV2SettingsDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsDialog.st,v 1.3 2003-03-13 15:07:55 mb Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2SettingsDialog.st,v 1.4 2003-06-03 10:37:32 cg Exp $'
 ! !