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: French\n"
@@ -402,7 +402,7 @@ msgstr "Impossible de lire l’activité"
#: 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
@@ -733,7 +733,7 @@ msgstr "Impossible de créer 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
@@ -1090,7 +1090,7 @@ msgid "Location"
msgstr "Emplacement"
#: 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 "Ouvrir avec…"
@@ -1128,7 +1128,7 @@ msgid "Versions…"
msgstr "Versions…"
#: 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 "Détails"
@@ -2395,171 +2395,175 @@ msgid "Sign Out"
msgstr "Se déconnecter"
#. 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 "Afficher {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 "Afficher le fichier 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 "Afficher la vidéo"
#: 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 "Afficher la photo"
#: 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 "Impossible d’afficher cette photo."
#: 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 "Impossible de joindre 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 "Lecture des détails de la photo…"
#. 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 "Taille"
#: 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 "Cette photo ne contient aucune métadonnée."
#. 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 "Dimensions"
#. 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 "Prise de vue"
#. 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 "Appareil photo"
#. 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 "Objectif"
#. 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 "Exposition"
#. 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 "Lieu"
#: 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 "Enregistrer une copie"
#. 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} » enregistré"
#: 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 "Impossible d’enregistrer la copie"
#: 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 copie a été interrompue."
#: 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} sur {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} sur {loaded}+"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:877
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:981
msgid "Photo"
msgstr "Photo"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:924
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1028
msgid "Previous (←)"
msgstr "Précédente (←)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:938
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1042
msgid "Next (→)"
msgstr "Suivante (→)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:976
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1080
msgid "Details (i)"
msgstr "Détails (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 "Ajouter aux favoris"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:993
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1097
msgid "Slideshow (F5)"
msgstr "Diaporama (F5)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1105
msgid "Other files of this photo"
msgstr "Autres fichiers de cette photo"
#: 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 "Enregistrer une copie…"
#: 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 "Mettre à la corbeille (Suppr)"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:999
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1111
msgid "Close (Esc)"
msgstr "Fermer (Échap)"
#: 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 "Afficher sur la carte"
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1040
#: crates/pdfs-gui/src/app/pages/photo_viewer.rs:1153
msgid "Hide details"
msgstr "Masquer les détails"
#: 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"