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
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: proton-drive-linux 2.1.0\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: 2026-09-23 12:00+0200\n"
"Last-Translator: Proton Drive for Linux contributors\n"
"Language-Team: Italian\n"
@@ -399,7 +399,7 @@ msgstr "Impossibile leggere le attività"
#: 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
@@ -730,7 +730,7 @@ msgstr "Impossibile creare l'album"
#: 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
@@ -1087,7 +1087,7 @@ msgid "Location"
msgstr "Posizione"
#: 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 "Apri con…"
@@ -1125,7 +1125,7 @@ msgid "Versions…"
msgstr "Versioni…"
#: 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 "Dettagli"
@@ -2393,171 +2393,175 @@ msgid "Sign Out"
msgstr "Disconnetti"
#. 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 "Mostra {name}"
#: 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 "Mostra il file RAW"
#: 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 "Mostra il video"
#: 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 "Mostra la foto"
#: 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 "Impossibile visualizzare questa foto."
#: 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 "Impossibile raggiungere Proton Drive."
#: 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 "Lettura dei dettagli della foto…"
#. 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 "Dimensione"
#: 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 "Questa foto non contiene metadati."
#. 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 "{width} × {height}"
#. 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 "Dimensioni"
#. 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 "Scattata"
#. 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 "Fotocamera"
#. 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 "Obiettivo"
#. 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 "ISO {value}"
#. 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 "Esposizione"
#. 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 "Luogo"
#: 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 "{latitude}, {longitude}"
#: 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 "Salva una copia"
#. 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 "“{name}” salvato"
#: 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 "Impossibile salvare la copia"
#: 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 "La copia è stata interrotta."
#: 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 "{position} di {total}"
#: 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 "{position} di {loaded}+"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:877
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:981
msgid "Photo"
msgstr "Foto"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:924
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1028
msgid "Previous (←)"
msgstr "Precedente (←)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:938
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1042
msgid "Next (→)"
msgstr "Successiva (→)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:976
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1080
msgid "Details (i)"
msgstr "Dettagli (i)"
#. 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 "Aggiungi ai preferiti"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1097
msgid "Slideshow (F5)"
msgstr "Presentazione (F5)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1105
msgid "Other files of this photo"
msgstr "Altri file di questa foto"
#: 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 "Salva una copia…"
#: 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 "Sposta nel cestino (Canc)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:999
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1111
msgid "Close (Esc)"
msgstr "Chiudi (Esc)"
#: 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 "Mostra sulla mappa"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1040
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1153
msgid "Hide details"
msgstr "Nascondi dettagli"
#: 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"