diff --git a/i18n/en.json b/i18n/en.json index 5e073559ac..a15666aed4 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -2192,6 +2192,7 @@ "show_schema": "Show schema", "show_search_options": "Show search options", "show_shared_links": "Show shared links", + "show_slideshow_metadata_overlay": "Show image info overlay", "show_slideshow_transition": "Show slideshow transition", "show_supporter_badge": "Supporter badge", "show_supporter_badge_description": "Show a supporter badge", @@ -2207,6 +2208,9 @@ "skip_to_folders": "Skip to folders", "skip_to_tags": "Skip to tags", "slideshow": "Slideshow", + "slideshow_metadata_overlay_mode": "Overlay content", + "slideshow_metadata_overlay_mode_description_only": "Description only", + "slideshow_metadata_overlay_mode_full": "Full", "slideshow_repeat": "Repeat slideshow", "slideshow_repeat_description": "Loop back to beginning when slideshow ends", "slideshow_settings": "Slideshow settings", diff --git a/web/src/lib/components/asset-viewer/AssetViewer.svelte b/web/src/lib/components/asset-viewer/AssetViewer.svelte index de6e96fa72..e2b53c8ef1 100644 --- a/web/src/lib/components/asset-viewer/AssetViewer.svelte +++ b/web/src/lib/components/asset-viewer/AssetViewer.svelte @@ -49,6 +49,7 @@ import OcrButton from './OcrButton.svelte'; import PhotoViewer from './PhotoViewer.svelte'; import SlideshowBar from './SlideshowBar.svelte'; + import SlideshowMetadataOverlay from './SlideshowMetadataOverlay.svelte'; import VideoViewer from './VideoWrapperViewer.svelte'; export type AssetCursor = { @@ -588,6 +589,10 @@ {/if} + + {#if $slideshowState !== SlideshowState.None} + + {/if} {#if $slideshowState === SlideshowState.None && showNavigation && !assetViewerManager.isShowEditor && !assetViewerManager.isFaceEditMode && nextAsset} diff --git a/web/src/lib/components/asset-viewer/SlideshowMetadataOverlay.svelte b/web/src/lib/components/asset-viewer/SlideshowMetadataOverlay.svelte new file mode 100644 index 0000000000..e1865e2c14 --- /dev/null +++ b/web/src/lib/components/asset-viewer/SlideshowMetadataOverlay.svelte @@ -0,0 +1,65 @@ + + +{#if shouldShow} +
+
+
+ {#if description} + {description} + {/if} + {#if $slideshowMetadataOverlayMode !== SlideshowMetadataOverlayMode.DescriptionOnly} +
+ {#if dateString} + {dateString} + {/if} + {#if locationString} + {locationString} + {/if} +
+ {/if} +
+
+
+{/if} diff --git a/web/src/lib/components/shared-components/settings/SettingDropdown.svelte b/web/src/lib/components/shared-components/settings/SettingDropdown.svelte index e65cf8e479..872bf688ce 100644 --- a/web/src/lib/components/shared-components/settings/SettingDropdown.svelte +++ b/web/src/lib/components/shared-components/settings/SettingDropdown.svelte @@ -11,6 +11,7 @@ options: RenderedOption[]; selectedOption: RenderedOption; isEdited?: boolean; + disabled?: boolean; onToggle: (option: RenderedOption) => void; children?: Snippet; } @@ -21,12 +22,13 @@ options, selectedOption = $bindable(), isEdited = false, + disabled = false, onToggle, children, }: Props = $props(); -
+