diff --git a/i18n/en.json b/i18n/en.json index 829036f3..98669cd6 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -189,6 +189,8 @@ "sortOrderDescription": "Sort order", "sortOrderHint": "Sort order", "sortOrderMoreInfo": "Show the sort order filter", + "spacePlaysRandomDescription": "Pressing spacebar plays random video from random starting time", + "spacePlaysRandomMoreInfo": "Random starting time only works when preferred video player is set", "starFilterDescription": "Star", "starFilterHint": "Star filter", "starFilterMoreInfo": "Show the star filter", diff --git a/src/app/common/settings-buttons.ts b/src/app/common/settings-buttons.ts index e8c98361..fe5042be 100644 --- a/src/app/common/settings-buttons.ts +++ b/src/app/common/settings-buttons.ts @@ -76,6 +76,7 @@ export type SettingsButtonKey = 'autoFileTags' | 'sortOptionTimesPlayed' | 'sortOptionYear' | 'sortOrder' + | 'spacePlaysRandom' | 'starFilter' | 'startWizard' | 'tagExclusion' @@ -202,6 +203,7 @@ export const SettingsButtonsGroups: SettingsButtonKey[][] = [ 'showDeleteOption', 'dangerousDelete', 'playPlaylist', + 'spacePlaysRandom', 'openAtTimestamp', ] ]; @@ -762,7 +764,13 @@ export const SettingsButtons: SettingsButtonsType = { title: '', toggled: false }, - + 'spacePlaysRandom': { + description: 'BUTTONS.spacePlaysRandomDescription', + hidden: false, + moreInfo: 'BUTTONS.spacePlaysRandomMoreInfo', + title: '', + toggled: false + }, 'sortOptionFps': { description: 'BUTTONS.sortOptionFpsDescription', hidden: false, diff --git a/src/app/components/home.component.ts b/src/app/components/home.component.ts index 3d722ec4..22e613b8 100644 --- a/src/app/components/home.component.ts +++ b/src/app/components/home.component.ts @@ -358,6 +358,11 @@ export class HomeComponent implements OnInit, AfterViewInit { this.sheetOverlayShowing = false; } else if (event.key === 'Escape' && this.settingsButtons['showTags'].toggled) { this.toggleButton('showTags'); + } else if (event.key === ' ' && this.settingsButtons['spacePlaysRandom'].toggled) { + const randomIndex: number = Math.floor(Math.random() * this.pipeSideEffectService.galleryShowing.length); + const video: ImageElement = this.pipeSideEffectService.galleryShowing[randomIndex]; + const randomPlayStart: number = Math.floor(Math.random() * video.screens); + this.openVideo(video, randomPlayStart); } }