@@ -12,6 +12,7 @@ import { AccessibilitySignal, IAccessibilitySignalService } from 'vs/platform/ac
12
12
import { IConfigurationService } from 'vs/platform/configuration/common/configuration' ;
13
13
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation' ;
14
14
import { IQuickInputService , IQuickPickItem } from 'vs/platform/quickinput/common/quickInput' ;
15
+ import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences' ;
15
16
16
17
export class ShowSignalSoundHelp extends Action2 {
17
18
static readonly ID = 'signals.sounds.help' ;
@@ -32,6 +33,7 @@ export class ShowSignalSoundHelp extends Action2 {
32
33
const quickInputService = accessor . get ( IQuickInputService ) ;
33
34
const configurationService = accessor . get ( IConfigurationService ) ;
34
35
const accessibilityService = accessor . get ( IAccessibilityService ) ;
36
+ const preferencesService = accessor . get ( IPreferencesService ) ;
35
37
const userGestureSignals = [ AccessibilitySignal . save , AccessibilitySignal . format ] ;
36
38
const items : ( IQuickPickItem & { signal : AccessibilitySignal } ) [ ] = AccessibilitySignal . allAccessibilitySignals . map ( ( signal , idx ) => ( {
37
39
label : userGestureSignals . includes ( signal ) ? `${ signal . name } (${ configurationService . getValue ( signal . settingsKey + '.sound' ) } )` : signal . name ,
@@ -68,6 +70,9 @@ export class ShowSignalSoundHelp extends Action2 {
68
70
}
69
71
qp . hide ( ) ;
70
72
} ) ;
73
+ qp . onDidTriggerItemButton ( e => {
74
+ preferencesService . openUserSettings ( { jsonEditor : true , revealSetting : { key : e . item . signal . settingsKey , edit : true } } ) ;
75
+ } ) ;
71
76
qp . onDidChangeActive ( ( ) => {
72
77
accessibilitySignalService . playSound ( qp . activeItems [ 0 ] . signal . sound . getSound ( true ) , true ) ;
73
78
} ) ;
@@ -96,22 +101,23 @@ export class ShowAccessibilityAnnouncementHelp extends Action2 {
96
101
const quickInputService = accessor . get ( IQuickInputService ) ;
97
102
const configurationService = accessor . get ( IConfigurationService ) ;
98
103
const accessibilityService = accessor . get ( IAccessibilityService ) ;
104
+ const preferencesService = accessor . get ( IPreferencesService ) ;
99
105
const userGestureSignals = [ AccessibilitySignal . save , AccessibilitySignal . format ] ;
100
- const items : ( IQuickPickItem & { signal : AccessibilitySignal } ) [ ] = AccessibilitySignal . allAccessibilitySignals . filter ( c => ! ! c . announcementMessage ) . map ( ( signal , idx ) => ( {
106
+ const items : ( IQuickPickItem & { signal : AccessibilitySignal } ) [ ] = AccessibilitySignal . allAccessibilitySignals . filter ( c => ! ! c . legacyAnnouncementSettingsKey ) . map ( ( signal , idx ) => ( {
101
107
label : userGestureSignals . includes ( signal ) ? `${ signal . name } (${ configurationService . getValue ( signal . settingsKey + '.announcement' ) } )` : signal . name ,
102
108
signal,
103
109
buttons : userGestureSignals . includes ( signal ) ? [ {
104
110
iconClass : ThemeIcon . asClassName ( Codicon . settingsGear ) ,
105
111
tooltip : localize ( 'announcement.help.settings' , 'Enable/Disable Announcement' ) ,
106
- alwaysVisible : true
112
+ alwaysVisible : true ,
107
113
} ] : [ ]
108
114
} ) ) ;
109
115
const qp = quickInputService . createQuickPick < IQuickPickItem & { signal : AccessibilitySignal } > ( ) ;
110
116
qp . items = items ;
111
117
qp . selectedItems = items . filter ( i => accessibilitySignalService . isAnnouncementEnabled ( i . signal ) || userGestureSignals . includes ( i . signal ) && configurationService . getValue ( i . signal . settingsKey + '.announcement' ) !== 'never' ) ;
112
118
qp . onDidAccept ( ( ) => {
113
119
const enabledAnnouncements = qp . selectedItems . map ( i => i . signal ) ;
114
- const disabledAnnouncements = AccessibilitySignal . allAccessibilitySignals . filter ( cue => ! enabledAnnouncements . includes ( cue ) ) ;
120
+ const disabledAnnouncements = AccessibilitySignal . allAccessibilitySignals . filter ( cue => ! ! cue . legacyAnnouncementSettingsKey && ! enabledAnnouncements . includes ( cue ) ) ;
115
121
for ( const signal of enabledAnnouncements ) {
116
122
let { sound, announcement } = configurationService . getValue < { sound : string ; announcement ?: string } > ( signal . settingsKey ) ;
117
123
announcement = userGestureSignals . includes ( signal ) ? 'userGesture' : signal . announcementMessage && accessibilityService . isScreenReaderOptimized ( ) ? 'auto' : undefined ;
@@ -124,6 +130,9 @@ export class ShowAccessibilityAnnouncementHelp extends Action2 {
124
130
}
125
131
qp . hide ( ) ;
126
132
} ) ;
133
+ qp . onDidTriggerItemButton ( e => {
134
+ preferencesService . openUserSettings ( { jsonEditor : true , revealSetting : { key : e . item . signal . settingsKey , edit : true } } ) ;
135
+ } ) ;
127
136
qp . placeholder = localize ( 'announcement.help.placeholder' , 'Select an announcement to configure' ) ;
128
137
qp . canSelectMany = true ;
129
138
await qp . show ( ) ;
0 commit comments