#FEATURE by exept
class: AbstractSettingsApplication::SystemMessageSettingsAppl
access to Logger's logThreshold
class definition
added:
#initialize
#logLevelIndex
#noLoggerLabel
#possibleLogLevelNames
#possibleLogLevels
removed: #changeFileName
comment/format in: #aspects
changed:18 methods
class: AbstractSettingsApplication::SystemMessageSettingsAppl class
changed:
#helpSpec
#windowSpec
--- a/AbstractSettingsApplication.st Sat Feb 22 10:02:17 2020 +0100
+++ b/AbstractSettingsApplication.st Sat Feb 22 21:20:41 2020 +0100
@@ -384,7 +384,7 @@
changeFileName beepForInfoDialog beepForWarningDialog
beepForErrorDialog flyByHelp beepEnabled beepInEditor
toolTipAutoHideDelay sendMessagesAlsoToTranscript
- onlyShowTooltipsForActiveWindow'
+ onlyShowTooltipsForActiveWindow logLevelIndex'
classVariableNames:''
poolDictionaries:''
privateIn:AbstractSettingsApplication
@@ -19637,17 +19637,38 @@
^ super helpSpec addPairsFrom:#(
-#vmInfo
-'Enable/disable information messages from the Virtual Machine (VM)'
-
-#vmErrors
-'Enable/disable error messages from the Virtual Machine (VM)'
+#beepEnabled
+'Enable/disable audible beeps altogether'
+
+#beepForErrorDialog
+'Enable/disable audible beeps when an error dialog is opened'
+
+#beepForInfoDialog
+'Enable/disable audible beeps when an info dialog is opened'
+
+#beepForWarningDialog
+'Enable/disable audible beeps when a warning dialog is opened'
+
+#beepInEditor
+'Enable/disable audible beeps from the editor (search found nothing, etc.)'
+
+#classInfos
+'Enable/disable messages from the class library'
#displayErrors
'Enable/disable error messages from the display (X or Windows screen connection)'
-#classInfos
-'Enable/disable messages from the class library'
+#flyByHelpActive
+'Enable/disable tooltips'
+
+#loggerLevel
+'Logging level.\Logger only logs messages with this or a higher severity'
+
+#onlyShowTooltipsForActiveWindow
+'Show tooltips only for the active window. Not for any passive windows underneath'
+
+#sendMessagesAlsoToTranscript
+'If on, messages are sent to both Stderr and the Transcript.\If off, they are sent to Stderr only.\The default is on.'
#showToolTips
'Show tooltips (fly-by help)'
@@ -19655,29 +19676,12 @@
#toolTipAutoHideDelay
'Autohide tooltips after that time (seconds by default). 0 to not autohide.'
-#onlyShowTooltipsForActiveWindow
-'Show tooltips only for the active window. Not for any passive windows underneath'
-
-#beepEnabled
-'Enable/disable audible beeps altogether'
-
-#beepInEditor
-'Enable/disable audible beeps from the editor (search found nothing, etc.)'
-
-#beepForInfoDialog
-'Enable/disable audible beeps when an info dialog is opened'
-
-#beepForWarningDialog
-'Enable/disable audible beeps when a warning dialog is opened'
-
-#beepForErrorDialog
-'Enable/disable audible beeps when an error dialog is opened'
-
-#flyByHelpActive
-'Enable/disable tooltips'
-
-#sendMessagesAlsoToTranscript
-'If on, messages are sent to both Stderr and the Transcript.\If off, they are sent to Stderr only.\The default is on.'
+#vmErrors
+'Enable/disable error messages from the Virtual Machine (VM)'
+
+#vmInfo
+'Enable/disable information messages from the Virtual Machine (VM)'
+
)
! !
@@ -19731,20 +19735,20 @@
^
#(FullSpec
name: windowSpec
+ uuid: '36dc1d24-55b0-11ea-ac19-10ddb1cc5928'
window:
(WindowSpec
label: 'Messages Settings'
name: 'Messages Settings'
flags: 1
- min: (Point 10 10)
- bounds: (Rectangle 0 0 574 602)
- )
- component:
+ uuid: '1915f084-55a2-11ea-ac19-10ddb1cc5928'
+ min: (Point 10 10) bounds: (Rectangle 0 0 574 602)
+ ) component:
(SpecCollection
collection: (
(VerticalPanelViewSpec
name: 'VerticalPanel2'
- layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+ layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0) uuid: '1915f476-55a2-11ea-ac19-10ddb1cc5928'
horizontalLayout: fitSpace
verticalLayout: topSpace
horizontalSpace: 5
@@ -19755,6 +19759,7 @@
(FramedBoxSpec
label: 'Info & Error Messages'
name: 'FramedBox1'
+ uuid: '1915f778-55a2-11ea-ac19-10ddb1cc5928'
labelPosition: topLeft
translateLabel: true
component:
@@ -19763,51 +19768,66 @@
(CheckBoxSpec
label: 'VM Info Messages'
name: 'VMInfoMessages'
- layout: (LayoutFrame 5 0 5 0 -5 1 35 0)
- activeHelpKey: vmInfo
+ layout: (LayoutFrame 5 0 5 0 -5 1 35 0) activeHelpKey: vmInfo
+ uuid: '1915f9d0-55a2-11ea-ac19-10ddb1cc5928'
model: vmInfo
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'VM Error Messages'
name: 'VMErrorMessages'
- layout: (LayoutFrame 5 0 35 0 -5 1 65 0)
- activeHelpKey: vmErrors
+ layout: (LayoutFrame 5 0 35 0 -5 1 65 0) activeHelpKey: vmErrors
+ uuid: '1915fcf0-55a2-11ea-ac19-10ddb1cc5928'
model: vmErrors
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Display Error Messages (Xlib, Xtlib, WinAPI ...)'
name: 'DisplayErrorMessages'
- layout: (LayoutFrame 5 0 65 0 -5 1 95 0)
- activeHelpKey: displayErrors
+ layout: (LayoutFrame 5 0 65 0 -5 1 95 0) activeHelpKey: displayErrors
+ uuid: '1915ff70-55a2-11ea-ac19-10ddb1cc5928'
model: displayErrors
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Other Info Messages'
name: 'OtherInfoMessages'
- layout: (LayoutFrame 5 0 95 0 -5 1 125 0)
- activeHelpKey: classInfos
+ layout: (LayoutFrame 5 0 95 0 -5 1 125 0) activeHelpKey: classInfos
+ uuid: '19160164-55a2-11ea-ac19-10ddb1cc5928'
model: classInfos
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Send also to Transcript (in addition to Stderr)'
name: 'CheckBox8'
- layout: (LayoutFrame 5 0 149 0 -5 1 179 0)
- activeHelpKey: sendMessagesAlsoToTranscript
+ layout: (LayoutFrame 5 0 149 0 -5 1 179 0) activeHelpKey: sendMessagesAlsoToTranscript
+ uuid: '1916036c-55a2-11ea-ac19-10ddb1cc5928'
model: sendMessagesAlsoToTranscript
translateLabel: true
- )
- )
-
- )
- extent: (Point 564 213)
- )
+ )
+ (LabelSpec
+ label: 'Logger Level:'
+ name: 'Label3'
+ layout: (LayoutFrame 32 0 125 0 -304 1 147 0) activeHelpKey: loggerLevel
+ uuid: '19160556-55a2-11ea-ac19-10ddb1cc5928'
+ translateLabel: true
+ adjust: left
+ )
+ (ComboListSpec
+ name: 'LogLevelComboList'
+ layout: (LayoutFrame -296 1 125 0 -163 1 145 0) activeHelpKey: loggerLevel
+ uuid: '19160876-55a2-11ea-ac19-10ddb1cc5928'
+ model: logLevelIndex
+ comboList: possibleLogLevelNames
+ useIndex: true
+ )
+ )
+ ) extent: (Point 564 213)
+ )
(FramedBoxSpec
label: 'Audible Bell'
name: 'FramedBox3'
+ uuid: '19160b78-55a2-11ea-ac19-10ddb1cc5928'
labelPosition: topLeft
translateLabel: true
component:
@@ -19816,55 +19836,54 @@
(CheckBoxSpec
label: 'Beep Generally Enabled'
name: 'beepEnabled'
- layout: (LayoutFrame 5 0 10 0 0 1 40 0)
- activeHelpKey: beepEnabled
+ layout: (LayoutFrame 5 0 10 0 0 1 40 0) activeHelpKey: beepEnabled
+ uuid: '19160d44-55a2-11ea-ac19-10ddb1cc5928'
model: beepEnabled
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Beep in Editor'
name: 'CheckBox7'
- layout: (LayoutFrame 40 0 35 0 0 1 65 0)
- activeHelpKey: beepInEditor
+ layout: (LayoutFrame 40 0 35 0 0 1 65 0) activeHelpKey: beepInEditor
+ uuid: '19160f42-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: beepEnabled
model: beepInEditor
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Beep for Info Dialogs'
name: 'CheckBox3'
- layout: (LayoutFrame 40 0 60 0 0 1 90 0)
- activeHelpKey: beepForInfoDialog
+ layout: (LayoutFrame 40 0 60 0 0 1 90 0) activeHelpKey: beepForInfoDialog
+ uuid: '19161136-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: beepEnabled
model: beepForInfoDialog
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Beep for Warning Dialogs'
name: 'CheckBox4'
- layout: (LayoutFrame 40 0 85 0 0 1 115 0)
- activeHelpKey: beepForWarningDialog
+ layout: (LayoutFrame 40 0 85 0 0 1 115 0) activeHelpKey: beepForWarningDialog
+ uuid: '19161320-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: beepEnabled
model: beepForWarningDialog
translateLabel: true
- )
+ )
(CheckBoxSpec
label: 'Beep for Error Dialogs'
name: 'CheckBox5'
- layout: (LayoutFrame 40 0 111 0 0 1 141 0)
- activeHelpKey: beepForErrorDialog
+ layout: (LayoutFrame 40 0 111 0 0 1 141 0) activeHelpKey: beepForErrorDialog
+ uuid: '1916150a-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: beepEnabled
model: beepForErrorDialog
translateLabel: true
- )
- )
-
- )
- extent: (Point 564 178)
- )
+ )
+ )
+ ) extent: (Point 564 178)
+ )
(FramedBoxSpec
label: 'Help'
name: 'FramedBox4'
+ uuid: '19161712-55a2-11ea-ac19-10ddb1cc5928'
labelPosition: topLeft
translateLabel: true
component:
@@ -19873,81 +19892,88 @@
(CheckBoxSpec
label: 'Tooltips (FlyBy Help)'
name: 'CheckBox6'
- layout: (LayoutFrame 5 0 7 0 -5 1 37 0)
- activeHelpKey: flyByHelpActive
+ layout: (LayoutFrame 5 0 7 0 -5 1 37 0) activeHelpKey: flyByHelpActive
+ uuid: '191618ca-55a2-11ea-ac19-10ddb1cc5928'
model: flyByHelpActive
translateLabel: true
- )
+ )
(InputFieldSpec
name: 'EntryField1'
- layout: (LayoutFrame -90 1 5 0 -34 1 35 0)
- activeHelpKey: toolTipAutoHideDelay
+ layout: (LayoutFrame -90 1 5 0 -34 1 35 0) activeHelpKey: toolTipAutoHideDelay
+ uuid: '19161ab4-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: flyByHelpActive
model: toolTipAutoHideDelay
type: timeDurationOrNil
acceptOnReturn: true
acceptOnTab: true
acceptOnPointerLeave: true
- )
+ )
(LabelSpec
label: 'Autohide after:'
name: 'Label1'
- layout: (AlignmentOrigin -94 1 21 0 1 0.5)
- activeHelpKey: toolTipAutoHideDelay
- translateLabel: true
- adjust: right
- )
+ layout: (AlignmentOrigin -94 1 21 0 1 0.5) activeHelpKey: toolTipAutoHideDelay
+ uuid: '19161e60-55a2-11ea-ac19-10ddb1cc5928'
+ translateLabel: true
+ adjust: right
+ )
(LabelSpec
label: '(s)'
name: 'Label2'
- layout: (LayoutFrame -31 1 6 0 0 1 36 0)
- activeHelpKey: toolTipAutoHideDelay
+ layout: (LayoutFrame -31 1 6 0 0 1 36 0) activeHelpKey: toolTipAutoHideDelay
+ uuid: '19162072-55a2-11ea-ac19-10ddb1cc5928'
translateLabel: true
adjust: left
- )
+ )
(CheckBoxSpec
label: 'Only Show Tooltips for Active Window'
name: 'CheckBox9'
- layout: (LayoutFrame 40 0 42 0 0 1 72 0)
- activeHelpKey: onlyShowTooltipsForActiveWindow
+ layout: (LayoutFrame 40 0 42 0 0 1 72 0) activeHelpKey: onlyShowTooltipsForActiveWindow
+ uuid: '19162266-55a2-11ea-ac19-10ddb1cc5928'
enableChannel: flyByHelpActive
model: onlyShowTooltipsForActiveWindow
translateLabel: true
- )
- )
-
- )
- extent: (Point 564 108)
- )
- )
-
- )
- )
- )
-
- )
- )
+ )
+ )
+ ) extent: (Point 564 108)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
! !
!AbstractSettingsApplication::SystemMessageSettingsAppl methodsFor:'actions'!
basicReadSettings
+
super basicReadSettings.
- self vmInfo value:ObjectMemory infoPrinting.
- self vmErrors value:ObjectMemory debugPrinting.
- self classInfos value:Object infoPrinting.
- self displayErrors value:DeviceWorkstation errorPrinting.
-
+ vmInfo value:ObjectMemory infoPrinting.
+ vmErrors value:ObjectMemory debugPrinting.
+ classInfos value:Object infoPrinting.
+ displayErrors value:DeviceWorkstation errorPrinting.
+
+ Logger isNil ifTrue:[
+ logLevelIndex value:1
+ ] ifFalse:[
+ logLevelIndex value:(self possibleLogLevels indexOf:Logger loggingThreshold).
+ ]
+
"Modified: / 10-11-2010 / 12:08:03 / cg"
!
basicSaveSettings
- ObjectMemory infoPrinting:self vmInfo value.
- ObjectMemory debugPrinting:self vmErrors value.
- Object infoPrinting:self classInfos value.
- DeviceWorkstation errorPrinting:self displayErrors value.
+ ObjectMemory infoPrinting:vmInfo value.
+ ObjectMemory debugPrinting:vmErrors value.
+ Object infoPrinting:classInfos value.
+ DeviceWorkstation errorPrinting:displayErrors value.
+
+ Logger notNil ifTrue:[
+ Logger loggingThreshold:(self possibleLogLevels at:logLevelIndex value)
+ ].
super basicSaveSettings.
@@ -19973,34 +19999,18 @@
!
beepEnabled
- beepEnabled isNil ifTrue:[
- beepEnabled := true asValue.
- beepEnabled onChangeSend:#updateModifiedChannel to:self
- ].
^ beepEnabled.
!
beepForErrorDialog
- beepForErrorDialog isNil ifTrue:[
- beepForErrorDialog := currentUserPrefs beepForErrorDialog asValue.
- beepForErrorDialog onChangeSend:#updateModifiedChannel to:self
- ].
^ beepForErrorDialog.
!
beepForInfoDialog
- beepForInfoDialog isNil ifTrue:[
- beepForInfoDialog := currentUserPrefs beepForInfoDialog asValue.
- beepForInfoDialog onChangeSend:#updateModifiedChannel to:self
- ].
^ beepForInfoDialog.
!
beepForWarningDialog
- beepForWarningDialog isNil ifTrue:[
- beepForWarningDialog := currentUserPrefs beepForWarningDialog asValue.
- beepForWarningDialog onChangeSend:#updateModifiedChannel to:self
- ].
^ beepForWarningDialog.
!
@@ -20008,107 +20018,70 @@
"the aspect hodler which controls if some error/not found conditions in an editor
should beep or not."
- beepInEditor isNil ifTrue:[
- beepInEditor := true asValue.
- beepInEditor onChangeSend:#updateModifiedChannel to:self
- ].
^ beepInEditor.
!
-changeFileName
-
- changeFileName isNil ifTrue:[
- changeFileName := ObjectMemory nameForChanges asValue.
- changeFileName onChangeSend:#updateModifiedChannel to:self
- ].
- ^ changeFileName.
-!
-
classInfos
-
- classInfos isNil ifTrue:[
- classInfos := Object infoPrinting asValue.
- classInfos onChangeSend:#updateModifiedChannel to:self
- ].
^ classInfos.
!
displayErrors
-
- displayErrors isNil ifTrue:[
- displayErrors := DeviceWorkstation errorPrinting asValue.
- displayErrors onChangeSend:#updateModifiedChannel to:self
- ].
^ displayErrors.
!
flyByHelpActive
- flyByHelp isNil ifTrue:[
- flyByHelp := currentUserPrefs flyByHelpActive asValue.
- flyByHelp onChangeSend:#updateModifiedChannel to:self
- ].
^ flyByHelp.
!
logDoits
-
- logDoits isNil ifTrue:[
- logDoits := Smalltalk logDoits asValue.
- logDoits onChangeSend:#updateModifiedChannel to:self
- ].
^ logDoits.
!
+logLevelIndex
+ ^ logLevelIndex.
+!
+
+noLoggerLabel
+ ^ 'Disabled (No Logger)'
+!
+
onlyShowTooltipsForActiveWindow
- onlyShowTooltipsForActiveWindow isNil ifTrue:[
- onlyShowTooltipsForActiveWindow := true asValue.
- onlyShowTooltipsForActiveWindow onChangeSend:#updateModifiedChannel to:self
- ].
^ onlyShowTooltipsForActiveWindow.
!
+possibleLogLevelNames
+ ^ self possibleLogLevels collect:#name
+
+ "
+ self basicNew possibleLogLevelNames
+ "
+!
+
+possibleLogLevels
+ ^ (Logger severities
+ sortBySelector:#value)
+ reverse
+!
+
sendMessagesAlsoToTranscript
- sendMessagesAlsoToTranscript isNil ifTrue:[
- sendMessagesAlsoToTranscript := true asValue.
- sendMessagesAlsoToTranscript onChangeSend:#updateModifiedChannel to:self
- ].
^ sendMessagesAlsoToTranscript.
!
toolTipAutoHideDelay
- toolTipAutoHideDelay isNil ifTrue:[
- toolTipAutoHideDelay := 10 seconds asValue.
- toolTipAutoHideDelay onChangeSend:#updateModifiedChannel to:self
- ].
^ toolTipAutoHideDelay.
"Created: / 10-11-2010 / 12:07:10 / cg"
!
updChanges
-
- updChanges isNil ifTrue:[
- updChanges := Class updatingChanges asValue.
- updChanges onChangeSend:#updateModifiedChannel to:self
- ].
^ updChanges.
!
vmErrors
-
- vmErrors isNil ifTrue:[
- vmErrors := ObjectMemory debugPrinting asValue.
- vmErrors onChangeSend:#updateModifiedChannel to:self
- ].
^ vmErrors.
!
vmInfo
-
- vmInfo isNil ifTrue:[
- vmInfo := ObjectMemory infoPrinting asValue.
- vmInfo onChangeSend:#updateModifiedChannel to:self
- ].
^ vmInfo.
! !
@@ -20118,15 +20091,77 @@
^ 'Launcher/messageSettings.html'
! !
+!AbstractSettingsApplication::SystemMessageSettingsAppl methodsFor:'initialization'!
+
+initialize
+
+ super initialize.
+
+ beepEnabled := true asValue.
+ beepEnabled onChangeSend:#updateModifiedChannel to:self.
+
+ beepForErrorDialog := currentUserPrefs beepForErrorDialog asValue.
+ beepForErrorDialog onChangeSend:#updateModifiedChannel to:self.
+
+ beepForInfoDialog := currentUserPrefs beepForInfoDialog asValue.
+ beepForInfoDialog onChangeSend:#updateModifiedChannel to:self.
+
+ beepForWarningDialog := currentUserPrefs beepForWarningDialog asValue.
+ beepForWarningDialog onChangeSend:#updateModifiedChannel to:self.
+
+ beepInEditor := true asValue.
+ beepInEditor onChangeSend:#updateModifiedChannel to:self.
+
+ classInfos := Object infoPrinting asValue.
+ classInfos onChangeSend:#updateModifiedChannel to:self.
+
+ displayErrors := DeviceWorkstation errorPrinting asValue.
+ displayErrors onChangeSend:#updateModifiedChannel to:self.
+
+ flyByHelp := currentUserPrefs flyByHelpActive asValue.
+ flyByHelp onChangeSend:#updateModifiedChannel to:self.
+
+ logDoits := Smalltalk logDoits asValue.
+ logDoits onChangeSend:#updateModifiedChannel to:self.
+
+ onlyShowTooltipsForActiveWindow := true asValue.
+ onlyShowTooltipsForActiveWindow onChangeSend:#updateModifiedChannel to:self.
+
+ sendMessagesAlsoToTranscript := true asValue.
+ sendMessagesAlsoToTranscript onChangeSend:#updateModifiedChannel to:self.
+
+ toolTipAutoHideDelay := 10 seconds asValue.
+ toolTipAutoHideDelay onChangeSend:#updateModifiedChannel to:self.
+
+ updChanges := Class updatingChanges asValue.
+ updChanges onChangeSend:#updateModifiedChannel to:self.
+
+ vmErrors := ObjectMemory debugPrinting asValue.
+ vmErrors onChangeSend:#updateModifiedChannel to:self.
+
+ vmInfo := ObjectMemory infoPrinting asValue.
+ vmInfo onChangeSend:#updateModifiedChannel to:self.
+
+ logLevelIndex := 1 asValue.
+ logLevelIndex onChangeSend:#updateModifiedChannel to:self.
+! !
+
!AbstractSettingsApplication::SystemMessageSettingsAppl methodsFor:'queries'!
hasUnsavedChanges
+ |idx logLevel|
+
(super hasUnsavedChanges) ifTrue:[^ true].
- self vmInfo value ~= ObjectMemory infoPrinting ifTrue:[^ true].
- self vmErrors value ~= ObjectMemory debugPrinting ifTrue:[^ true].
- self classInfos value ~= Object infoPrinting ifTrue:[^ true].
- self displayErrors value ~= DeviceWorkstation errorPrinting ifTrue:[^ true].
+ vmInfo value ~= ObjectMemory infoPrinting ifTrue:[^ true].
+ vmErrors value ~= ObjectMemory debugPrinting ifTrue:[^ true].
+ classInfos value ~= Object infoPrinting ifTrue:[^ true].
+ displayErrors value ~= DeviceWorkstation errorPrinting ifTrue:[^ true].
+
+ idx := logLevelIndex value.
+ logLevel := self possibleLogLevels at:idx.
+ logLevel ~= Logger loggingThreshold ifTrue:[^ true].
+
^ false
"Modified: / 10-11-2010 / 12:08:25 / cg"