diff --git a/src/renderer/components/ft-input/ft-input.js b/src/renderer/components/ft-input/ft-input.js
index 9d246ac3..3b845d36 100644
--- a/src/renderer/components/ft-input/ft-input.js
+++ b/src/renderer/components/ft-input/ft-input.js
@@ -1,7 +1,11 @@
import Vue from 'vue'
+import FtTooltip from '../ft-tooltip/ft-tooltip.vue'
export default Vue.extend({
name: 'FtInput',
+ components: {
+ 'ft-tooltip': FtTooltip
+ },
props: {
placeholder: {
type: String,
@@ -30,6 +34,10 @@ export default Vue.extend({
dataList: {
type: Array,
default: () => { return [] }
+ },
+ tooltip: {
+ type: String,
+ default: ''
}
},
data: function () {
diff --git a/src/renderer/components/ft-input/ft-input.vue b/src/renderer/components/ft-input/ft-input.vue
index c239aab2..2fad39d2 100644
--- a/src/renderer/components/ft-input/ft-input.vue
+++ b/src/renderer/components/ft-input/ft-input.vue
@@ -11,6 +11,12 @@
:for="id"
>
{{ placeholder }}
+
{{ placeholder }}
+
diff --git a/src/renderer/components/ft-toggle-switch/ft-toggle-switch.js b/src/renderer/components/ft-toggle-switch/ft-toggle-switch.js
index 775b91c1..64770a75 100644
--- a/src/renderer/components/ft-toggle-switch/ft-toggle-switch.js
+++ b/src/renderer/components/ft-toggle-switch/ft-toggle-switch.js
@@ -1,7 +1,11 @@
import Vue from 'vue'
+import FtTooltip from '../ft-tooltip/ft-tooltip.vue'
export default Vue.extend({
name: 'FtToggleSwitch',
+ components: {
+ 'ft-tooltip': FtTooltip
+ },
props: {
label: {
type: String,
@@ -18,6 +22,10 @@ export default Vue.extend({
disabled: {
type: Boolean,
default: false
+ },
+ tooltip: {
+ type: String,
+ default: ''
}
},
data: function () {
diff --git a/src/renderer/components/ft-toggle-switch/ft-toggle-switch.vue b/src/renderer/components/ft-toggle-switch/ft-toggle-switch.vue
index daa2ec76..f7a80e48 100644
--- a/src/renderer/components/ft-toggle-switch/ft-toggle-switch.vue
+++ b/src/renderer/components/ft-toggle-switch/ft-toggle-switch.vue
@@ -18,6 +18,11 @@
class="switch-label"
>
{{ label }}
+
diff --git a/src/renderer/components/ft-tooltip/ft-tooltip.css b/src/renderer/components/ft-tooltip/ft-tooltip.css
index 03f04a73..503375e1 100644
--- a/src/renderer/components/ft-tooltip/ft-tooltip.css
+++ b/src/renderer/components/ft-tooltip/ft-tooltip.css
@@ -36,8 +36,8 @@
font-size: 1rem;
line-height: 120%;
margin: 0;
- max-width: 10em;
- min-width: max-content;
+ max-width: max-content;
+ min-width: 15em;
opacity: 0;
padding: 10px 8px;
pointer-events: none;
@@ -84,4 +84,4 @@
.tooltip {
display: inline-block;
position: relative;
-}
\ No newline at end of file
+}
diff --git a/src/renderer/components/general-settings/general-settings.js b/src/renderer/components/general-settings/general-settings.js
index 43c020a7..1b3a06eb 100644
--- a/src/renderer/components/general-settings/general-settings.js
+++ b/src/renderer/components/general-settings/general-settings.js
@@ -651,6 +651,15 @@ export default Vue.extend({
this.updateInvidiousInstanceBounce(invidiousInstance)
},
+ handlePreferredApiBackend: function (backend) {
+ this.updateBackendPreference(backend)
+ console.log(backend)
+
+ if (backend === 'local') {
+ this.updateForceLocalBackendForLegacy(false)
+ }
+ },
+
updateLocale: function (locale) {
this.$i18n.locale = locale
this.currentLocale = locale
@@ -668,7 +677,8 @@ export default Vue.extend({
'updateRegion',
'updateListType',
'updateThumbnailPreference',
- 'updateInvidiousInstance'
+ 'updateInvidiousInstance',
+ 'updateForceLocalBackendForLegacy'
])
}
})
diff --git a/src/renderer/components/general-settings/general-settings.vue b/src/renderer/components/general-settings/general-settings.vue
index a2b00c86..81e9d72e 100644
--- a/src/renderer/components/general-settings/general-settings.vue
+++ b/src/renderer/components/general-settings/general-settings.vue
@@ -19,6 +19,7 @@
:label="$t('Settings.General Settings.Fallback to Non-Preferred Backend on Failure')"
:default-value="backendFallback"
:compact="true"
+ :tooltip="$t('Tooltips.General Settings.Fallback to Non-Preferred Backend on Failure')"
@change="updateBackendFallback"
/>
@@ -43,7 +44,8 @@
:value="backendPreference"
:select-names="backendNames"
:select-values="backendValues"
- @change="updateBackendPreference"
+ :tooltip="$t('Tooltips.General Settings.Preferred API Backend')"
+ @change="handlePreferredApiBackend"
/>
diff --git a/src/renderer/components/player-settings/player-settings.js b/src/renderer/components/player-settings/player-settings.js
index a50a710b..73d50332 100644
--- a/src/renderer/components/player-settings/player-settings.js
+++ b/src/renderer/components/player-settings/player-settings.js
@@ -34,6 +34,10 @@ export default Vue.extend({
}
},
computed: {
+ backendPreference: function () {
+ return this.$store.getters.getBackendPreference
+ },
+
autoplayVideos: function () {
return this.$store.getters.getAutoplayVideos
},
diff --git a/src/renderer/components/player-settings/player-settings.vue b/src/renderer/components/player-settings/player-settings.vue
index 4a0fe740..f4b98287 100644
--- a/src/renderer/components/player-settings/player-settings.vue
+++ b/src/renderer/components/player-settings/player-settings.vue
@@ -19,13 +19,16 @@
diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml
index 2e40fd3c..4e1f076b 100644
--- a/static/locales/en-US.yaml
+++ b/static/locales/en-US.yaml
@@ -530,6 +530,20 @@ Comments:
No more comments available: No more comments available
Up Next: Up Next
+#Tooltips
+Tooltips:
+ General Settings:
+ Preferred API Backend: Choose the backend that FreeTube uses to obtain data. The local API is a built in extractor. The Invidious API requires an Invidious server to connect to
+ Fallback to Non-Preferred Backend on Failure: When your preferred API has a problem, FreeTube will automatically attempt to use your non-preferred API as a fallback method when enabled
+ Thumbnail Preference: All thumbnails throughout FreeTube will be replaced with a frame of the video instead of the default thumbnail
+ Invidious Instance: The Invidious instance that FreeTube will connect to for API calls. Clear the current instance to see a list of public instances to choose from
+ Player Settings:
+ Force Local Backend for Legacy Formats: Only works when the Invidious API is your default. When enabled, the local API will run and use the legacy formats returned by that instead of the ones returned by Invidious. Helps when the videos returned by Invidious don't play due to country restrictions
+ Proxy Videos Through Invidious: Will connect to Invidious to serve videos instead of making a direct connection to YouTube. Overrides API preference
+ Default Video Format: Set the formats used when a video plays. Dash formats can play higher qualities. Legacy formats are limited to a max of 720p but use less bandwidth. Audio formats are audio only streams
+ Subscription Settings:
+ Fetch Feeds from RSS: When enabled, FreeTube will use RSS instead of it's default method for grabbing your subscription feed. RSS is faster and prevents IP blocking, but doesn't provide certain information like video duration or live status
+
# Toast Messages
Local API Error (Click to copy): Local API Error (Click to copy)
Invidious API Error (Click to copy): Invidious API Error (Click to copy)