diff --git a/_scripts/ProcessLocalesPlugin.js b/_scripts/ProcessLocalesPlugin.js index 4b525fdc82f6b..e79345e106566 100644 --- a/_scripts/ProcessLocalesPlugin.js +++ b/_scripts/ProcessLocalesPlugin.js @@ -68,10 +68,6 @@ class ProcessLocalesPlugin { } } - if (Object.prototype.hasOwnProperty.call(data, 'Locale Name')) { - delete data['Locale Name'] - } - this.removeEmptyValues(data) let filename = `${this.outputDir}/${locale}.json` diff --git a/src/renderer/App.css b/src/renderer/App.css index 90fc87ab4938e..c422c7558ee25 100644 --- a/src/renderer/App.css +++ b/src/renderer/App.css @@ -10,6 +10,11 @@ block-size: 100%; } +.selectionModeEnabled { + -webkit-user-select: none; + user-select: none; +} + .routerView { flex: 1 1 0%; margin-block: 18px; diff --git a/src/renderer/App.js b/src/renderer/App.js index 25ef07ca4e8b5..d46d985838336 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -121,6 +121,10 @@ export default defineComponent({ externalLinkHandling: function () { return this.$store.getters.getExternalLinkHandling + }, + + isSelectionModeEnabled: function () { + return this.$store.getters.getIsSelectionModeEnabled } }, watch: { @@ -333,6 +337,15 @@ export default defineComponent({ } break } + + if (this.isSelectionModeEnabled && (event.ctrlKey || event.metaKey)) { + switch (event.key) { + case 'A': + case 'a': + this.selectAllVideosInSelectionMode() + break + } + } }, openAllLinksExternally: function () { @@ -541,6 +554,7 @@ export default defineComponent({ 'updateBaseTheme', 'updateMainColor', 'updateSecColor', + 'selectAllVideosInSelectionMode', 'showOutlines', 'hideOutlines' ]) diff --git a/src/renderer/App.vue b/src/renderer/App.vue index e0394fae9711b..30fb8c7df8ca8 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -4,7 +4,8 @@ id="app" :class="{ hideOutlines: outlinesHidden, - isLocaleRightToLeft: isLocaleRightToLeft + isLocaleRightToLeft: isLocaleRightToLeft, + selectionModeEnabled: isSelectionModeEnabled }" > diff --git a/src/renderer/components/ft-icon-button/ft-icon-button.scss b/src/renderer/components/ft-icon-button/ft-icon-button.scss index 58f776dd6414c..1df0d47309ffc 100644 --- a/src/renderer/components/ft-icon-button/ft-icon-button.scss +++ b/src/renderer/components/ft-icon-button/ft-icon-button.scss @@ -8,7 +8,12 @@ user-select: none; } -.iconButton { +.iconButton.base-nav-icon { + inline-size: 1em; + block-size: 1em; +} + +.iconButton:not(.base-nav-icon) { border-radius: 50%; cursor: pointer; block-size: 1em; diff --git a/src/renderer/components/ft-icon-button/ft-icon-button.vue b/src/renderer/components/ft-icon-button/ft-icon-button.vue index c699f4392ddfc..673225f8f9ce7 100644 --- a/src/renderer/components/ft-icon-button/ft-icon-button.vue +++ b/src/renderer/components/ft-icon-button/ft-icon-button.vue @@ -6,7 +6,8 @@ :icon="icon" :class="{ [theme]: true, - shadow: useShadow + shadow: useShadow, + navIcon: theme === 'base-nav-icon' }" :style="{ padding: padding + 'px', @@ -15,10 +16,10 @@ tabindex="0" role="button" :aria-expanded="dropdownShown" - @click="handleIconClick" - @mousedown="handleIconMouseDown" - @keydown.enter.prevent="handleIconClick" - @keydown.space.prevent="handleIconClick" + @click.stop="handleIconClick" + @mousedown.stop="handleIconMouseDown" + @keydown.enter.stop.prevent="handleIconClick" + @keydown.space.stop.prevent="handleIconClick" />