Skip to content
Commits on Source (24)
Version 47.beta
---------------
Bug fixes and improvements:
!163, desktop: Add jpeg-xl to MimeType list (Jeremy Bícha)
!164, EogWindow: Raise priority of image loading and transformation jobs
(Felix Riemann)
!165, EogMetadataDetails: Support copying metadata values to
the clipboard (Felix Riemann)
Version 45.4
------------
Bug fixes and improvements:
!151, Regenerate thumbnails on save (Roberto Vidal, Felix Riemann)
!161, Use "fast" content type as fallback if normal content type
is unavailable (Felix Riemann)
* docs: Replace dead links to developer-old.gnome.org (Andre Klapper)
New and updated translations:
- Jean-Marc Tissières [fr]
- Scrambled777 [hi]
- Sabri Ünal [tr]
Version 45.3
------------
......
......@@ -38,11 +38,13 @@
<kudo>UserDocs</kudo>
</kudos>
<releases>
<release version="45.3" date="2024-03-16">
<release version="47.beta" date="2024-08-03" type="development" />
<release version="45.4" date="2024-08-01">
<description>
<p>Eye of GNOME 45.2 is the latest stable version of Eye of GNOME, and contains all translation updates since release 45.2.</p>
<p>Eye of GNOME 45.4 is the latest stable version of Eye of GNOME, and contains all translation updates since release 45.3.</p>
</description>
</release>
<release version="45.3" date="2024-03-16" />
<release version="45.2" date="2024-01-06" />
<release version="45.1" date="2023-10-21" />
<release version="45.0" date="2023-09-17" />
......
......@@ -11,7 +11,7 @@ Terminal=false
Type=Application
Categories=GNOME;GTK;Graphics;2DGraphics;RasterGraphics;Viewer;
X-GNOME-DocPath=eog/eog.xml
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/webp;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;image/x-icns;
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/jxl;image/pjpeg;image/png;image/tiff;image/webp;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;image/x-icns;
# Extra keywords that can be used to search for eog in GNOME Shell and Unity
# TRANSLATORS: Search terms to find this application.
# Do NOT translate or localize the semicolons!
......
......@@ -43,7 +43,7 @@ search_index = true
[dependencies."Peas-1.0"]
name = "Libpeas"
description = "A GObject based plugin engine"
docs_url = "https://developer-old.gnome.org/libpeas/stable/"
docs_url = "https://gitlab.gnome.org/GNOME/libpeas/"
[theme]
name = "basic"
......
......@@ -9,5 +9,5 @@ baseURLs = [
[ 'GLib', 'https://docs.gtk.org/glib/' ],
[ 'GObject', 'https://docs.gtk.org/gobject/' ],
[ 'Gtk', 'https://docs.gtk.org/gtk3/' ],
[ 'Libpeas', 'https://developer-old.gnome.org/libpeas/stable/' ],
[ 'Libpeas', 'https://gitlab.gnome.org/GNOME/libpeas/' ],
]
project(
'eog', 'c',
version: '45.3',
version: '47.beta',
license: 'GPL2+',
default_options: 'buildtype=debugoptimized',
meson_version: '>= 0.58.0',
......
......@@ -92,7 +92,7 @@
{
"type" : "git",
"url" : "https://gitlab.freedesktop.org/libopenraw/exempi.git",
"tag" : "2.6.4"
"tag" : "2.6.5"
}
]
},
......@@ -106,7 +106,7 @@
{
"type" : "git",
"url" : "https://github.com/aruiz/webp-pixbuf-loader.git",
"tag" : "0.2.4"
"tag" : "0.2.7"
}
]
},
......@@ -143,8 +143,7 @@
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/eog-plugins.git",
"branch" : "gnome-42"
"url" : "https://gitlab.gnome.org/GNOME/eog-plugins.git"
}
]
}
......
......@@ -21,25 +21,26 @@
# Claude Paroz <claude@2xlibre.net>, 2007-2020.
# Thibault Martin <mail@thibaultmart.in>, 2020.
# Charles Monzat <charles.monzat@free.fr>, 2017-2022.
# Jean-Marc Tissières <jmetissieres@gmail.com>, 2024.
#
msgid ""
msgstr ""
"Project-Id-Version: eog HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/eog/issues\n"
"POT-Creation-Date: 2023-02-11 11:53+0000\n"
"PO-Revision-Date: 2023-03-03 19:06+0100\n"
"Last-Translator: Irénée Thirion <irenee.thirion@e.email>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/eog/issues/\n"
"POT-Creation-Date: 2024-03-10 09:49+0000\n"
"PO-Revision-Date: 2024-03-14 18:43+0100\n"
"Last-Translator: Jean-Marc Tissières <jmetissieres@gmail.com>\n"
"Language-Team: French - France <gnomefr@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.2.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 45.3\n"
#: data/eog.appdata.xml.in:6 data/org.gnome.eog.desktop.in.in:3
#: src/eog-application.c:338 src/eog-window.c:5538
msgid "Image Viewer"
#: src/eog-application.c:338 src/eog-window.c:5544 src/main.c:56
msgid "Eye of GNOME"
msgstr "Visionneur d’images"
# Utilisation de l'infinitif sur les infobulles du Bureau
......@@ -49,26 +50,25 @@ msgstr "Parcourir et pivoter les images"
#: data/eog.appdata.xml.in:9
msgid ""
"Image Viewer is the official image viewer for the GNOME desktop. It "
"Eye of GNOME is an image viewer designed for the GNOME desktop. It "
"integrates with the GTK look and feel of GNOME, and supports many image "
"formats for viewing single images or images in a collection."
msgstr ""
"Visionneur d’images est le visionneur d’images officiel du bureau GNOME. Il "
"s’intègre à l’aspect visuel GTK de GNOME et prend en charge de nombreux "
"Visionneur d’images est un visionneur d’images conçu pour le bureau GNOME. "
"Il s’intègre à l’aspect visuel GTK de GNOME et prend en charge de nombreux "
"formats d’image pour afficher des images isolées ou groupées dans des "
"collections."
#: data/eog.appdata.xml.in:14
msgid ""
"Image Viewer also allows to view the images in a fullscreen slideshow mode "
"or set an image as the desktop wallpaper. It reads the camera tags to "
"automatically rotate your images in the correct portrait or landscape "
"orientation."
"It also allows to view the images in a fullscreen slideshow mode or set an "
"image as the desktop wallpaper. It reads the camera tags to automatically "
"rotate your images in the correct portrait or landscape orientation."
msgstr ""
"Visionneur d’images permet également d’afficher les images dans un mode "
"diaporama en plein écran ou de définir une image comme fond d’écran. Il sait "
"lire les balises des appareils photo pour pivoter automatiquement les images "
"dans la bonne orientation (portrait ou paysage)."
"Il permet également d’afficher les images dans un mode diaporama en plein "
"écran ou de définir une image comme fond d’écran. Il sait lire les balises "
"des appareils photo pour pivoter automatiquement les images dans la bonne "
"orientation (portrait ou paysage)."
#: data/eog-gear-menu.ui:6
msgid "_Open…"
......@@ -137,7 +137,7 @@ msgid "_Help"
msgstr "Aid_e"
#: data/eog-gear-menu.ui:83
msgid "_About Image Viewer"
msgid "_About Eye of GNOME"
msgstr "À _propos de Visionneur d’images"
#: data/eog-details-dialog.ui:9
......@@ -203,8 +203,8 @@ msgstr "Aperçu du nom de fichier"
#: data/eog-multiple-save-as-dialog.ui:388
#: src/eog-close-confirmation-dialog.c:172 src/eog-error-message-area.c:125
#: src/eog-file-chooser.c:453 src/eog-file-chooser.c:461
#: src/eog-file-chooser.c:469 src/eog-window.c:3328 src/eog-window.c:3331
#: src/eog-window.c:3563
#: src/eog-file-chooser.c:469 src/eog-window.c:3331 src/eog-window.c:3334
#: src/eog-window.c:3566
msgid "_Cancel"
msgstr "A_nnuler"
......@@ -889,7 +889,7 @@ msgid ""
"the trash. It will still ask if any of the files cannot be moved to the "
"trash and would be deleted instead."
msgstr ""
"Si activé, Eye of GNOME ne demande pas de confirmation lorsque les images "
"Si activé, Visionneur d’images ne demande pas de confirmation lorsque les images "
"sont mises à la corbeille. Il demande toujours si un fichier ne peut être "
"mis à la corbeille et devrait donc être directement supprimé."
......@@ -936,7 +936,7 @@ msgstr "Ouvrir _avec…"
msgid "_Copy"
msgstr "_Copier"
#: data/popup-menus.ui:34 src/eog-window.c:3566
#: data/popup-menus.ui:34 src/eog-window.c:3569
msgid "Move to _Trash"
msgstr "Mettre à la _corbeille"
......@@ -1019,7 +1019,7 @@ msgstr "Sél_ectionnez les images que vous souhaitez enregistrer :"
msgid "If you don’t save, all your changes will be lost."
msgstr "Si vous n’enregistrez pas, toutes vos modifications seront perdues."
#: src/eog-error-message-area.c:130 src/eog-window.c:937
#: src/eog-error-message-area.c:130 src/eog-window.c:940
msgid "_Reload"
msgstr "_Recharger"
......@@ -1048,7 +1048,7 @@ msgstr "Les emplacements indiqués ne contiennent pas d’images."
#: src/eog-error-message-area.c:354
msgid ""
"This image contains multiple pages. Image Viewer displays only the first "
"This image contains multiple pages. Eye of GNOME displays only the first "
"page.\n"
"Do you want to open the image with the Document Viewer to see all pages?"
msgstr ""
......@@ -1059,7 +1059,7 @@ msgstr ""
#: src/eog-error-message-area.c:359
msgid ""
"This image contains multiple pages. Image Viewer displays only the first "
"This image contains multiple pages. Eye of GNOME displays only the first "
"page.\n"
"You may want to install the Document Viewer to see all pages."
msgstr ""
......@@ -1088,11 +1088,10 @@ msgstr "Le format de fichier est inconnu ou non pris en charge"
#: src/eog-file-chooser.c:125
msgid ""
"Image Viewer could not determine a supported writable file format based on "
"the filename."
"Could not determine a supported writable file format based on the filename."
msgstr ""
"Le visionneur d’images n’a pu trouver un format de fichier avec prise en "
"charge de l’écriture d’après le nom de fichier."
"Impossible de trouver un format de fichier avec prise en charge de "
"l’écriture d’après le nom de fichier."
#: src/eog-file-chooser.c:126
msgid "Please try a different file extension like .png or .jpg."
......@@ -1145,23 +1144,23 @@ msgstr "La transformation a échoué."
msgid "EXIF not supported for this file format."
msgstr "EXIF n’est pas pris en charge dans ce format de fichier."
#: src/eog-image.c:1281
#: src/eog-image.c:1282
#, c-format
msgid "Image loading failed."
msgstr "Le chargement de l’image a échoué."
#: src/eog-image.c:1870 src/eog-image.c:1990
#: src/eog-image.c:1871 src/eog-image.c:1991
#, c-format
msgid "No image loaded."
msgstr "Aucune image chargée."
#: src/eog-image.c:1878 src/eog-image.c:1999
#: src/eog-image.c:1879 src/eog-image.c:2000
#, c-format
msgid "You do not have the permissions necessary to save the file."
msgstr ""
"Vous n’avez pas les permissions nécessaires pour enregistrer le fichier."
#: src/eog-image.c:1888 src/eog-image.c:2010
#: src/eog-image.c:1889 src/eog-image.c:2011
#, c-format
msgid "Temporary file creation failed."
msgstr "Impossible de créer le fichier temporaire."
......@@ -1377,8 +1376,8 @@ msgid "At least two file names are equal."
msgstr "Au moins deux noms de fichiers sont identiques."
#: src/eog-util.c:72
msgid "Could not display help for Image Viewer"
msgstr "Impossible d’afficher l’aide du visionneur d’images"
msgid "Could not display help for Eye of GNOME"
msgstr "Impossible d’afficher l’aide de Visionneur d’images"
#: src/eog-util.c:474
#, c-format
......@@ -1393,19 +1392,19 @@ msgstr[1] "%i × %i pixels"
#. * - image height
#. * - image size in bytes
#. * - zoom in percent
#: src/eog-window.c:548
#: src/eog-window.c:551
#, c-format
msgid "%i × %i pixel %s %i%%"
msgid_plural "%i × %i pixels %s %i%%"
msgstr[0] "%i × %i pixel %s %i %%"
msgstr[1] "%i × %i pixels %s %i %%"
#: src/eog-window.c:939 src/eog-window.c:2725
#: src/eog-window.c:942 src/eog-window.c:2728
msgctxt "MessageArea"
msgid "Hi_de"
msgstr "_Masquer"
#: src/eog-window.c:947
#: src/eog-window.c:950
#, c-format
msgid ""
"The image “%s” has been modified by an external application. Would you like "
......@@ -1419,22 +1418,22 @@ msgstr ""
#. * - the original filename
#. * - the current image's position in the queue
#. * - the total number of images queued for saving
#: src/eog-window.c:1201
#: src/eog-window.c:1204
#, c-format
msgid "Saving image “%s” (%u/%u)"
msgstr "Enregistrement de l’image « %s » (%u/%u)"
#: src/eog-window.c:1631
#: src/eog-window.c:1634
#, c-format
msgid "Opening image “%s”"
msgstr "Ouverture de l’image « %s »"
#. L10N: This the reason why the screensaver is inhibited.
#: src/eog-window.c:2031
#: src/eog-window.c:2034
msgid "Viewing a slideshow"
msgstr "Visionnage d’un diaporama en cours"
#: src/eog-window.c:2252
#: src/eog-window.c:2255
#, c-format
msgid ""
"Error printing file:\n"
......@@ -1443,15 +1442,15 @@ msgstr ""
"Erreur lors de l’impression du fichier :\n"
"%s"
#: src/eog-window.c:2673 src/eog-window.c:2688
#: src/eog-window.c:2676 src/eog-window.c:2691
msgid "Error launching System Settings: "
msgstr "Erreur de lancement des paramètres du système : "
#: src/eog-window.c:2723
#: src/eog-window.c:2726
msgid "_Open Background Preferences"
msgstr "_Ouvrir les préférences d’arrière-plan"
#: src/eog-window.c:2737
#: src/eog-window.c:2740
#, c-format
msgid ""
"The image “%s” has been set as Desktop Background. Would you like to modify "
......@@ -1460,11 +1459,11 @@ msgstr ""
"L’image « %s » a été définie comme arrière-plan du bureau. Souhaitez-vous "
"modifier la manière de l’afficher ?"
#: src/eog-window.c:3223
#: src/eog-window.c:3226
msgid "Saving image locally…"
msgstr "Enregistrement de l’image en local…"
#: src/eog-window.c:3304
#: src/eog-window.c:3307
#, c-format
msgid ""
"Are you sure you want to remove\n"
......@@ -1473,7 +1472,7 @@ msgstr ""
"Voulez-vous vraiment supprimer\n"
"« %s » définitivement ?"
#: src/eog-window.c:3307
#: src/eog-window.c:3310
#, c-format
msgid ""
"Are you sure you want to remove\n"
......@@ -1488,41 +1487,41 @@ msgstr[1] ""
"Voulez-vous vraiment supprimer les %d\n"
"images sélectionnées définitivement ?"
#: src/eog-window.c:3329 src/eog-window.c:3574
#: src/eog-window.c:3332 src/eog-window.c:3577
msgid "_Delete"
msgstr "Su_pprimer"
#: src/eog-window.c:3332 src/eog-window.c:3576
#: src/eog-window.c:3335 src/eog-window.c:3579
msgid "_Yes"
msgstr "_Oui"
#. add 'dont ask again' button
#: src/eog-window.c:3336 src/eog-window.c:3568
#: src/eog-window.c:3339 src/eog-window.c:3571
msgid "Do _not ask again during this session"
msgstr "Ne plus _demander pendant cette session"
#: src/eog-window.c:3380
#: src/eog-window.c:3383
#, c-format
msgid "Couldn’t retrieve image file"
msgstr "Impossible de retrouver le fichier image"
#: src/eog-window.c:3396
#: src/eog-window.c:3399
#, c-format
msgid "Couldn’t retrieve image file information"
msgstr "Impossible de retrouver les informations du fichier image"
#: src/eog-window.c:3412 src/eog-window.c:3635
#: src/eog-window.c:3415 src/eog-window.c:3638
#, c-format
msgid "Couldn’t delete file"
msgstr "Impossible de supprimer le fichier"
#. set dialog error message
#: src/eog-window.c:3457 src/eog-window.c:3731
#: src/eog-window.c:3460 src/eog-window.c:3734
#, c-format
msgid "Error on deleting image %s"
msgstr "Erreur lors de la suppression de l’image %s"
#: src/eog-window.c:3536
#: src/eog-window.c:3539
#, c-format
msgid ""
"Are you sure you want to move\n"
......@@ -1531,7 +1530,7 @@ msgstr ""
"Voulez-vous vraiment mettre\n"
"« %s » à la corbeille ?"
#: src/eog-window.c:3539
#: src/eog-window.c:3542
#, c-format
msgid ""
"A trash for “%s” couldn’t be found. Do you want to remove this image "
......@@ -1540,7 +1539,7 @@ msgstr ""
"Impossible de trouver une corbeille pour « %s ». Voulez-vous supprimer "
"définitivement cette image ?"
#: src/eog-window.c:3544
#: src/eog-window.c:3547
#, c-format
msgid ""
"Are you sure you want to move\n"
......@@ -1555,7 +1554,7 @@ msgstr[1] ""
"Voulez-vous vraiment mettre les %d\n"
"images sélectionnées à la corbeille ?"
#: src/eog-window.c:3549
#: src/eog-window.c:3552
msgid ""
"Some of the selected images can’t be moved to the trash and will be removed "
"permanently. Are you sure you want to proceed?"
......@@ -1563,24 +1562,24 @@ msgstr ""
"Certaines des images sélectionnées ne peuvent pas être mises à la corbeille "
"et vont être définitivement supprimées. Voulez-vous vraiment continuer ?"
#: src/eog-window.c:3613 src/eog-window.c:3627
#: src/eog-window.c:3616 src/eog-window.c:3630
#, c-format
msgid "Couldn’t access trash."
msgstr "Impossible d’accéder à la corbeille."
#: src/eog-window.c:4342
#: src/eog-window.c:4345
msgid "Show the current image in fullscreen mode"
msgstr "Affiche l’image actuelle en mode plein écran"
#: src/eog-window.c:4415
#: src/eog-window.c:4418
msgid "Properties"
msgstr "Propriétés"
#: src/eog-window.c:5541
msgid "The GNOME image viewer."
msgstr "Le visionneur d’images de GNOME."
#: src/eog-window.c:5547
msgid "Image viewer for GNOME"
msgstr "Visionneur d’images pour GNOME"
#: src/eog-window.c:5544
#: src/eog-window.c:5550
msgid "translator-credits"
msgstr ""
"Christophe Merlet <redfox@redfoxcenter.org>\n"
......@@ -1594,7 +1593,7 @@ msgstr ""
"Robert-André Mauchin <zebob.m@pengzone.org>\n"
"Claude Paroz <claude@2xlibre.net>\n"
"Pierre Lemaire <pierre.lemaire@kamick.org>\n"
"Guillaume Bernard <translate@filorin.fr>\n"
"Guillaume Bernard <associations@guillaume-bernard.fr>\n"
"Charles Monzat <charles.monzat@free.fr>"
#. L10N: This is a percentage value used for the image zoom.
......@@ -1604,10 +1603,6 @@ msgstr ""
msgid "%d%%"
msgstr "%d %%"
#: src/main.c:56
msgid "GNOME Image Viewer"
msgstr "Visionneur d’images de GNOME"
#: src/main.c:63
msgid "Open in fullscreen mode"
msgstr "Ouvrir en mode plein écran"
......@@ -1647,15 +1642,21 @@ msgstr ""
"Lancez « %s --help » pour voir la liste complète des options disponibles en "
"ligne de commande."
#~ msgid "_About Image Viewer"
#~ msgstr "À _propos de Visionneur d’images"
#~ msgid "The GNOME image viewer."
#~ msgstr "Le visionneur d’images de GNOME."
#~ msgid "GNOME Image Viewer"
#~ msgstr "Visionneur d’images de GNOME"
#~ msgid " (invalid Unicode)"
#~ msgstr " (Unicode non valide)"
#~ msgid "Shrink or enlarge the current image"
#~ msgstr "Réduit ou agrandit l’image actuelle"
#~ msgid "Eye of GNOME"
#~ msgstr "Eye of GNOME"
#~ msgid "Image Properties"
#~ msgstr "Propriétés de l’image"
......
This diff is collapsed.
......@@ -21,17 +21,17 @@
msgid ""
msgstr ""
"Project-Id-Version: eog\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/eog/issues\n"
"POT-Creation-Date: 2023-08-18 18:05+0000\n"
"PO-Revision-Date: 2023-10-17 01:20+0300\n"
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/eog/issues/\n"
"POT-Creation-Date: 2024-02-11 15:04+0000\n"
"PO-Revision-Date: 2024-03-25 17:19+0300\n"
"Last-Translator: Sabri Ünal <yakushabb@gmail.com>\n"
"Language-Team: Türkçe <takim@gnome.org.tr>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.4\n"
"X-Generator: Poedit 3.4.2\n"
"X-Poedit-SourceCharset: utf-8\n"
#: data/eog.appdata.xml.in:6 data/org.gnome.eog.desktop.in.in:3
......@@ -246,7 +246,7 @@ msgstr "Saydam Kısımlar"
#: data/eog-preferences-dialog.ui:257
msgid "As check _pattern"
msgstr "Satranç tahtası _deseni olarak"
msgstr "Satranç tahtası örü_ntüsü olarak"
#: data/eog-preferences-dialog.ui:278
msgid "As custom c_olor:"
......
......@@ -328,7 +328,8 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
G_FILE_ATTRIBUTE_TIME_MODIFIED ","
G_FILE_ATTRIBUTE_STANDARD_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_SIZE ","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
g_object_unref (file);
......@@ -347,7 +348,7 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
/* read files smaller than 100kb directly */
gchar *mime_type = g_content_type_get_mime_type (
g_file_info_get_content_type (file_info));
eog_util_get_content_type_with_fallback (file_info));
if (G_LIKELY (mime_type)) {
......
......@@ -613,7 +613,8 @@ eog_image_get_file_info (EogImage *img,
file_info = g_file_query_info (img->priv->file,
G_FILE_ATTRIBUTE_STANDARD_SIZE ","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, error);
if (file_info == NULL) {
......@@ -626,8 +627,9 @@ eog_image_get_file_info (EogImage *img,
if (bytes)
*bytes = g_file_info_get_size (file_info);
if (mime_type)
*mime_type = g_strdup (g_file_info_get_content_type (file_info));
if (mime_type) {
*mime_type = g_strdup (eog_util_get_content_type_with_fallback (file_info));
}
g_object_unref (file_info);
}
}
......
......@@ -26,6 +26,7 @@
#include "eog-jobs.h"
#include "eog-thumbnail.h"
#include "eog-pixbuf-util.h"
#include "eog-util.h"
#include <gio/gio.h>
......@@ -739,7 +740,9 @@ filter_files (GSList *files, GList **file_list, GList **error_list)
GError *error = NULL;
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_TYPE","G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_TYPE","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, &error);
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED)) {
GMountOperation *operation;
......@@ -767,7 +770,7 @@ filter_files (GSList *files, GList **file_list, GList **error_list)
if (G_UNLIKELY (type == G_FILE_TYPE_UNKNOWN)) {
const gchar *ctype;
ctype = g_file_info_get_content_type (file_info);
ctype = eog_util_get_content_type_with_fallback (file_info);
/* If the content type is supported
adjust the file_type */
......
......@@ -26,6 +26,7 @@
#include "eog-image.h"
#include "eog-job-scheduler.h"
#include "eog-jobs.h"
#include "eog-util.h"
#include <string.h>
......@@ -461,15 +462,17 @@ file_monitor_changed_cb (GFileMonitor *monitor,
EogImage *image;
switch (event) {
case G_FILE_MONITOR_EVENT_MOVED_IN:
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
0, NULL, NULL);
if (file_info == NULL) {
break;
}
mimetype = g_file_info_get_content_type (file_info);
mimetype = eog_util_get_content_type_with_fallback (file_info);
if (is_file_in_list_store_file (store, file, &iter)) {
if (eog_image_is_supported_mime_type (mimetype)) {
......@@ -512,17 +515,17 @@ file_monitor_changed_cb (GFileMonitor *monitor,
g_free (directory);
}
break;
case G_FILE_MONITOR_EVENT_MOVED_IN:
case G_FILE_MONITOR_EVENT_CREATED:
if (!is_file_in_list_store_file (store, file, NULL)) {
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
0, NULL, NULL);
if (file_info == NULL) {
break;
}
mimetype = g_file_info_get_content_type (file_info);
mimetype = eog_util_get_content_type_with_fallback (file_info);
if (eog_image_is_supported_mime_type (mimetype)) {
const gchar *caption;
......@@ -535,12 +538,13 @@ file_monitor_changed_cb (GFileMonitor *monitor,
break;
case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
if (file_info == NULL) {
break;
}
mimetype = g_file_info_get_content_type (file_info);
mimetype = eog_util_get_content_type_with_fallback (file_info);
if (is_file_in_list_store_file (store, file, &iter) &&
eog_image_is_supported_mime_type (mimetype)) {
eog_list_store_thumbnail_refresh (store, &iter);
......@@ -550,12 +554,13 @@ file_monitor_changed_cb (GFileMonitor *monitor,
case G_FILE_MONITOR_EVENT_RENAMED:
file_info = g_file_query_info (other_file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
0, NULL, NULL);
if (file_info == NULL) {
break;
}
mimetype = g_file_info_get_content_type (file_info);
mimetype = eog_util_get_content_type_with_fallback (file_info);
if (is_file_in_list_store_file (store, other_file, &iter)) {
gtk_tree_model_get (GTK_TREE_MODEL (store), &iter,
......@@ -596,7 +601,7 @@ directory_visit (GFile *directory,
gboolean load_uri = FALSE;
const char *mime_type, *name;
mime_type = g_file_info_get_content_type (children_info);
mime_type = eog_util_get_content_type_with_fallback (children_info);
name = g_file_info_get_name (children_info);
if (!g_str_has_prefix (name, ".")) {
......@@ -638,6 +643,7 @@ eog_list_store_append_directory (EogListStore *store,
file_enumerator = g_file_enumerate_children (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME ","
G_FILE_ATTRIBUTE_STANDARD_NAME,
0, NULL, NULL);
......@@ -690,6 +696,7 @@ eog_list_store_add_files (EogListStore *store, GList *file_list)
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_TYPE","
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
0, NULL, NULL);
if (file_info == NULL) {
......@@ -703,7 +710,7 @@ eog_list_store_add_files (EogListStore *store, GList *file_list)
if (G_UNLIKELY (file_type == G_FILE_TYPE_UNKNOWN)) {
const gchar *ctype;
ctype = g_file_info_get_content_type (file_info);
ctype = eog_util_get_content_type_with_fallback (file_info);
/* If the content type is supported adjust file_type */
if (eog_image_is_supported_mime_type (ctype))
......
......@@ -194,6 +194,13 @@ static ExifTagCategory exif_tag_category_map[] = {
#define MODEL_COLUMN_ATTRIBUTE 0
#define MODEL_COLUMN_VALUE 1
enum {
SIGNAL_COPY_VALUE_TO_CLIPBOARD,
SIGNAL_LAST
};
static gint signals[SIGNAL_LAST];
struct _EogMetadataDetailsPrivate {
GtkTreeModel *model;
......@@ -207,6 +214,25 @@ static void eog_metadata_details_reset (EogMetadataDetails *details);
G_DEFINE_TYPE_WITH_PRIVATE (EogMetadataDetails, eog_metadata_details, GTK_TYPE_TREE_VIEW)
static void
eog_metadata_details_copy_value_to_clipboard (EogMetadataDetails *details)
{
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (details));
GtkTreeIter iter;
if (gtk_tree_selection_get_selected (selection, NULL, &iter)) {
gchar *value = NULL;
gtk_tree_model_get (details->priv->model, &iter,
MODEL_COLUMN_VALUE, &value, -1);
if (value) {
GtkClipboard *clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
gtk_clipboard_set_text (clipboard, value, -1);
g_free (value);
}
}
}
static void
eog_metadata_details_dispose (GObject *object)
{
......@@ -270,8 +296,23 @@ static void
eog_metadata_details_class_init (EogMetadataDetailsClass *klass)
{
GObjectClass *object_class = (GObjectClass*) klass;
GtkBindingSet *binding_set;
object_class->dispose = eog_metadata_details_dispose;
signals[SIGNAL_COPY_VALUE_TO_CLIPBOARD] =
g_signal_new_class_handler ("copy-value-to-clipboard",
EOG_TYPE_METADATA_DETAILS,
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
G_CALLBACK (eog_metadata_details_copy_value_to_clipboard),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
binding_set = gtk_binding_set_by_class (klass);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_c, GDK_CONTROL_MASK,
"copy-value-to-clipboard", 0);
}
#ifdef HAVE_EXIF
......
......@@ -152,14 +152,15 @@ eog_metadata_sidebar_update_general_section (EogMetadataSidebar *sidebar)
file = eog_image_get_file (img);
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
if (file_info == NULL) {
str = g_strdup (_("Unknown"));
} else {
const gchar *mime_str;
mime_str = g_file_info_get_content_type (file_info);
mime_str = eog_util_get_content_type_with_fallback (file_info);
str = g_content_type_get_description (mime_str);
g_object_unref (file_info);
}
......
......@@ -351,12 +351,13 @@ eog_remote_presenter_update (EogRemotePresenter *remote_presenter,
file = eog_image_get_file (image);
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
if (file_info == NULL) {
type_str = g_strdup (_("Unknown"));
} else {
mime_str = g_file_info_get_content_type (file_info);
mime_str = eog_util_get_content_type_with_fallback (file_info);
type_str = g_content_type_get_description (mime_str);
g_object_unref (file_info);
}
......
......@@ -499,7 +499,8 @@ thumbview_get_tooltip_string (EogImage *image)
file = eog_image_get_file (image);
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
0, NULL, NULL);
g_object_unref (file);
if (file_info == NULL) {
......@@ -507,7 +508,7 @@ thumbview_get_tooltip_string (EogImage *image)
return NULL;
}
mime_str = g_file_info_get_content_type (file_info);
mime_str = eog_util_get_content_type_with_fallback (file_info);
if (G_UNLIKELY (mime_str == NULL)) {
g_free (bytes);
......
......@@ -36,6 +36,7 @@
#include "eog-thumbnail.h"
#include "eog-list-store.h"
#include "eog-debug.h"
#include "eog-util.h"
#define EOG_THUMB_ERROR eog_thumb_error_quark ()
......@@ -152,6 +153,7 @@ eog_thumb_data_new (GFile *file, GError **error)
file_info = g_file_query_info (file,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE ","
G_FILE_ATTRIBUTE_TIME_MODIFIED ","
G_FILE_ATTRIBUTE_THUMBNAIL_PATH ","
G_FILE_ATTRIBUTE_THUMBNAILING_FAILED ","
......@@ -167,7 +169,7 @@ eog_thumb_data_new (GFile *file, GError **error)
/* if available, copy data */
data->mtime = g_file_info_get_attribute_uint64 (file_info,
G_FILE_ATTRIBUTE_TIME_MODIFIED);
data->mime_type = g_strdup (g_file_info_get_content_type (file_info));
data->mime_type = g_strdup (eog_util_get_content_type_with_fallback (file_info));
data->failed_thumb_exists = g_file_info_get_attribute_boolean (file_info,
G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
......
......@@ -475,6 +475,24 @@ eog_util_create_width_height_string (gint width, gint height)
width, height);
}
const char*
eog_util_get_content_type_with_fallback (GFileInfo *file_info)
{
g_return_val_if_fail (file_info != NULL, NULL);
if (g_file_info_has_attribute (file_info,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE))
return g_file_info_get_content_type (file_info);
else if (g_file_info_has_attribute (file_info,
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE))
return g_file_info_get_attribute_string (file_info,
G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE);
else
g_warn_if_reached ();
return NULL;
}
/* Portal */
......