Skip to content

Commit bed4af1

Browse files
authored
Setting to turn on subtitles by default (#4450)
* Add back 'Turn on Subtitles by Default' * Update variable name * Fix double-selection issue when auto-generated & native tracks exist, & fix similar pre-existing bug Also fixes pre-existing bug with pressing 'c' having the effect of multiple tracks (inaccurately) showing as selected.
1 parent bffedf0 commit bed4af1

File tree

4 files changed

+26
-14
lines changed

4 files changed

+26
-14
lines changed

src/renderer/components/ft-video-player/ft-video-player.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,10 @@ export default defineComponent({
321321
return playbackRates
322322
},
323323

324+
enableSubtitlesByDefault: function () {
325+
return this.$store.getters.getEnableSubtitlesByDefault
326+
},
327+
324328
enableScreenshot: function () {
325329
return this.$store.getters.getEnableScreenshot
326330
},
@@ -1406,6 +1410,14 @@ export default defineComponent({
14061410
const trackIndex = this.useDash ? 1 : 0
14071411

14081412
const tracks = this.player.textTracks()
1413+
1414+
// visually and semantically disable any other enabled tracks
1415+
for (let i = 0; i < tracks.length; ++i) {
1416+
if (i !== trackIndex && tracks[i].mode === 'showing') {
1417+
tracks[i].mode = 'disabled'
1418+
}
1419+
}
1420+
14091421
if (tracks.length > trackIndex) {
14101422
if (tracks[trackIndex].mode === 'showing') {
14111423
tracks[trackIndex].mode = 'disabled'
@@ -1864,15 +1876,16 @@ export default defineComponent({
18641876
captionList = this.captionHybridList
18651877
}
18661878

1867-
for (const caption of this.sortCaptions(captionList)) {
1879+
this.sortCaptions(captionList).forEach((caption, i) =>
18681880
this.player.addRemoteTextTrack({
18691881
kind: 'subtitles',
18701882
src: caption.url,
18711883
srclang: caption.language_code,
18721884
label: caption.label,
1873-
type: caption.type
1885+
type: caption.type,
1886+
default: i === 0 && this.enableSubtitlesByDefault
18741887
}, true)
1875-
}
1888+
)
18761889
},
18771890

18781891
toggleFullWindow: function () {

src/renderer/components/player-settings/player-settings.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ export default defineComponent({
8080
return this.$store.getters.getPlayNextVideo
8181
},
8282

83-
enableSubtitles: function () {
84-
return this.$store.getters.getEnableSubtitles
83+
enableSubtitlesByDefault: function () {
84+
return this.$store.getters.getEnableSubtitlesByDefault
8585
},
8686

8787
forceLocalBackendForLegacy: function () {
@@ -295,7 +295,7 @@ export default defineComponent({
295295
'updateAutoplayVideos',
296296
'updateAutoplayPlaylists',
297297
'updatePlayNextVideo',
298-
'updateEnableSubtitles',
298+
'updateEnableSubtitlesByDefault',
299299
'updateForceLocalBackendForLegacy',
300300
'updateProxyVideos',
301301
'updateDefaultTheatreMode',

src/renderer/components/player-settings/player-settings.vue

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@
44
>
55
<div class="switchColumnGrid">
66
<div class="switchColumn">
7-
<ft-toggle-switch
8-
v-if="false"
9-
label="Enable Subtitles by Default"
10-
:compact="true"
11-
:default-value="enableSubtitles"
12-
@change="updateEnableSubtitles"
13-
/>
147
<ft-toggle-switch
158
:label="$t('Settings.Player Settings.Force Local Backend for Legacy Formats')"
169
:compact="true"
@@ -26,6 +19,12 @@
2619
:tooltip="$t('Tooltips.Player Settings.Proxy Videos Through Invidious')"
2720
@change="updateProxyVideos"
2821
/>
22+
<ft-toggle-switch
23+
:label="$t('Settings.Player Settings.Turn on Subtitles by Default')"
24+
:compact="true"
25+
:default-value="enableSubtitlesByDefault"
26+
@change="updateEnableSubtitlesByDefault"
27+
/>
2928
<ft-toggle-switch
3029
:label="$t('Settings.Player Settings.Enable Theatre Mode by Default')"
3130
:compact="true"

src/renderer/store/modules/settings.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ const state = {
184184
disableSmoothScrolling: false,
185185
displayVideoPlayButton: true,
186186
enableSearchSuggestions: true,
187-
enableSubtitles: true,
187+
enableSubtitlesByDefault: false,
188188
enterFullscreenOnDisplayRotate: false,
189189
externalLinkHandling: '',
190190
externalPlayer: '',

0 commit comments

Comments
 (0)