Skip to content

Commit

Permalink
Setting to turn on subtitles by default (#4450)
Browse files Browse the repository at this point in the history
* 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.
  • Loading branch information
kommunarr authored Jan 3, 2024
1 parent bffedf0 commit bed4af1
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
19 changes: 16 additions & 3 deletions src/renderer/components/ft-video-player/ft-video-player.js
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,10 @@ export default defineComponent({
return playbackRates
},

enableSubtitlesByDefault: function () {
return this.$store.getters.getEnableSubtitlesByDefault
},

enableScreenshot: function () {
return this.$store.getters.getEnableScreenshot
},
Expand Down Expand Up @@ -1406,6 +1410,14 @@ export default defineComponent({
const trackIndex = this.useDash ? 1 : 0

const tracks = this.player.textTracks()

// visually and semantically disable any other enabled tracks
for (let i = 0; i < tracks.length; ++i) {
if (i !== trackIndex && tracks[i].mode === 'showing') {
tracks[i].mode = 'disabled'
}
}

if (tracks.length > trackIndex) {
if (tracks[trackIndex].mode === 'showing') {
tracks[trackIndex].mode = 'disabled'
Expand Down Expand Up @@ -1864,15 +1876,16 @@ export default defineComponent({
captionList = this.captionHybridList
}

for (const caption of this.sortCaptions(captionList)) {
this.sortCaptions(captionList).forEach((caption, i) =>
this.player.addRemoteTextTrack({
kind: 'subtitles',
src: caption.url,
srclang: caption.language_code,
label: caption.label,
type: caption.type
type: caption.type,
default: i === 0 && this.enableSubtitlesByDefault
}, true)
}
)
},

toggleFullWindow: function () {
Expand Down
6 changes: 3 additions & 3 deletions src/renderer/components/player-settings/player-settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ export default defineComponent({
return this.$store.getters.getPlayNextVideo
},

enableSubtitles: function () {
return this.$store.getters.getEnableSubtitles
enableSubtitlesByDefault: function () {
return this.$store.getters.getEnableSubtitlesByDefault
},

forceLocalBackendForLegacy: function () {
Expand Down Expand Up @@ -295,7 +295,7 @@ export default defineComponent({
'updateAutoplayVideos',
'updateAutoplayPlaylists',
'updatePlayNextVideo',
'updateEnableSubtitles',
'updateEnableSubtitlesByDefault',
'updateForceLocalBackendForLegacy',
'updateProxyVideos',
'updateDefaultTheatreMode',
Expand Down
13 changes: 6 additions & 7 deletions src/renderer/components/player-settings/player-settings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@
>
<div class="switchColumnGrid">
<div class="switchColumn">
<ft-toggle-switch
v-if="false"
label="Enable Subtitles by Default"
:compact="true"
:default-value="enableSubtitles"
@change="updateEnableSubtitles"
/>
<ft-toggle-switch
:label="$t('Settings.Player Settings.Force Local Backend for Legacy Formats')"
:compact="true"
Expand All @@ -26,6 +19,12 @@
:tooltip="$t('Tooltips.Player Settings.Proxy Videos Through Invidious')"
@change="updateProxyVideos"
/>
<ft-toggle-switch
:label="$t('Settings.Player Settings.Turn on Subtitles by Default')"
:compact="true"
:default-value="enableSubtitlesByDefault"
@change="updateEnableSubtitlesByDefault"
/>
<ft-toggle-switch
:label="$t('Settings.Player Settings.Enable Theatre Mode by Default')"
:compact="true"
Expand Down
2 changes: 1 addition & 1 deletion src/renderer/store/modules/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ const state = {
disableSmoothScrolling: false,
displayVideoPlayButton: true,
enableSearchSuggestions: true,
enableSubtitles: true,
enableSubtitlesByDefault: false,
enterFullscreenOnDisplayRotate: false,
externalLinkHandling: '',
externalPlayer: '',
Expand Down

0 comments on commit bed4af1

Please sign in to comment.