diff --git a/src/renderer/components/download-settings/download-settings.vue b/src/renderer/components/download-settings/download-settings.vue index ffdbb5319808b..d4f1470a8c7fd 100644 --- a/src/renderer/components/download-settings/download-settings.vue +++ b/src/renderer/components/download-settings/download-settings.vue @@ -8,6 +8,7 @@ :value="downloadBehavior" :select-names="downloadBehaviorNames" :select-values="downloadBehaviorValues" + :icon="['fas', 'download']" @change="updateDownloadBehavior" /> diff --git a/src/renderer/components/external-player-settings/external-player-settings.vue b/src/renderer/components/external-player-settings/external-player-settings.vue index 8254eff8fc76b..5f86b8befe6ed 100644 --- a/src/renderer/components/external-player-settings/external-player-settings.vue +++ b/src/renderer/components/external-player-settings/external-player-settings.vue @@ -9,6 +9,7 @@ :select-names="externalPlayerNames" :select-values="externalPlayerValues" :tooltip="$t('Tooltips.External Player Settings.External Player')" + :icon="['fas', 'external-link-alt']" @change="updateExternalPlayer" /> diff --git a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js index 27c1f376925e1..dd1d7410687bb 100644 --- a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js +++ b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.js @@ -10,6 +10,7 @@ import FtSelect from '../../components/ft-select/ft-select.vue' import FtToggleSwitch from '../../components/ft-toggle-switch/ft-toggle-switch.vue' import { showToast, + getIconForSortPreference } from '../../helpers/utils' const SORT_BY_VALUES = { @@ -269,6 +270,8 @@ export default defineComponent({ this.query = query }, + getIconForSortPreference: (s) => getIconForSortPreference(s), + ...mapActions([ 'addVideos', 'updatePlaylist', diff --git a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue index 92dd088056b78..a925f5101709e 100644 --- a/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue +++ b/src/renderer/components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue @@ -40,6 +40,7 @@ :select-names="sortBySelectNames" :select-values="sortBySelectValues" :placeholder="$t('User Playlists.Sort By.Sort By')" + :icon="getIconForSortPreference(sortBy)" @change="sortBy = $event" /> diff --git a/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue b/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue index c88ecd9fa505b..cbf12e5845168 100644 --- a/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue +++ b/src/renderer/components/ft-profile-filter-channels-list/ft-profile-filter-channels-list.vue @@ -10,6 +10,7 @@ :value="profileNameList[filteredProfileIndex]" :select-names="profileNameList" :select-values="profileNameList" + :icon="['fas', 'filter']" @change="handleProfileFilterChange" /> diff --git a/src/renderer/components/ft-select/ft-select.css b/src/renderer/components/ft-select/ft-select.css index d2b0a30f2bcdf..58ae9bf374f4d 100644 --- a/src/renderer/components/ft-select/ft-select.css +++ b/src/renderer/components/ft-select/ft-select.css @@ -88,12 +88,19 @@ font-size: 18px; font-weight: normal; position: absolute; + display: flex; + column-gap: 6px; inset-inline-start: 0; inset-block-start: 10px; transition: 0.2s ease all; color: var(--tertiary-text-color); } +.select-icon { + inline-size: 14px; + block-size: 14px; +} + /* active state */ .select-text:focus ~ .select-label, .select-text:valid ~ .select-label { color: var(--accent-color); diff --git a/src/renderer/components/ft-select/ft-select.js b/src/renderer/components/ft-select/ft-select.js index f4edec7b67c57..60cdebcaf7cac 100644 --- a/src/renderer/components/ft-select/ft-select.js +++ b/src/renderer/components/ft-select/ft-select.js @@ -39,6 +39,14 @@ export default defineComponent({ describeById: { type: String, default: null + }, + icon: { + type: Array, + required: true + }, + iconColor: { + type: String, + default: null } }, emits: ['change'], diff --git a/src/renderer/components/ft-select/ft-select.vue b/src/renderer/components/ft-select/ft-select.vue index 54cdd92b28b3e..8fb2fe98bd458 100644 --- a/src/renderer/components/ft-select/ft-select.vue +++ b/src/renderer/components/ft-select/ft-select.vue @@ -30,6 +30,11 @@ :for="sanitizedId ?? sanitizedPlaceholder" :hidden="disabled" > + {{ placeholder }} diff --git a/src/renderer/components/general-settings/general-settings.vue b/src/renderer/components/general-settings/general-settings.vue index 02a6198eb97db..536aa22461f73 100644 --- a/src/renderer/components/general-settings/general-settings.vue +++ b/src/renderer/components/general-settings/general-settings.vue @@ -47,6 +47,7 @@ :select-names="backendNames" :select-values="backendValues" :tooltip="$t('Tooltips.General Settings.Preferred API Backend')" + :icon="['fas', 'server']" @change="handlePreferredApiBackend" /> @@ -91,6 +97,7 @@ :value="externalLinkHandling" :select-names="externalLinkHandlingNames" :select-values="externalLinkHandlingValues" + :icon="['fas', 'external-link-alt']" :tooltip="$t('Tooltips.General Settings.External Link Handling')" @change="updateExternalLinkHandling" /> diff --git a/src/renderer/components/player-settings/player-settings.vue b/src/renderer/components/player-settings/player-settings.vue index b1e75342e7d7f..5b1ea3785ffa7 100644 --- a/src/renderer/components/player-settings/player-settings.vue +++ b/src/renderer/components/player-settings/player-settings.vue @@ -139,6 +139,7 @@ :value="videoPlaybackRateInterval" :select-names="playbackRateIntervalValues" :select-values="playbackRateIntervalValues" + :icon="['fas', 'gauge']" @change="updateVideoPlaybackRateInterval" /> @@ -149,6 +150,7 @@ :select-names="formatNames" :select-values="formatValues" :tooltip="$t('Tooltips.Player Settings.Default Video Format')" + :icon="['fas', 'file-video']" @change="updateDefaultVideoFormat" /> diff --git a/src/renderer/components/theme-settings/theme-settings.vue b/src/renderer/components/theme-settings/theme-settings.vue index 27cd6d8589c80..1d0b1e3d6b4d9 100644 --- a/src/renderer/components/theme-settings/theme-settings.vue +++ b/src/renderer/components/theme-settings/theme-settings.vue @@ -57,6 +57,7 @@ :value="baseTheme" :select-names="baseThemeNames" :select-values="baseThemeValues" + :icon="['fas', 'palette']" @change="updateBaseTheme" /> diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index 39518ec86fdca..7ab4cd530af36 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -47,6 +47,7 @@ :value="currentSortValue" :select-names="sortNames" :select-values="sortValues" + :icon="['fas', 'arrow-down-short-wide']" @change="handleSortChange" />
getIconForSortPreference(s), + ...mapActions([ 'showOutlines', 'updateSubscriptionDetails', diff --git a/src/renderer/views/Channel/Channel.vue b/src/renderer/views/Channel/Channel.vue index aed6e7f9694cd..e2ce0bc85b6ec 100644 --- a/src/renderer/views/Channel/Channel.vue +++ b/src/renderer/views/Channel/Channel.vue @@ -237,6 +237,7 @@ :select-names="videoLiveShortSelectNames" :select-values="videoLiveShortSelectValues" :placeholder="$t('Search Filters.Sort By.Sort By')" + :icon="getIconForSortPreference(videoSortBy)" @change="videoSortBy = $event" />
diff --git a/src/renderer/views/Playlist/Playlist.js b/src/renderer/views/Playlist/Playlist.js index f3765680d6e87..925b7cf858004 100644 --- a/src/renderer/views/Playlist/Playlist.js +++ b/src/renderer/views/Playlist/Playlist.js @@ -14,7 +14,12 @@ import { getLocalPlaylistContinuation, parseLocalPlaylistVideo, } from '../../helpers/api/local' -import { extractNumberFromString, setPublishedTimestampsInvidious, showToast } from '../../helpers/utils' +import { + extractNumberFromString, + getIconForSortPreference, + setPublishedTimestampsInvidious, + showToast, +} from '../../helpers/utils' import { invidiousGetPlaylistInfo, youtubeImageUrlToInvidious } from '../../helpers/api/invidious' const SORT_BY_VALUES = { @@ -557,6 +562,8 @@ export default defineComponent({ } }, + getIconForSortPreference: (s) => getIconForSortPreference(s), + ...mapActions([ 'updateSubscriptionDetails', 'updatePlaylist', diff --git a/src/renderer/views/Playlist/Playlist.vue b/src/renderer/views/Playlist/Playlist.vue index 736c37e1da1b3..8cb3fc59273e0 100644 --- a/src/renderer/views/Playlist/Playlist.vue +++ b/src/renderer/views/Playlist/Playlist.vue @@ -50,6 +50,7 @@ :select-names="sortBySelectNames" :select-values="sortBySelectValues" :placeholder="$t('Playlist.Sort By.Sort By')" + :icon="getIconForSortPreference(sortOrder)" @change="updateUserPlaylistSortOrder" />