feat(gui): slideshow in the photo viewer

A new top-bar button, or F5, plays the loaded photos as a slideshow: it goes
fullscreen, hides the controls and moves on every five seconds. A video plays
to its end first, and the slideshow waits for each photo to load before it
starts counting. Stepping by hand restarts the count. Escape stops the
slideshow instead of closing the viewer, and fullscreen is left only if the
slideshow entered it. The slideshow ends on the last photo of the timeline.
This commit is contained in:
nvrl committed 2026-09-28 02:12:58 +02:00
1 parent b47e6c91a0
commit 557eeb5f1d
10 files changed
+557 -387

No files matched your search

+47 -43
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.2.2\n"
"Report-Msgid-Bugs-To: https://github.com/narrrl/proton-drive-linux/issues\n"
"POT-Creation-Date: 2026-09-28 00:13+0200\n"
"POT-Creation-Date: 2026-09-28 00:14+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -387,7 +387,7 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/activity.rs:275
#: crates/pdfs-gui/src/app/pages/browser.rs:2880
#: crates/pdfs-gui/src/app/pages/browser.rs:3066
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:292
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:310
#: crates/pdfs-gui/src/app/pages/photos.rs:3077
#: crates/pdfs-gui/src/app/pages/shared_by_me.rs:139
#: crates/pdfs-gui/src/app/pages/trash.rs:320
@@ -712,7 +712,7 @@ msgstr ""
#: crates/pdfs-gui/src/app/pages/locations.rs:739
#: crates/pdfs-gui/src/app/pages/locations.rs:1090
#: crates/pdfs-gui/src/app/pages/locations.rs:1109
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1297
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1424
#: crates/pdfs-gui/src/app/pages/photos.rs:1234
#: crates/pdfs-gui/src/app/pages/photos.rs:1947
#: crates/pdfs-gui/src/app/pages/photos.rs:2912
@@ -1067,7 +1067,7 @@ msgid "Location"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:1256
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:998
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1110
msgid "Open With…"
msgstr ""
@@ -1105,7 +1105,7 @@ msgid "Versions…"
msgstr ""
#: crates/pdfs-gui/src/app/pages/browser.rs:1302
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1032
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1145
msgid "Details"
msgstr ""
@@ -2289,171 +2289,175 @@ msgid "Sign Out"
msgstr ""
#. Translators: tooltip of the button that switches to another file of the same photo; {name} is a file name.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:182
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:194
#, rust-format
msgid "Show {name}"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:185
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:197
msgid "Show the raw file"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:186
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:198
msgid "Show the video"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:187
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:199
msgid "Show the photo"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:288
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:306
msgid "Couldn't render this photo."
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:293
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:311
msgid "Couldn't reach Proton Drive."
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:345
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:449
msgid "Reading photo details…"
msgstr ""
#. Translators: label of a photo's file size in the details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:362
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:466
msgctxt "property"
msgid "Size"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:368
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
msgid "This photo carries no metadata."
msgstr ""
#. Translators: a photo's pixel dimensions, such as "4032 × 3024".
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:441
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:545
#, rust-format
msgid "{width} × {height}"
msgstr ""
#. Translators: label of a photo's pixel dimensions in the details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:444
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:548
msgid "Dimensions"
msgstr ""
#. Translators: label of when a photo was taken, in the details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:448
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:552
msgctxt "photo property"
msgid "Taken"
msgstr ""
#. Translators: label of the camera model in a photo's details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:453
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:557
msgid "Camera"
msgstr ""
#. Translators: label of the lens model in a photo's details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:457
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:561
msgid "Lens"
msgstr ""
#. Translators: a photo's ISO sensitivity, such as "ISO 400".
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:472
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:576
#, rust-format
msgid "ISO {value}"
msgstr ""
#. Translators: label of aperture, shutter speed, ISO and focal length in a photo's details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:484
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:588
msgid "Exposure"
msgstr ""
#. Translators: label of where a photo was taken, in the details panel.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:492
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:596
msgctxt "photo property"
msgid "Location"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:495
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:599
#, rust-format
msgid "{latitude}, {longitude}"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:685
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:789
msgid "Save a Copy"
msgstr ""
#. Translators: {name} is the saved file's name.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:706
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:810
#, rust-format
msgid "Saved “{name}”"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:708
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:711
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:812
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:815
msgid "Couldn't save the copy"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:712
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:816
msgid "The copy was interrupted."
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:839
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:844
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:943
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:948
#, rust-format
msgid "{position} of {total}"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:849
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:953
#, rust-format
msgid "{position} of {loaded}+"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:877
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:981
msgid "Photo"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:924
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1028
msgid "Previous (←)"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:938
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1042
msgid "Next (→)"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:976
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1080
msgid "Details (i)"
msgstr ""
#. Translators: tooltip of the star button that marks a photo as a favorite.
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:985
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1089
msgctxt "verb"
msgid "Favorite"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1097
msgid "Slideshow (F5)"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1105
msgid "Other files of this photo"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:996
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1108
msgid "Save a Copy…"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:997
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1109
msgid "Move to Trash (Delete)"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:999
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1111
msgid "Close (Esc)"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1022
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1135
msgid "Show on map"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1040
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1153
msgid "Hide details"
msgstr ""
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1302
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1429
#: crates/pdfs-gui/src/app/pages/photos.rs:2907
#: crates/pdfs-gui/src/app/pages/photos.rs:2911
msgid "Couldn't change the favorite"