Fix #437: Delete to standard Trash directory
authorColin Clark <colin.clark@cclark.uk>
Sat, 3 Nov 2018 17:53:31 +0000 (17:53 +0000)
committerColin Clark <colin.clark@cclark.uk>
Sat, 3 Nov 2018 17:53:31 +0000 (17:53 +0000)
https://github.com/BestImageViewer/geeqie/issues/437

The method of file deletion is changed. The Preferences/Behaviour option
"Safe delete" is removed.

The user has the option to choose Geeqie-defined trash bin or
system-defined trash bin as the normal mode - set in
Preferences/Behaviour.

Menus have two entries: Move to trash and Permanent delete.

The Delete key moves to trash; shift-Delete deletes permanently.

Both Move to trash and Permanent delete have user-selectable
confirmation, set in Preferences/Behaviour.

This means the function of the Delete key is changed from Permanent
delete to Move to trash, which is a fail-safe change.

25 files changed:
doc/docbook/GuideOptionsBehavior.xml
doc/docbook/GuideReferenceKeyboardShortcuts.xml
po/en_GB.po
src/bar_sort.c
src/collect-table.c
src/collect.c
src/dupe.c
src/icons/Makefile.am
src/icons/icon_trash.png [new file with mode: 0644]
src/img-view.c
src/layout_image.c
src/layout_util.c
src/options.c
src/options.h
src/pan-view/pan-view.c
src/pixbuf_util.c
src/pixbuf_util.h
src/preferences.c
src/rcfile.c
src/search.c
src/trash.c
src/utilops.c
src/view_file/view_file.c
web/help/GuideOptionsBehavior.html
web/help/GuideReferenceKeyboardShortcuts.html

index c166c2d..ad04f20 100644 (file)
@@ -7,12 +7,20 @@
     <variablelist>\r
       <varlistentry>\r
         <term>\r
-          <guilabel>Confirm file delete</guilabel>\r
+          <guilabel>Confirm permanent file delete</guilabel>\r
         </term>\r
         <listitem>\r
           <para>Prompts for confirmation before deleting files.</para>\r
         </listitem>\r
       </varlistentry>\r
+      <varlistentry>\r
+        <term>\r
+          <guilabel>Confirm move file to Trash</guilabel>\r
+        </term>\r
+        <listitem>\r
+          <para>Prompts for confirmation before moving files to the trash bin.</para>\r
+        </listitem>\r
+      </varlistentry>\r
       <varlistentry>\r
         <term>\r
           <guilabel>\r
@@ -44,7 +52,7 @@
       </varlistentry>\r
       <varlistentry>\r
         <term>\r
-          <guilabel>Safe Delete</guilabel>\r
+          <guilabel>Use Geeqie trash location</guilabel>\r
         </term>\r
         <listitem>\r
           <para>Moves deleted files to a temporary folder, for easy retrieval of deleted files. Files in the temporary folder are retained until the maximum size is reached, at which point deleting additional files will result in the removal of the oldest files to reclaim the space needed for the new files.</para>\r
           </note>\r
         </listitem>\r
       </varlistentry>\r
+      <varlistentry>\r
+        <term>\r
+          <guilabel>Use system Trash bin</guilabel>\r
+        </term>\r
+        <listitem>\r
+          <para>Moves deleted files to the system-defined trash bin.</para>\r
+        </listitem>\r
+      </varlistentry>\r
       <varlistentry>\r
         <term>\r
           <guilabel>Folder</guilabel>\r
index 00a4159..ee8b6bb 100644 (file)
               </code>\r
             </entry>\r
             <entry />\r
-            <entry>Delete selected images.</entry>\r
+            <entry>Move selected images to trash bin.</entry>\r
+          </row>\r
+          <row>\r
+            <entry>\r
+              <code>\r
+                Shift + Delete\r
+              </code>\r
+            </entry>\r
+            <entry />\r
+            <entry>Permanently delete selected images.</entry>\r
           </row>\r
           <row>\r
             <entry>\r
index 662b4a1..0a4640f 100644 (file)
@@ -7,15 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: geeqie-1.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-06-24 10:14+0100\n"
-"PO-Revision-Date: 2018-07-14 14:54+0100\n"
+"POT-Creation-Date: 2018-11-03 15:19+0000\n"
+"PO-Revision-Date: 2018-11-03 16:09+0000\n"
 "Last-Translator: Colin Clark <colin.clark@cclark.uk>\n"
-"Language-Team: British English <>\n"
+"Language-Team: English <>\n"
 "Language: en_GB\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"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Gtranslator 2.91.7\n"
 
 #: ../geeqie.desktop.in.h:1
@@ -38,6 +38,22 @@ msgstr ""
 msgid "Import GQView metadata"
 msgstr ""
 
+#: ../plugins/export-jpeg/export-jpeg.desktop.in.h:1
+msgid "Export jpeg"
+msgstr ""
+
+#: ../plugins/tethered-photography/tethered-photography.desktop.in.h:1
+msgid "Tethered photography"
+msgstr ""
+
+#: ../plugins/camera-import/camera-import.desktop.in.h:1
+msgid "Camera import"
+msgstr ""
+
+#: ../plugins/image-crop/image-crop.desktop.in.h:1
+msgid "Image crop"
+msgstr ""
+
 #: ../plugins/rotate/rotate.desktop.in.h:1
 msgid "Apply the orientation to image content"
 msgstr ""
@@ -58,13 +74,13 @@ msgstr ""
 msgid "UFRaw Batch recursive"
 msgstr ""
 
-#: ../src/advanced_exif.c:384 ../src/cache_maint.c:1265
-#: ../src/preferences.c:111 ../src/preferences.c:2304 ../src/search.c:2103
-#: ../src/search.c:3242
+#: ../src/advanced_exif.c:384 ../src/cache_maint.c:1266
+#: ../src/preferences.c:118 ../src/preferences.c:2512 ../src/search.c:2193
+#: ../src/search.c:3366
 msgid "Metadata"
 msgstr ""
 
-#: ../src/advanced_exif.c:432 ../src/preferences.c:2218
+#: ../src/advanced_exif.c:432 ../src/preferences.c:2426
 msgid "Description"
 msgstr ""
 
@@ -72,9 +88,10 @@ msgstr ""
 msgid "Value"
 msgstr ""
 
-#: ../src/advanced_exif.c:434 ../src/desktop_file.c:535 ../src/dupe.c:2765
-#: ../src/dupe.c:3306 ../src/print.c:3209 ../src/search.c:3325
-#: ../src/utilops.c:505 ../src/view_file/view_file_list.c:2059
+#: ../src/advanced_exif.c:434 ../src/desktop_file.c:629 ../src/dupe.c:2784
+#: ../src/dupe.c:3326 ../src/preferences.c:2062 ../src/print.c:414
+#: ../src/search.c:3449 ../src/utilops.c:505
+#: ../src/view_file/view_file_list.c:2070
 msgid "Name"
 msgstr ""
 
@@ -91,68 +108,72 @@ msgid "Elements"
 msgstr ""
 
 #. default sidebar
-#: ../src/bar.c:186
+#: ../src/bar.c:199
 msgid "Histogram"
 msgstr ""
 
-#: ../src/bar.c:187
+#: ../src/bar.c:200
 msgid "Title"
 msgstr ""
 
-#: ../src/bar.c:188 ../src/search.c:3163
+#: ../src/bar.c:201 ../src/preferences.c:2897 ../src/search.c:3286
 msgid "Keywords"
 msgstr ""
 
-#: ../src/bar.c:189 ../src/search.c:3175
+#: ../src/bar.c:202 ../src/search.c:3298
 msgid "Comment"
 msgstr ""
 
-#: ../src/bar.c:190
+#: ../src/bar.c:203
 msgid "Rating"
 msgstr ""
 
-#: ../src/bar.c:191
+#: ../src/bar.c:204
+msgid "Headline"
+msgstr ""
+
+#: ../src/bar.c:205
 msgid "Exif"
 msgstr ""
 
 #. other pre-configured panes
-#: ../src/bar.c:193
+#: ../src/bar.c:207
 msgid "File info"
 msgstr ""
 
-#: ../src/bar.c:194
+#: ../src/bar.c:208
 msgid "Location and GPS"
 msgstr ""
 
-#: ../src/bar.c:195 ../src/exif.c:342
+#: ../src/bar.c:209 ../src/exif.c:342
 msgid "Copyright"
 msgstr ""
 
-#: ../src/bar.c:198 ../src/bar_gps.c:1010
+#: ../src/bar.c:212 ../src/bar_gps.c:1010
 msgid "GPS Map"
 msgstr ""
 
-#: ../src/bar.c:318 ../src/toolbar.c:191
+#: ../src/bar.c:332 ../src/toolbar.c:210
 msgid "Move to _top"
 msgstr ""
 
-#: ../src/bar.c:319 ../src/toolbar.c:192 ../src/ui_bookmark.c:416
+#: ../src/bar.c:333 ../src/toolbar.c:211 ../src/ui_bookmark.c:416
 msgid "Move _up"
 msgstr ""
 
-#: ../src/bar.c:320 ../src/toolbar.c:193 ../src/ui_bookmark.c:418
+#: ../src/bar.c:334 ../src/toolbar.c:212 ../src/ui_bookmark.c:418
 msgid "Move _down"
 msgstr ""
 
-#: ../src/bar.c:321 ../src/toolbar.c:194
+#: ../src/bar.c:335 ../src/toolbar.c:213
 msgid "Move to _bottom"
 msgstr ""
 
-#: ../src/bar.c:323 ../src/toolbar.c:196
+#: ../src/bar.c:337 ../src/toolbar.c:215
 msgid "Remove"
 msgstr ""
 
-#: ../src/bar.c:714
+#: ../src/bar.c:728
 msgid "Add Pane"
 msgstr ""
 
@@ -181,7 +202,7 @@ msgstr ""
 msgid "Key:"
 msgstr ""
 
-#: ../src/bar_exif.c:576 ../src/preferences.c:1872
+#: ../src/bar_exif.c:576 ../src/preferences.c:1886
 msgid "Title:"
 msgstr ""
 
@@ -199,7 +220,7 @@ msgstr ""
 msgid "Configure \"%s\""
 msgstr ""
 
-#: ../src/bar_exif.c:636 ../src/bar_keywords.c:1342
+#: ../src/bar_exif.c:636 ../src/bar_keywords.c:1367
 #, c-format
 msgid "Remove \"%s\""
 msgstr ""
@@ -303,27 +324,27 @@ msgid "Map centering"
 msgstr ""
 
 #. use the same strings as in layout_util.c
-#: ../src/bar_histogram.c:257 ../src/layout_util.c:1961
+#: ../src/bar_histogram.c:257 ../src/layout_util.c:2047
 msgid "Histogram on _Red"
 msgstr ""
 
-#: ../src/bar_histogram.c:258 ../src/layout_util.c:1962
+#: ../src/bar_histogram.c:258 ../src/layout_util.c:2048
 msgid "Histogram on _Green"
 msgstr ""
 
-#: ../src/bar_histogram.c:259 ../src/layout_util.c:1963
+#: ../src/bar_histogram.c:259 ../src/layout_util.c:2049
 msgid "Histogram on _Blue"
 msgstr ""
 
-#: ../src/bar_histogram.c:260 ../src/layout_util.c:1964
+#: ../src/bar_histogram.c:260 ../src/layout_util.c:2050
 msgid "_Histogram on RGB"
 msgstr ""
 
-#: ../src/bar_histogram.c:261 ../src/layout_util.c:1965
+#: ../src/bar_histogram.c:261 ../src/layout_util.c:2051
 msgid "Histogram on _Value"
 msgstr ""
 
-#: ../src/bar_histogram.c:265 ../src/layout_util.c:1969
+#: ../src/bar_histogram.c:265 ../src/layout_util.c:2055
 msgid "Li_near Histogram"
 msgstr ""
 
@@ -331,120 +352,125 @@ msgstr ""
 msgid "L_og Histogram"
 msgstr ""
 
-#: ../src/bar_keywords.c:463
-msgid "Add keywords to selected files"
+#: ../src/bar_keywords.c:488
+msgid "Add selected keywords to selected files"
 msgstr ""
 
-#: ../src/bar_keywords.c:464
-msgid "Replace existing keywords in selected files"
+#: ../src/bar_keywords.c:489
+msgid "Replace existing keywords in selected files with selected keywords"
 msgstr ""
 
-#: ../src/bar_keywords.c:935
+#: ../src/bar_keywords.c:960
 msgid "Edit keyword"
 msgstr ""
 
-#: ../src/bar_keywords.c:935 ../src/bar_keywords.c:942
-#: ../src/bar_keywords.c:1287
+#: ../src/bar_keywords.c:960 ../src/bar_keywords.c:967
+#: ../src/bar_keywords.c:1312
 msgid "New keyword"
 msgstr ""
 
-#: ../src/bar_keywords.c:942
+#: ../src/bar_keywords.c:967
 msgid "Configure keyword"
 msgstr ""
 
-#: ../src/bar_keywords.c:948
+#: ../src/bar_keywords.c:973
 msgid "Keyword:"
 msgstr ""
 
-#: ../src/bar_keywords.c:957
+#: ../src/bar_keywords.c:982
 msgid "Keyword type:"
 msgstr ""
 
-#: ../src/bar_keywords.c:959
+#: ../src/bar_keywords.c:984
 msgid "Active keyword"
 msgstr ""
 
-#: ../src/bar_keywords.c:962
+#: ../src/bar_keywords.c:987
 msgid "Helper"
 msgstr ""
 
-#: ../src/bar_keywords.c:1036
+#: ../src/bar_keywords.c:1061
 msgid "This will disconnect all Marks Keywords connections"
 msgstr ""
 
-#: ../src/bar_keywords.c:1038
+#: ../src/bar_keywords.c:1063
 msgid "Marks Keywords"
 msgstr ""
 
-#: ../src/bar_keywords.c:1311
+#: ../src/bar_keywords.c:1336
 #, c-format
 msgid "Add \"%s\" to all selected images"
 msgstr ""
 
-#: ../src/bar_keywords.c:1317
+#: ../src/bar_keywords.c:1342
 #, c-format
 msgid "Hide \"%s\""
 msgstr ""
 
-#: ../src/bar_keywords.c:1324
+#: ../src/bar_keywords.c:1349
 #, c-format
 msgid "Mark %d"
 msgstr ""
 
-#: ../src/bar_keywords.c:1332
+#: ../src/bar_keywords.c:1357
 #, c-format
 msgid "Connect \"%s\" to mark"
 msgstr ""
 
-#: ../src/bar_keywords.c:1339
+#: ../src/bar_keywords.c:1364
 #, c-format
 msgid "Edit \"%s\""
 msgstr ""
 
-#: ../src/bar_keywords.c:1349
+#: ../src/bar_keywords.c:1374
 #, c-format
 msgid "Disconnect \"%s\" from mark %s"
 msgstr ""
 
-#: ../src/bar_keywords.c:1356
+#: ../src/bar_keywords.c:1381
 #, c-format
 msgid "Disconnect all Mark Keyword connections"
 msgstr ""
 
 #. for the pane
-#: ../src/bar_keywords.c:1367 ../src/bar_keywords.c:1381
+#: ../src/bar_keywords.c:1392 ../src/bar_keywords.c:1406
 msgid "Expand checked"
 msgstr ""
 
-#: ../src/bar_keywords.c:1368 ../src/bar_keywords.c:1382
+#: ../src/bar_keywords.c:1393 ../src/bar_keywords.c:1407
 msgid "Collapse unchecked"
 msgstr ""
 
-#: ../src/bar_keywords.c:1369 ../src/bar_keywords.c:1383
+#: ../src/bar_keywords.c:1394 ../src/bar_keywords.c:1408
 msgid "Hide unchecked"
 msgstr ""
 
-#: ../src/bar_keywords.c:1370
+#: ../src/bar_keywords.c:1395
 msgid "Revert all hidden"
 msgstr ""
 
-#: ../src/bar_keywords.c:1372
+#: ../src/bar_keywords.c:1397
 msgid "Show all"
 msgstr ""
 
-#: ../src/bar_keywords.c:1373
+#: ../src/bar_keywords.c:1398
 msgid "Collapse all"
 msgstr ""
 
-#: ../src/bar_keywords.c:1374
+#: ../src/bar_keywords.c:1399
 msgid "Revert"
 msgstr ""
 
-#: ../src/bar_keywords.c:1378
+#: ../src/bar_keywords.c:1403
 msgid "On any change"
 msgstr ""
 
-#: ../src/bar_sort.c:500
+#: ../src/bar_keywords.c:1899
+#, c-format
+msgid "Error: Unable to write keywords list to: %s\n"
+msgstr ""
+
+#: ../src/bar_sort.c:501
 #, c-format
 msgid ""
 "The collection:\n"
@@ -452,63 +478,63 @@ msgid ""
 "already exists."
 msgstr ""
 
-#: ../src/bar_sort.c:501
+#: ../src/bar_sort.c:502
 msgid "Collection exists"
 msgstr ""
 
-#: ../src/bar_sort.c:515 ../src/collect.c:1146 ../src/collect-dlg.c:93
+#: ../src/bar_sort.c:516 ../src/collect.c:1147 ../src/collect-dlg.c:93
 #, c-format
 msgid ""
 "Failed to save the collection:\n"
 "%s"
 msgstr ""
 
-#: ../src/bar_sort.c:516 ../src/collect.c:1147 ../src/collect-dlg.c:94
+#: ../src/bar_sort.c:517 ../src/collect.c:1148 ../src/collect-dlg.c:94
 msgid "Save Failed"
 msgstr ""
 
-#: ../src/bar_sort.c:551 ../src/bar_sort.c:723
+#: ../src/bar_sort.c:552 ../src/bar_sort.c:724
 msgid "Add Bookmark"
 msgstr ""
 
-#: ../src/bar_sort.c:555
+#: ../src/bar_sort.c:556
 msgid "Add Collection"
 msgstr ""
 
-#: ../src/bar_sort.c:572 ../src/shortcuts.c:118 ../src/ui_bookmark.c:297
+#: ../src/bar_sort.c:573 ../src/shortcuts.c:118 ../src/ui_bookmark.c:297
 msgid "Name:"
 msgstr ""
 
-#: ../src/bar_sort.c:650
+#: ../src/bar_sort.c:651
 msgid "Sort Manager"
 msgstr ""
 
-#: ../src/bar_sort.c:659 ../src/pan-view/pan-view.c:1832
+#: ../src/bar_sort.c:660 ../src/pan-view/pan-view.c:1836
 #: ../src/ui_pathsel.c:1108
 msgid "Folders"
 msgstr ""
 
-#: ../src/bar_sort.c:660 ../src/options.c:207
+#: ../src/bar_sort.c:661 ../src/options.c:221
 msgid "Collections"
 msgstr ""
 
-#: ../src/bar_sort.c:668 ../src/utilops.c:2321
+#: ../src/bar_sort.c:669 ../src/toolbar.c:88 ../src/utilops.c:2329
 msgid "Copy"
 msgstr ""
 
-#: ../src/bar_sort.c:671 ../src/utilops.c:2271
+#: ../src/bar_sort.c:672 ../src/toolbar.c:89 ../src/utilops.c:2279
 msgid "Move"
 msgstr ""
 
-#: ../src/bar_sort.c:710
+#: ../src/bar_sort.c:711
 msgid "Add image"
 msgstr ""
 
-#: ../src/bar_sort.c:713
+#: ../src/bar_sort.c:714
 msgid "Add selection"
 msgstr ""
 
-#: ../src/bar_sort.c:726
+#: ../src/bar_sort.c:727
 msgid "Undo last image"
 msgstr ""
 
@@ -520,7 +546,7 @@ msgid ""
 msgstr ""
 
 #: ../src/cache_maint.c:123 ../src/cache_maint.c:612 ../src/cache_maint.c:880
-#: ../src/editors.c:1205
+#: ../src/editors.c:1228 ../src/preferences.c:2674
 msgid "done"
 msgstr ""
 
@@ -540,11 +566,11 @@ msgstr ""
 msgid "Maintenance"
 msgstr ""
 
-#: ../src/cache_maint.c:732
+#: ../src/cache_maint.c:732 ../src/preferences.c:2756
 msgid "Invalid folder"
 msgstr ""
 
-#: ../src/cache_maint.c:733
+#: ../src/cache_maint.c:733 ../src/preferences.c:2757
 msgid "The specified folder can not be found."
 msgstr ""
 
@@ -552,19 +578,19 @@ msgstr ""
 msgid "Create thumbnails"
 msgstr ""
 
-#: ../src/cache_maint.c:804 ../src/cache_maint.c:1063
+#: ../src/cache_maint.c:804 ../src/cache_maint.c:1063 ../src/preferences.c:2795
 msgid "S_tart"
 msgstr ""
 
-#: ../src/cache_maint.c:817 ../src/preferences.c:2564
+#: ../src/cache_maint.c:817 ../src/preferences.c:2808 ../src/preferences.c:3134
 msgid "Folder:"
 msgstr ""
 
-#: ../src/cache_maint.c:820
+#: ../src/cache_maint.c:820 ../src/preferences.c:2811
 msgid "Select folder"
 msgstr ""
 
-#: ../src/cache_maint.c:824
+#: ../src/cache_maint.c:824 ../src/preferences.c:2815
 msgid "Include subfolders"
 msgstr ""
 
@@ -572,11 +598,11 @@ msgstr ""
 msgid "Store thumbnails local to source images"
 msgstr ""
 
-#: ../src/cache_maint.c:834 ../src/cache_maint.c:1072
+#: ../src/cache_maint.c:834 ../src/cache_maint.c:1072 ../src/preferences.c:2823
 msgid "click start to begin"
 msgstr ""
 
-#: ../src/cache_maint.c:992 ../src/editors.c:1131
+#: ../src/cache_maint.c:992 ../src/editors.c:1154
 msgid "running..."
 msgstr ""
 
@@ -613,7 +639,7 @@ msgid "Geeqie thumbnail cache"
 msgstr ""
 
 #: ../src/cache_maint.c:1227 ../src/cache_maint.c:1246
-#: ../src/cache_maint.c:1271
+#: ../src/cache_maint.c:1272
 msgid "Clean up"
 msgstr ""
 
@@ -641,13 +667,13 @@ msgstr ""
 msgid "Render thumbnails for a specific folder."
 msgstr ""
 
-#: ../src/cache_maint.c:1274
+#: ../src/cache_maint.c:1275
 msgid "Remove orphaned keywords and comments."
 msgstr ""
 
 #. When does this occur ??
-#: ../src/collect.c:422 ../src/image.c:189 ../src/image-overlay.c:549
-#: ../src/image-overlay.c:626
+#: ../src/collect.c:422 ../src/image.c:313 ../src/image-overlay.c:555
+#: ../src/image-overlay.c:632
 msgid "Untitled"
 msgstr ""
 
@@ -656,22 +682,22 @@ msgstr ""
 msgid "Untitled (%d)"
 msgstr ""
 
-#: ../src/collect.c:1071
+#: ../src/collect.c:1072
 #, c-format
 msgid "%s - Collection - %s"
 msgstr ""
 
-#: ../src/collect.c:1183 ../src/collect.c:1187
+#: ../src/collect.c:1184 ../src/collect.c:1188
 msgid "Close collection"
 msgstr ""
 
-#: ../src/collect.c:1188
+#: ../src/collect.c:1189
 msgid ""
 "Collection has been modified.\n"
 "Save first?"
 msgstr ""
 
-#: ../src/collect.c:1191
+#: ../src/collect.c:1192
 msgid "_Discard"
 msgstr ""
 
@@ -750,166 +776,189 @@ msgid ""
 "error: %s\n"
 msgstr ""
 
-#: ../src/collect-table.c:212
+#: ../src/collect-table.c:214
 #, c-format
 msgid "%s, %d images (%s, %d)"
 msgstr ""
 
-#: ../src/collect-table.c:219
+#: ../src/collect-table.c:221
 #, c-format
 msgid "%s, %d images"
 msgstr ""
 
-#: ../src/collect-table.c:224 ../src/layout_util.c:1736
-#: ../src/layout_util.c:2880
+#: ../src/collect-table.c:226 ../src/layout_util.c:1817
+#: ../src/layout_util.c:2992
 msgid "Empty"
 msgstr ""
 
-#: ../src/collect-table.c:238 ../src/dupe.c:1363 ../src/search.c:386
-#: ../src/view_file/view_file.c:1004 ../src/view_file/view_file.c:1113
+#: ../src/collect-table.c:240 ../src/dupe.c:1364 ../src/search.c:389
+#: ../src/view_file/view_file.c:1146 ../src/view_file/view_file.c:1255
 msgid "Loading thumbs..."
 msgstr ""
 
-#: ../src/collect-table.c:933 ../src/dupe.c:2344 ../src/dupe.c:2662
-#: ../src/layout_util.c:1783 ../src/search.c:1095
+#: ../src/collect-table.c:961 ../src/dupe.c:2354 ../src/dupe.c:2681
+#: ../src/layout_util.c:1864 ../src/search.c:1107
 msgid "_View"
 msgstr ""
 
-#: ../src/collect-table.c:935 ../src/dupe.c:2346 ../src/dupe.c:2664
-#: ../src/img-view.c:1328 ../src/layout_image.c:691
-#: ../src/pan-view/pan-view.c:2290 ../src/search.c:1097
-#: ../src/view_file/view_file.c:622
+#: ../src/collect-table.c:963 ../src/dupe.c:2356 ../src/dupe.c:2683
+#: ../src/img-view.c:1337 ../src/layout_image.c:701
+#: ../src/pan-view/pan-view.c:2309 ../src/search.c:1109
+#: ../src/view_file/view_file.c:623
 msgid "View in _new window"
 msgstr ""
 
-#: ../src/collect-table.c:937 ../src/pan-view/pan-view.c:2292
+#: ../src/collect-table.c:965 ../src/pan-view/pan-view.c:2311
 msgid "Go to original"
 msgstr ""
 
-#: ../src/collect-table.c:940 ../src/dupe.c:2385 ../src/dupe.c:2672
-#: ../src/search.c:1132
+#: ../src/collect-table.c:968 ../src/dupe.c:2404 ../src/dupe.c:2691
 msgid "Rem_ove"
 msgstr ""
 
-#: ../src/collect-table.c:943
+#: ../src/collect-table.c:971
 msgid "Append from file selection"
 msgstr ""
 
-#: ../src/collect-table.c:945
+#: ../src/collect-table.c:973
 msgid "Append from collection..."
 msgstr ""
 
-#: ../src/collect-table.c:949
+#: ../src/collect-table.c:977
 msgid "_Selection"
 msgstr ""
 
-#: ../src/collect-table.c:951 ../src/dupe.c:2349 ../src/dupe.c:2667
-#: ../src/layout_util.c:1841 ../src/search.c:1100
+#: ../src/collect-table.c:979 ../src/dupe.c:2359 ../src/dupe.c:2686
+#: ../src/layout_util.c:1923 ../src/search.c:1112 ../src/toolbar.c:94
 msgid "Select all"
 msgstr ""
 
-#: ../src/collect-table.c:953 ../src/dupe.c:2351 ../src/dupe.c:2669
-#: ../src/layout_util.c:1842 ../src/search.c:1102
+#: ../src/collect-table.c:981 ../src/dupe.c:2361 ../src/dupe.c:2688
+#: ../src/layout_util.c:1924 ../src/search.c:1114 ../src/toolbar.c:95
 msgid "Select none"
 msgstr ""
 
-#: ../src/collect-table.c:955
+#: ../src/collect-table.c:983
 msgid "Invert selection"
 msgstr ""
 
-#: ../src/collect-table.c:957
+#: ../src/collect-table.c:985
 msgid "Rectangular selection"
 msgstr ""
 
-#: ../src/collect-table.c:969 ../src/dupe.c:2372 ../src/img-view.c:1332
-#: ../src/layout_image.c:699 ../src/layout_util.c:1816
-#: ../src/pan-view/pan-view.c:2296 ../src/search.c:1119
-#: ../src/view_file/view_file.c:626
+#: ../src/collect-table.c:997 ../src/dupe.c:2382 ../src/img-view.c:1341
+#: ../src/layout_image.c:709 ../src/layout_util.c:1897
+#: ../src/pan-view/pan-view.c:2315 ../src/search.c:1131
+#: ../src/view_file/view_file.c:627
 msgid "_Copy..."
 msgstr ""
 
-#: ../src/collect-table.c:971 ../src/dupe.c:2374 ../src/img-view.c:1333
-#: ../src/layout_image.c:701 ../src/layout_util.c:1817
-#: ../src/pan-view/pan-view.c:2298 ../src/search.c:1121
-#: ../src/view_file/view_file.c:628
+#: ../src/collect-table.c:999 ../src/dupe.c:2384 ../src/img-view.c:1342
+#: ../src/layout_image.c:711 ../src/layout_util.c:1898
+#: ../src/pan-view/pan-view.c:2317 ../src/search.c:1133
+#: ../src/view_file/view_file.c:629
 msgid "_Move..."
 msgstr ""
 
-#: ../src/collect-table.c:973 ../src/dupe.c:2376 ../src/img-view.c:1334
-#: ../src/layout_image.c:703 ../src/layout_util.c:1818
-#: ../src/pan-view/pan-view.c:2300 ../src/search.c:1123 ../src/view_dir.c:683
-#: ../src/view_file/view_file.c:630
+#: ../src/collect-table.c:1001 ../src/dupe.c:2386 ../src/img-view.c:1343
+#: ../src/layout_image.c:713 ../src/layout_util.c:1899
+#: ../src/pan-view/pan-view.c:2319 ../src/search.c:1135 ../src/view_dir.c:686
+#: ../src/view_file/view_file.c:631
 msgid "_Rename..."
 msgstr ""
 
-#: ../src/collect-table.c:975 ../src/dupe.c:2378 ../src/img-view.c:1335
-#: ../src/layout_image.c:705 ../src/pan-view/pan-view.c:2302
-#: ../src/search.c:1125 ../src/view_dir.c:686 ../src/view_file/view_file.c:632
+#: ../src/collect-table.c:1003 ../src/dupe.c:2388 ../src/img-view.c:1344
+#: ../src/layout_image.c:715 ../src/pan-view/pan-view.c:2321
+#: ../src/search.c:1137 ../src/view_dir.c:689 ../src/view_file/view_file.c:633
 msgid "_Copy path"
 msgstr ""
 
-#: ../src/collect-table.c:977 ../src/dupe.c:2380 ../src/img-view.c:1336
-#: ../src/layout_image.c:706 ../src/pan-view/pan-view.c:2304
-#: ../src/search.c:1127 ../src/view_dir.c:689 ../src/view_file/view_file.c:634
+#: ../src/collect-table.c:1005 ../src/dupe.c:2390 ../src/img-view.c:1345
+#: ../src/layout_image.c:716 ../src/pan-view/pan-view.c:2323
+#: ../src/search.c:1139 ../src/view_dir.c:692 ../src/view_file/view_file.c:635
 msgid "_Copy path unquoted"
 msgstr ""
 
-#: ../src/collect-table.c:979 ../src/dupe.c:2382 ../src/img-view.c:1337
-#: ../src/layout_image.c:708 ../src/layout_util.c:1819
-#: ../src/layout_util.c:1820 ../src/layout_util.c:1821
-#: ../src/pan-view/pan-view.c:2306 ../src/search.c:1129 ../src/view_dir.c:692
-#: ../src/view_file/view_file.c:636
+#: ../src/collect-table.c:1010 ../src/dupe.c:2395 ../src/img-view.c:1349
+#: ../src/layout_image.c:721 ../src/layout_util.c:1900
+#: ../src/layout_util.c:1901 ../src/layout_util.c:1902
+#: ../src/pan-view/pan-view.c:2328 ../src/search.c:1144
+#: ../src/view_file/view_file.c:639
+msgid "Move to Trash..."
+msgstr "Move to Rubbish bin..."
+
+#: ../src/collect-table.c:1011 ../src/dupe.c:2396 ../src/img-view.c:1350
+#: ../src/layout_image.c:722 ../src/pan-view/pan-view.c:2329
+#: ../src/search.c:1145 ../src/view_file/view_file.c:640
+msgid "Move to Trash"
+msgstr "Move to Rubbish bin"
+
+#: ../src/collect-table.c:1014 ../src/dupe.c:2399 ../src/img-view.c:1353
+#: ../src/layout_image.c:726 ../src/pan-view/pan-view.c:2332
+#: ../src/search.c:1148 ../src/view_dir.c:695 ../src/view_file/view_file.c:643
 msgid "_Delete..."
 msgstr ""
 
-#: ../src/collect-table.c:985
+#: ../src/collect-table.c:1015 ../src/dupe.c:2400 ../src/img-view.c:1354
+#: ../src/layout_image.c:727 ../src/pan-view/pan-view.c:2333
+#: ../src/search.c:1149 ../src/ui_pathsel.c:644
+#: ../src/view_file/view_file.c:644
+msgid "_Delete"
+msgstr ""
+
+#: ../src/collect-table.c:1021
 msgid "Randomize"
 msgstr "Randomise"
 
-#: ../src/collect-table.c:987 ../src/view_file/view_file.c:661
+#: ../src/collect-table.c:1023 ../src/view_file/view_file.c:669
 msgid "_Sort"
 msgstr ""
 
-#: ../src/collect-table.c:990 ../src/view_file/view_file.c:677
+#: ../src/collect-table.c:1026 ../src/view_file/view_file.c:685
 msgid "Show filename _text"
 msgstr ""
 
-#: ../src/collect-table.c:993
+#: ../src/collect-table.c:1028 ../src/view_file/view_file.c:693
+#: ../src/view_file/view_file.c:697
+msgid "Show star rating"
+msgstr ""
+
+#: ../src/collect-table.c:1031
 msgid "_Save collection"
 msgstr ""
 
-#: ../src/collect-table.c:995
+#: ../src/collect-table.c:1033
 msgid "Save collection _as..."
 msgstr ""
 
-#: ../src/collect-table.c:998 ../src/layout_util.c:1812
-#: ../src/view_file/view_file.c:646
+#: ../src/collect-table.c:1036 ../src/layout_util.c:1893
+#: ../src/view_file/view_file.c:654
 msgid "_Find duplicates..."
 msgstr ""
 
-#: ../src/collect-table.c:1000 ../src/dupe.c:2369 ../src/layout_util.c:1814
-#: ../src/search.c:1116
+#: ../src/collect-table.c:1038 ../src/dupe.c:2379 ../src/layout_util.c:1895
+#: ../src/search.c:1128
 msgid "Print..."
 msgstr ""
 
-#: ../src/collect-table.c:2189 ../src/dupe.c:3528 ../src/img-view.c:1496
+#: ../src/collect-table.c:2227 ../src/dupe.c:3548 ../src/img-view.c:1514
 msgid "Dropped list includes folders."
 msgstr ""
 
-#: ../src/collect-table.c:2191 ../src/dupe.c:3530 ../src/img-view.c:1498
+#: ../src/collect-table.c:2229 ../src/dupe.c:3550 ../src/img-view.c:1516
 msgid "_Add contents"
 msgstr ""
 
-#: ../src/collect-table.c:2193 ../src/dupe.c:3531 ../src/img-view.c:1499
+#: ../src/collect-table.c:2231 ../src/dupe.c:3551 ../src/img-view.c:1517
 msgid "Add contents _recursive"
 msgstr ""
 
-#: ../src/collect-table.c:2195 ../src/dupe.c:3532 ../src/img-view.c:1500
+#: ../src/collect-table.c:2233 ../src/dupe.c:3552 ../src/img-view.c:1518
 msgid "_Skip folders"
 msgstr ""
 
-#: ../src/collect-table.c:2198 ../src/dupe.c:3534 ../src/img-view.c:1502
-#: ../src/view_dir.c:426
+#: ../src/collect-table.c:2236 ../src/dupe.c:3554 ../src/img-view.c:1520
+#: ../src/view_dir.c:429
 msgid "Cancel"
 msgstr ""
 
@@ -945,7 +994,7 @@ msgstr ""
 msgid "Could not create directory"
 msgstr ""
 
-#: ../src/desktop_file.c:191 ../src/desktop_file.c:554
+#: ../src/desktop_file.c:191 ../src/desktop_file.c:648
 msgid "Desktop file"
 msgstr ""
 
@@ -956,8 +1005,8 @@ msgid ""
 "%s"
 msgstr ""
 
-#: ../src/desktop_file.c:301 ../src/ui_pathsel.c:495 ../src/utilops.c:2157
-#: ../src/utilops.c:2184 ../src/utilops.c:2706
+#: ../src/desktop_file.c:301 ../src/ui_pathsel.c:495 ../src/utilops.c:2158
+#: ../src/utilops.c:2192 ../src/utilops.c:2714
 msgid "File deletion failed"
 msgstr ""
 
@@ -977,230 +1026,234 @@ msgstr ""
 msgid "new.desktop"
 msgstr ""
 
-#: ../src/desktop_file.c:467
+#: ../src/desktop_file.c:548 ../src/menu.c:119
 msgid "Plugins"
 msgstr ""
 
-#: ../src/desktop_file.c:544
+#: ../src/desktop_file.c:616
+msgid "Disabled"
+msgstr ""
+
+#: ../src/desktop_file.c:638
 msgid "Hidden"
 msgstr ""
 
-#: ../src/desktop_file.c:563 ../src/dupe.c:2771 ../src/dupe.c:3310
-#: ../src/print.c:3211 ../src/search.c:3329 ../src/ui_pathsel.c:1120
-#: ../src/utilops.c:501
+#: ../src/desktop_file.c:657 ../src/dupe.c:2790 ../src/dupe.c:3330
+#: ../src/preferences.c:2063 ../src/print.c:416 ../src/search.c:3453
+#: ../src/ui_pathsel.c:1120 ../src/utilops.c:501
 msgid "Path"
 msgstr ""
 
-#: ../src/dupe.c:109
+#: ../src/dupe.c:110
 msgid "Drop files to compare them."
 msgstr ""
 
-#: ../src/dupe.c:113
+#: ../src/dupe.c:114
 #, c-format
 msgid "%d files"
 msgstr ""
 
-#: ../src/dupe.c:117
+#: ../src/dupe.c:118
 #, c-format
 msgid "%d matches found in %d files"
 msgstr ""
 
-#: ../src/dupe.c:122
+#: ../src/dupe.c:123
 msgid "[set 1]"
 msgstr ""
 
-#: ../src/dupe.c:1489
+#: ../src/dupe.c:1490
 msgid "Reading checksums..."
 msgstr ""
 
-#: ../src/dupe.c:1522
+#: ../src/dupe.c:1523
 msgid "Reading dimensions..."
 msgstr ""
 
-#: ../src/dupe.c:1556
+#: ../src/dupe.c:1557
 msgid "Reading similarity data..."
 msgstr ""
 
-#: ../src/dupe.c:1592 ../src/dupe.c:1623
+#: ../src/dupe.c:1593 ../src/dupe.c:1624
 msgid "Comparing..."
 msgstr ""
 
-#: ../src/dupe.c:1603 ../src/pan-view/pan-view.c:1012
+#: ../src/dupe.c:1604 ../src/pan-view/pan-view.c:1012
 msgid "Sorting..."
 msgstr ""
 
-#: ../src/dupe.c:2353
+#: ../src/dupe.c:2363
 msgid "Select group _1 duplicates"
 msgstr ""
 
-#: ../src/dupe.c:2355
+#: ../src/dupe.c:2365
 msgid "Select group _2 duplicates"
 msgstr ""
 
-#: ../src/dupe.c:2387 ../src/dupe.c:2674 ../src/search.c:1134
+#: ../src/dupe.c:2406 ../src/dupe.c:2693
 msgid "C_lear"
 msgstr ""
 
-#: ../src/dupe.c:2390 ../src/dupe.c:2677
+#: ../src/dupe.c:2409 ../src/dupe.c:2696
 msgid "Close _window"
 msgstr ""
 
-#: ../src/dupe.c:2550
+#: ../src/dupe.c:2569
 #, c-format
 msgid "%d files (set 2)"
 msgstr ""
 
-#: ../src/dupe.c:2766
+#: ../src/dupe.c:2785
 msgid "Name case-insensitive"
 msgstr ""
 
-#: ../src/dupe.c:2767 ../src/dupe.c:3307 ../src/preferences.c:2017
-#: ../src/print.c:3215 ../src/search.c:3326
-#: ../src/view_file/view_file_list.c:2071
+#: ../src/dupe.c:2786 ../src/dupe.c:3327 ../src/preferences.c:2033
+#: ../src/preferences.c:2065 ../src/print.c:420 ../src/search.c:3450
+#: ../src/view_file/view_file_list.c:2082
 msgid "Size"
 msgstr ""
 
-#: ../src/dupe.c:2768 ../src/dupe.c:3308 ../src/exif.c:336
-#: ../src/exif-common.c:870 ../src/print.c:3213 ../src/search.c:3327
-#: ../src/view_file/view_file_list.c:2075
+#: ../src/dupe.c:2787 ../src/dupe.c:3328 ../src/exif.c:336
+#: ../src/exif-common.c:900 ../src/preferences.c:2064 ../src/print.c:418
+#: ../src/search.c:3451 ../src/view_file/view_file_list.c:2086
 msgid "Date"
 msgstr ""
 
-#: ../src/dupe.c:2769 ../src/dupe.c:3309 ../src/print.c:3217
-#: ../src/search.c:3328
+#: ../src/dupe.c:2788 ../src/dupe.c:3329 ../src/preferences.c:2067
+#: ../src/print.c:422 ../src/search.c:3452
 msgid "Dimensions"
 msgstr ""
 
-#: ../src/dupe.c:2770
+#: ../src/dupe.c:2789
 msgid "Checksum"
 msgstr ""
 
-#: ../src/dupe.c:2772
+#: ../src/dupe.c:2791
 msgid "Similarity (high)"
 msgstr ""
 
-#: ../src/dupe.c:2773
+#: ../src/dupe.c:2792
 msgid "Similarity"
 msgstr ""
 
-#: ../src/dupe.c:2774
+#: ../src/dupe.c:2793
 msgid "Similarity (low)"
 msgstr ""
 
-#: ../src/dupe.c:2775
+#: ../src/dupe.c:2794
 msgid "Similarity (custom)"
 msgstr ""
 
-#: ../src/dupe.c:3260 ../src/toolbar.c:86
+#: ../src/dupe.c:3280 ../src/toolbar.c:86
 msgid "Find duplicates"
 msgstr ""
 
-#: ../src/dupe.c:3342
+#: ../src/dupe.c:3362
 msgid "Compare to:"
 msgstr ""
 
-#: ../src/dupe.c:3355
+#: ../src/dupe.c:3375
 msgid "Compare by:"
 msgstr ""
 
-#: ../src/dupe.c:3363 ../src/preferences.c:1714 ../src/search.c:3342
+#: ../src/dupe.c:3383 ../src/preferences.c:1721 ../src/search.c:3466
 msgid "Thumbnails"
 msgstr ""
 
-#: ../src/dupe.c:3371
+#: ../src/dupe.c:3391
 msgid "Ignore Rotation"
 msgstr ""
 
-#: ../src/dupe.c:3379
+#: ../src/dupe.c:3399
 msgid "Compare two file sets"
 msgstr ""
 
-#: ../src/dupe.c:3399 ../src/menu.c:229
+#: ../src/dupe.c:3419 ../src/menu.c:229
 msgid "Sort"
 msgstr ""
 
-#: ../src/dupe.c:3407
+#: ../src/dupe.c:3427
 msgid "Custom Threshold"
 msgstr ""
 
-#: ../src/editors.c:305
+#: ../src/editors.c:307
 #, c-format
 msgid "Desktop file '%s' should not include extension in Icon key: '%s'\n"
 msgstr ""
 
 #. flash fired (bit 0)
-#: ../src/editors.c:359 ../src/exif.c:220 ../src/exif-common.c:429
+#: ../src/editors.c:377 ../src/exif.c:220 ../src/exif-common.c:429
 msgid "yes"
 msgstr ""
 
-#: ../src/editors.c:359 ../src/exif.c:219 ../src/exif-common.c:429
+#: ../src/editors.c:377 ../src/exif.c:219 ../src/exif-common.c:429
 msgid "no"
 msgstr ""
 
-#: ../src/editors.c:531
+#: ../src/editors.c:554
 msgid "stopping..."
 msgstr ""
 
-#: ../src/editors.c:552
+#: ../src/editors.c:575
 msgid "Edit command results"
 msgstr ""
 
-#: ../src/editors.c:555
+#: ../src/editors.c:578
 #, c-format
 msgid "Output of %s"
 msgstr ""
 
-#: ../src/editors.c:1082
+#: ../src/editors.c:1105
 #, c-format
 msgid ""
 "Failed to run command:\n"
 "%s\n"
 msgstr ""
 
-#: ../src/editors.c:1209
+#: ../src/editors.c:1232
 msgid "stopped by user"
 msgstr ""
 
-#: ../src/editors.c:1294
+#: ../src/editors.c:1317
 #, c-format
 msgid ""
 "%s\n"
 "\"%s\""
 msgstr ""
 
-#: ../src/editors.c:1296
+#: ../src/editors.c:1319
 msgid "Invalid editor command"
 msgstr ""
 
-#: ../src/editors.c:1383
+#: ../src/editors.c:1406
 msgid "Editor template is empty."
 msgstr ""
 
-#: ../src/editors.c:1384
+#: ../src/editors.c:1407
 msgid "Editor template has incorrect syntax."
 msgstr ""
 
-#: ../src/editors.c:1385
+#: ../src/editors.c:1408
 msgid "Editor template uses incompatible macros."
 msgstr ""
 
-#: ../src/editors.c:1386
+#: ../src/editors.c:1409
 msgid "Can't find matching file type."
 msgstr ""
 
-#: ../src/editors.c:1387
+#: ../src/editors.c:1410
 msgid "Can't execute external editor."
 msgstr ""
 
-#: ../src/editors.c:1388
+#: ../src/editors.c:1411
 msgid "External editor returned error status."
 msgstr ""
 
-#: ../src/editors.c:1389
+#: ../src/editors.c:1412
 msgid "File was skipped."
 msgstr ""
 
-#: ../src/editors.c:1390
+#: ../src/editors.c:1413
 msgid "Unknown error."
 msgstr ""
 
@@ -1592,7 +1645,7 @@ msgstr ""
 msgid "Spectral Sensitivity"
 msgstr ""
 
-#: ../src/exif.c:349 ../src/exif.c:385 ../src/exif-common.c:875
+#: ../src/exif.c:349 ../src/exif.c:385 ../src/exif-common.c:905
 msgid "ISO sensitivity"
 msgstr ""
 
@@ -1608,7 +1661,7 @@ msgstr ""
 msgid "Date original"
 msgstr ""
 
-#: ../src/exif.c:353
+#: ../src/exif.c:353 ../src/preferences.c:2078
 msgid "Date digitized"
 msgstr "Date digitised"
 
@@ -1620,11 +1673,11 @@ msgstr ""
 msgid "Compression ratio"
 msgstr ""
 
-#: ../src/exif.c:356 ../src/exif-common.c:872
+#: ../src/exif.c:356 ../src/exif-common.c:902 ../src/preferences.c:2084
 msgid "Shutter speed"
 msgstr ""
 
-#: ../src/exif.c:357 ../src/exif-common.c:873
+#: ../src/exif.c:357 ../src/exif-common.c:903 ../src/preferences.c:2080
 msgid "Aperture"
 msgstr ""
 
@@ -1632,7 +1685,7 @@ msgstr ""
 msgid "Brightness"
 msgstr ""
 
-#: ../src/exif.c:359 ../src/exif-common.c:874
+#: ../src/exif.c:359 ../src/exif-common.c:904 ../src/preferences.c:2081
 msgid "Exposure bias"
 msgstr ""
 
@@ -1640,7 +1693,7 @@ msgstr ""
 msgid "Maximum aperture"
 msgstr ""
 
-#: ../src/exif.c:361 ../src/exif-common.c:878
+#: ../src/exif.c:361 ../src/exif-common.c:908 ../src/preferences.c:2088
 msgid "Subject distance"
 msgstr ""
 
@@ -1652,11 +1705,11 @@ msgstr ""
 msgid "Light source"
 msgstr ""
 
-#: ../src/exif.c:364 ../src/exif-common.c:879
+#: ../src/exif.c:364 ../src/exif-common.c:909 ../src/preferences.c:2089
 msgid "Flash"
 msgstr ""
 
-#: ../src/exif.c:365 ../src/exif-common.c:876
+#: ../src/exif.c:365 ../src/exif-common.c:906 ../src/preferences.c:2086
 msgid "Focal length"
 msgstr ""
 
@@ -1693,11 +1746,11 @@ msgid "Colorspace"
 msgstr "Colourspace"
 
 #. ExifImageWidth, ExifImageHeight can also be unsigned short
-#: ../src/exif.c:375 ../src/preferences.c:2829
+#: ../src/exif.c:375 ../src/preferences.c:3411
 msgid "Width"
 msgstr ""
 
-#: ../src/exif.c:376 ../src/preferences.c:2831
+#: ../src/exif.c:376 ../src/preferences.c:3413
 msgid "Height"
 msgstr ""
 
@@ -1782,7 +1835,7 @@ msgstr ""
 msgid "Contrast"
 msgstr ""
 
-#: ../src/exif.c:399 ../src/preferences.c:2435
+#: ../src/exif.c:399 ../src/preferences.c:2986
 msgid "Saturation"
 msgstr ""
 
@@ -1818,11 +1871,11 @@ msgstr ""
 msgid "mode:"
 msgstr ""
 
-#: ../src/exif-common.c:437 ../src/trash.c:213
+#: ../src/exif-common.c:437
 msgid "on"
 msgstr ""
 
-#: ../src/exif-common.c:440 ../src/trash.c:218
+#: ../src/exif-common.c:440
 msgid "off"
 msgstr ""
 
@@ -1860,141 +1913,165 @@ msgstr ""
 msgid "Below Sea Level"
 msgstr ""
 
-#: ../src/exif-common.c:869
+#: ../src/exif-common.c:899 ../src/preferences.c:2083
 msgid "Camera"
 msgstr ""
 
-#: ../src/exif-common.c:871
+#: ../src/exif-common.c:901
 msgid "DateDigitized"
 msgstr "DateDigitised"
 
-#: ../src/exif-common.c:877
+#: ../src/exif-common.c:907
 msgid "Focal length 35mm"
 msgstr ""
 
-#: ../src/exif-common.c:880
+#: ../src/exif-common.c:910 ../src/preferences.c:2082
 msgid "Resolution"
 msgstr ""
 
-#: ../src/exif-common.c:881
+#: ../src/exif-common.c:911 ../src/preferences.c:2090
 msgid "Color profile"
 msgstr "Colour profile"
 
-#: ../src/exif-common.c:882
+#: ../src/exif-common.c:912
 msgid "GPS position"
 msgstr ""
 
-#: ../src/exif-common.c:883
+#: ../src/exif-common.c:913
 msgid "GPS altitude"
 msgstr ""
 
-#: ../src/exif-common.c:884
+#: ../src/exif-common.c:914 ../src/preferences.c:2093
 msgid "Local time"
 msgstr ""
 
-#: ../src/exif-common.c:885
+#: ../src/exif-common.c:915
 msgid "Time zone"
 msgstr ""
 
-#: ../src/exif-common.c:886
+#: ../src/exif-common.c:916 ../src/preferences.c:2095
+msgid "Country name"
+msgstr ""
+
+#: ../src/exif-common.c:917 ../src/preferences.c:2096
+msgid "Country code"
+msgstr ""
+
+#: ../src/exif-common.c:918 ../src/preferences.c:2097
 msgid "Star rating"
 msgstr ""
 
-#: ../src/exif-common.c:887
+#: ../src/exif-common.c:919
 msgid "File size"
 msgstr ""
 
-#: ../src/exif-common.c:888
+#: ../src/exif-common.c:920
 msgid "File date"
 msgstr ""
 
-#: ../src/exif-common.c:889
+#: ../src/exif-common.c:921 ../src/preferences.c:2072
 msgid "File mode"
 msgstr ""
 
-#: ../src/exif-common.c:890
+#: ../src/exif-common.c:922 ../src/preferences.c:2071
 msgid "File ctime"
 msgstr ""
 
-#: ../src/filedata.c:110
+#: ../src/exif-common.c:923 ../src/preferences.c:2073
+msgid "File owner"
+msgstr ""
+
+#: ../src/exif-common.c:924 ../src/preferences.c:2074
+msgid "File group"
+msgstr ""
+
+#: ../src/exif-common.c:925 ../src/preferences.c:2075
+msgid "File link"
+msgstr ""
+
+#: ../src/exif-common.c:926 ../src/preferences.c:2076
+msgid "File class"
+msgstr ""
+
+#: ../src/filedata.c:112
 #, c-format
 msgid "%d bytes"
 msgstr ""
 
-#: ../src/filedata.c:114
+#: ../src/filedata.c:116
 #, c-format
 msgid "%.1f K"
 msgstr ""
 
-#: ../src/filedata.c:118
+#: ../src/filedata.c:120
 #, c-format
 msgid "%.1f MB"
 msgstr ""
 
-#: ../src/filedata.c:123
+#: ../src/filedata.c:125
 #, c-format
 msgid "%.1f GB"
 msgstr ""
 
-#: ../src/filedata.c:2625
+#: ../src/filedata.c:2680
 msgid "file or directory does not exist"
 msgstr ""
 
-#: ../src/filedata.c:2631
+#: ../src/filedata.c:2686
 msgid "destination already exists"
 msgstr ""
 
-#: ../src/filedata.c:2637
+#: ../src/filedata.c:2692
 msgid "destination can't be overwritten"
 msgstr ""
 
-#: ../src/filedata.c:2643
+#: ../src/filedata.c:2698
 msgid "destination directory is not writable"
 msgstr ""
 
-#: ../src/filedata.c:2649
+#: ../src/filedata.c:2704
 msgid "destination directory does not exist"
 msgstr ""
 
-#: ../src/filedata.c:2655
+#: ../src/filedata.c:2710
 msgid "source directory is not writable"
 msgstr ""
 
-#: ../src/filedata.c:2661
+#: ../src/filedata.c:2716
 msgid "no read permission"
 msgstr ""
 
-#: ../src/filedata.c:2667
+#: ../src/filedata.c:2722
 msgid "file is readonly"
 msgstr ""
 
-#: ../src/filedata.c:2673
+#: ../src/filedata.c:2728
 msgid "destination already exists and will be overwritten"
 msgstr ""
 
-#: ../src/filedata.c:2679
+#: ../src/filedata.c:2734
 msgid "source and destination are the same"
 msgstr ""
 
-#: ../src/filedata.c:2685
+#: ../src/filedata.c:2740
 msgid "source and destination have different extension"
 msgstr ""
 
-#: ../src/filedata.c:2691
+#: ../src/filedata.c:2746
 msgid "there are unsaved metadata changes for the file"
 msgstr ""
 
-#: ../src/filedata.c:2697
+#: ../src/filedata.c:2752
 msgid "another destination file has the same filename"
 msgstr ""
 
-#: ../src/filedata.c:3251
+#: ../src/filedata.c:3306
 #, c-format
 msgid "Error: Unable to write marks lists to: %s\n"
 msgstr ""
 
-#: ../src/fullscreen.c:242 ../src/layout_util.c:1883 ../src/layout_util.c:1884
-#: ../src/layout_util.c:1885 ../src/preferences.c:2030
+#: ../src/fullscreen.c:242 ../src/layout_util.c:1966 ../src/layout_util.c:1967
+#: ../src/layout_util.c:1968 ../src/preferences.c:2046
 msgid "Full screen"
 msgstr ""
 
@@ -2067,7 +2144,7 @@ msgstr ""
 msgid "Unable to write history lists to: %s\n"
 msgstr ""
 
-#: ../src/image.c:190
+#: ../src/image.c:314
 #, c-format
 msgid " (Collection %s)"
 msgstr ""
@@ -2077,201 +2154,201 @@ msgstr ""
 msgid "Error interpreting JPEG image file (%s)"
 msgstr ""
 
-#: ../src/img-view.c:1312 ../src/layout_image.c:674 ../src/layout_util.c:1850
-#: ../src/layout_util.c:1851 ../src/layout_util.c:1866
-#: ../src/layout_util.c:1867 ../src/pan-view/pan-view.c:2275
+#: ../src/img-view.c:1321 ../src/layout_image.c:684 ../src/layout_util.c:1933
+#: ../src/layout_util.c:1934 ../src/layout_util.c:1949
+#: ../src/layout_util.c:1950 ../src/pan-view/pan-view.c:2294
 msgid "Zoom _in"
 msgstr ""
 
-#: ../src/img-view.c:1313 ../src/layout_image.c:675 ../src/layout_util.c:1852
-#: ../src/layout_util.c:1853 ../src/layout_util.c:1868
-#: ../src/layout_util.c:1869 ../src/pan-view/pan-view.c:2277
+#: ../src/img-view.c:1322 ../src/layout_image.c:685 ../src/layout_util.c:1935
+#: ../src/layout_util.c:1936 ../src/layout_util.c:1951
+#: ../src/layout_util.c:1952 ../src/pan-view/pan-view.c:2296
 msgid "Zoom _out"
 msgstr ""
 
-#: ../src/img-view.c:1314 ../src/layout_image.c:676 ../src/layout_util.c:1854
-#: ../src/layout_util.c:1855 ../src/layout_util.c:1870
-#: ../src/layout_util.c:1871 ../src/pan-view/pan-view.c:2279
+#: ../src/img-view.c:1323 ../src/layout_image.c:686 ../src/layout_util.c:1937
+#: ../src/layout_util.c:1938 ../src/layout_util.c:1953
+#: ../src/layout_util.c:1954 ../src/pan-view/pan-view.c:2298
 msgid "Zoom _1:1"
 msgstr ""
 
-#: ../src/img-view.c:1315 ../src/layout_image.c:677
+#: ../src/img-view.c:1324 ../src/layout_image.c:687
 msgid "Fit image to _window"
 msgstr ""
 
-#: ../src/img-view.c:1324 ../src/layout_image.c:687 ../src/layout_util.c:1848
+#: ../src/img-view.c:1333 ../src/layout_image.c:697 ../src/layout_util.c:1930
 msgid "Set as _wallpaper"
 msgstr ""
 
-#: ../src/img-view.c:1329 ../src/layout_image.c:694
+#: ../src/img-view.c:1338 ../src/layout_image.c:704
 msgid "_Go to directory view"
 msgstr ""
 
-#: ../src/img-view.c:1348 ../src/layout_image.c:719
+#: ../src/img-view.c:1366 ../src/layout_image.c:739
 msgid "_Stop slideshow"
 msgstr ""
 
-#: ../src/img-view.c:1351 ../src/layout_image.c:722
+#: ../src/img-view.c:1369 ../src/layout_image.c:742
 msgid "Continue slides_how"
 msgstr ""
 
-#: ../src/img-view.c:1356 ../src/img-view.c:1364 ../src/layout_image.c:727
-#: ../src/layout_image.c:734
+#: ../src/img-view.c:1374 ../src/img-view.c:1382 ../src/layout_image.c:747
+#: ../src/layout_image.c:754
 msgid "Pause slides_how"
 msgstr ""
 
-#: ../src/img-view.c:1362 ../src/layout_image.c:733
+#: ../src/img-view.c:1380 ../src/layout_image.c:753
 msgid "_Start slideshow"
 msgstr ""
 
-#: ../src/img-view.c:1370 ../src/layout_image.c:744
-#: ../src/pan-view/pan-view.c:2359
+#: ../src/img-view.c:1388 ../src/layout_image.c:764
+#: ../src/pan-view/pan-view.c:2386
 msgid "Exit _full screen"
 msgstr ""
 
-#: ../src/img-view.c:1374 ../src/layout_image.c:740
-#: ../src/pan-view/pan-view.c:2363
+#: ../src/img-view.c:1392 ../src/layout_image.c:760
+#: ../src/pan-view/pan-view.c:2390
 msgid "_Full screen"
 msgstr ""
 
-#: ../src/img-view.c:1378 ../src/layout_util.c:1826
-#: ../src/pan-view/pan-view.c:2367
+#: ../src/img-view.c:1396 ../src/layout_util.c:1908
+#: ../src/pan-view/pan-view.c:2394
 msgid "C_lose window"
 msgstr ""
 
-#: ../src/layout.c:407 ../src/view_file/view_file.c:658
+#: ../src/layout.c:424 ../src/view_file/view_file.c:666
 msgid "Ascending"
 msgstr ""
 
-#: ../src/layout.c:487
+#: ../src/layout.c:504
 msgid "Scroll to top left corner"
 msgstr ""
 
-#: ../src/layout.c:492
+#: ../src/layout.c:509
 msgid "Scroll to image center"
 msgstr ""
 
-#: ../src/layout.c:497
+#: ../src/layout.c:514
 msgid "Keep the region from previous image"
 msgstr ""
 
-#: ../src/layout.c:603
+#: ../src/layout.c:620
 msgid " Slideshow"
 msgstr ""
 
-#: ../src/layout.c:607
+#: ../src/layout.c:624
 msgid " Paused"
 msgstr ""
 
-#: ../src/layout.c:623
+#: ../src/layout.c:640
 #, c-format
 msgid "%s, %d files (%s, %d)%s"
 msgstr ""
 
-#: ../src/layout.c:630
+#: ../src/layout.c:647
 #, c-format
 msgid "%s, %d files%s"
 msgstr ""
 
-#: ../src/layout.c:635
+#: ../src/layout.c:652
 #, c-format
 msgid "%d files%s"
 msgstr ""
 
-#: ../src/layout.c:681
+#: ../src/layout.c:698
 #, c-format
 msgid "(no read permission) %s bytes"
 msgstr ""
 
-#: ../src/layout.c:685
+#: ../src/layout.c:702
 #, c-format
 msgid "( ? x ? ) %s bytes"
 msgstr ""
 
-#: ../src/layout.c:693
+#: ../src/layout.c:710
 #, c-format
 msgid "( %d x %d ) %s bytes"
 msgstr ""
 
-#: ../src/layout.c:779
+#: ../src/layout.c:796
 msgid "Select sort order"
 msgstr ""
 
-#: ../src/layout.c:784
+#: ../src/layout.c:801
 msgid "Folder contents (files selected)"
 msgstr ""
 
-#: ../src/layout.c:793
+#: ../src/layout.c:810
 msgid "(Image dimensions) Image size"
 msgstr ""
 
-#: ../src/layout.c:803
+#: ../src/layout.c:820
 msgid "Select zoom and scroll mode"
 msgstr ""
 
 #. expand only in small format
-#: ../src/layout.c:813
+#: ../src/layout.c:830
 msgid "[Pixel x,y coord]: (Pixel R,G,B value)"
 msgstr ""
 
-#: ../src/layout.c:1458 ../src/layout_config.c:67
+#: ../src/layout.c:1493 ../src/layout_config.c:67
 msgid "Tools"
 msgstr ""
 
-#: ../src/layout.c:2085
+#: ../src/layout.c:2123
 msgid "Window options and layout"
 msgstr ""
 
-#: ../src/layout.c:2150
+#: ../src/layout.c:2188
 msgid "General options"
 msgstr ""
 
-#: ../src/layout.c:2152
+#: ../src/layout.c:2190
 msgid "Home path (empty to use your home directory)"
 msgstr ""
 
-#: ../src/layout.c:2160
+#: ../src/layout.c:2198
 msgid "Use current"
 msgstr ""
 
-#: ../src/layout.c:2163
+#: ../src/layout.c:2201
 msgid "Show date in directories list view"
 msgstr ""
 
-#: ../src/layout.c:2166
+#: ../src/layout.c:2204
 msgid "Exit program when this window is closed"
 msgstr ""
 
-#: ../src/layout.c:2169
+#: ../src/layout.c:2207
 msgid "Start-up directory:"
 msgstr ""
 
-#: ../src/layout.c:2171
+#: ../src/layout.c:2209
 msgid "No change"
 msgstr ""
 
-#: ../src/layout.c:2174
+#: ../src/layout.c:2212
 msgid "Restore last path"
 msgstr ""
 
-#: ../src/layout.c:2177
+#: ../src/layout.c:2215
 msgid "Home path"
 msgstr ""
 
-#: ../src/layout.c:2181 ../src/print.c:3375 ../src/print.c:3382
+#: ../src/layout.c:2219
 msgid "Layout"
 msgstr ""
 
-#: ../src/layout.c:2428
+#: ../src/layout.c:2466
 msgid "Invalid geometry\n"
 msgstr ""
 
-#: ../src/layout_config.c:67 ../src/preferences.c:2150 ../src/ui_pathsel.c:1187
+#: ../src/layout_config.c:67 ../src/preferences.c:2358 ../src/ui_pathsel.c:1187
 msgid "Files"
 msgstr ""
 
-#: ../src/layout_config.c:67 ../src/preferences.c:109 ../src/preferences.c:1915
-#: ../src/print.c:133 ../src/search.c:2088 ../src/search.c:3239
+#: ../src/layout_config.c:67 ../src/preferences.c:116 ../src/preferences.c:1934
+#: ../src/search.c:2178 ../src/search.c:3363
 msgid "Image"
 msgstr ""
 
@@ -2279,1216 +2356,1239 @@ msgstr ""
 msgid "(drag to change order)"
 msgstr ""
 
-#: ../src/layout_image.c:747
+#: ../src/layout_image.c:767
 msgid "_Animate"
 msgstr ""
 
-#: ../src/layout_image.c:751
+#: ../src/layout_image.c:771
 msgid "Hide file _list"
 msgstr ""
 
-#: ../src/layout_image.c:1942
+#: ../src/layout_image.c:1962
 #, c-format
 msgid "[%*d,%*d]: RGB(%3d,%3d,%3d)"
 msgstr ""
 
-#: ../src/layout_image.c:1950
+#: ../src/layout_image.c:1970
 #, c-format
 msgid "[%*s,%*s]: RGB(---,---,---)"
 msgstr ""
 
-#: ../src/layout_util.c:255 ../src/layout_util.c:1912
+#: ../src/layout_util.c:265 ../src/layout_util.c:1995
 msgid "Clear Marks"
 msgstr ""
 
-#: ../src/layout_util.c:569
+#: ../src/layout_util.c:606
 msgid "Operation failed:\n"
 msgstr ""
 
-#: ../src/layout_util.c:572
+#: ../src/layout_util.c:609
 msgid "No file extension\n"
 msgstr ""
 
-#: ../src/layout_util.c:574
+#: ../src/layout_util.c:611
 msgid "Cannot create tmp file\n"
 msgstr ""
 
-#: ../src/layout_util.c:576
+#: ../src/layout_util.c:613
 msgid "Operation not supported for filetype\n"
 msgstr ""
 
-#: ../src/layout_util.c:578
+#: ../src/layout_util.c:615
 msgid "File is not writable\n"
 msgstr ""
 
-#: ../src/layout_util.c:580
+#: ../src/layout_util.c:617
 msgid "Exiftran error\n"
 msgstr ""
 
-#: ../src/layout_util.c:582
+#: ../src/layout_util.c:619
 msgid "Mogrify error\n"
 msgstr ""
 
-#: ../src/layout_util.c:586
+#: ../src/layout_util.c:623
 msgid "Image orientation"
 msgstr ""
 
-#: ../src/layout_util.c:1776
+#: ../src/layout_util.c:1857
 msgid "_File"
 msgstr ""
 
-#: ../src/layout_util.c:1777
+#: ../src/layout_util.c:1858
 msgid "_Go"
 msgstr ""
 
-#: ../src/layout_util.c:1778 ../src/menu.c:119
+#: ../src/layout_util.c:1859
 msgid "_Edit"
 msgstr ""
 
-#: ../src/layout_util.c:1779
+#: ../src/layout_util.c:1860
 msgid "_Select"
 msgstr ""
 
-#: ../src/layout_util.c:1780 ../src/menu.c:380
+#: ../src/layout_util.c:1861 ../src/menu.c:380
 msgid "_Orientation"
 msgstr ""
 
-#: ../src/layout_util.c:1781
+#: ../src/layout_util.c:1862
 msgid "_Rating"
 msgstr ""
 
-#: ../src/layout_util.c:1782
+#: ../src/layout_util.c:1863
 msgid "P_references"
 msgstr ""
 
-#: ../src/layout_util.c:1784
+#: ../src/layout_util.c:1865
 msgid "_Files and Folders"
 msgstr ""
 
-#: ../src/layout_util.c:1785
+#: ../src/layout_util.c:1866
 msgid "_Zoom"
 msgstr ""
 
-#: ../src/layout_util.c:1786
+#: ../src/layout_util.c:1867
 msgid "_Color Management"
 msgstr "_Colour Management"
 
-#: ../src/layout_util.c:1787
+#: ../src/layout_util.c:1868
 msgid "_Connected Zoom"
 msgstr ""
 
-#: ../src/layout_util.c:1788
+#: ../src/layout_util.c:1869
 msgid "Spli_t"
 msgstr ""
 
-#: ../src/layout_util.c:1789
+#: ../src/layout_util.c:1870
 msgid "Stere_o"
 msgstr ""
 
-#: ../src/layout_util.c:1790 ../src/layout_util.c:1928
+#: ../src/layout_util.c:1871 ../src/layout_util.c:2012
 msgid "Image _Overlay"
 msgstr ""
 
-#: ../src/layout_util.c:1791
+#: ../src/layout_util.c:1872
 msgid "_Plugins"
 msgstr ""
 
-#: ../src/layout_util.c:1792
+#: ../src/layout_util.c:1873
 msgid "_Help"
 msgstr ""
 
-#: ../src/layout_util.c:1794
+#: ../src/layout_util.c:1875
 msgid "_First Image"
 msgstr ""
 
-#: ../src/layout_util.c:1794 ../src/toolbar.c:74
+#: ../src/layout_util.c:1875 ../src/toolbar.c:74
 msgid "First Image"
 msgstr ""
 
-#: ../src/layout_util.c:1795 ../src/layout_util.c:1796
-#: ../src/layout_util.c:1797
+#: ../src/layout_util.c:1876 ../src/layout_util.c:1877
+#: ../src/layout_util.c:1878
 msgid "_Previous Image"
 msgstr ""
 
-#: ../src/layout_util.c:1795 ../src/layout_util.c:1796
-#: ../src/layout_util.c:1797 ../src/toolbar.c:75
+#: ../src/layout_util.c:1876 ../src/layout_util.c:1877
+#: ../src/layout_util.c:1878 ../src/toolbar.c:75
 msgid "Previous Image"
 msgstr ""
 
-#: ../src/layout_util.c:1798 ../src/layout_util.c:1799
-#: ../src/layout_util.c:1800
+#: ../src/layout_util.c:1879 ../src/layout_util.c:1880
+#: ../src/layout_util.c:1881
 msgid "_Next Image"
 msgstr ""
 
-#: ../src/layout_util.c:1798 ../src/layout_util.c:1799
-#: ../src/layout_util.c:1800 ../src/toolbar.c:76
+#: ../src/layout_util.c:1879 ../src/layout_util.c:1880
+#: ../src/layout_util.c:1881 ../src/toolbar.c:76
 msgid "Next Image"
 msgstr ""
 
-#: ../src/layout_util.c:1801
+#: ../src/layout_util.c:1882
 msgid "_Last Image"
 msgstr ""
 
-#: ../src/layout_util.c:1801 ../src/toolbar.c:77
+#: ../src/layout_util.c:1882 ../src/toolbar.c:77
 msgid "Last Image"
 msgstr ""
 
-#: ../src/layout_util.c:1802
+#: ../src/layout_util.c:1883
 msgid "_Back"
 msgstr ""
 
-#: ../src/layout_util.c:1802 ../src/toolbar.c:78
+#: ../src/layout_util.c:1883 ../src/toolbar.c:78
 msgid "Back"
 msgstr ""
 
-#: ../src/layout_util.c:1803
+#: ../src/layout_util.c:1884
 msgid "_Forward"
 msgstr ""
 
-#: ../src/layout_util.c:1803 ../src/toolbar.c:79
+#: ../src/layout_util.c:1884 ../src/toolbar.c:79
 msgid "Forward"
 msgstr ""
 
-#: ../src/layout_util.c:1804
+#: ../src/layout_util.c:1885
 msgid "_Home"
 msgstr ""
 
-#: ../src/layout_util.c:1804 ../src/options.c:203 ../src/toolbar.c:80
-#: ../src/ui_bookmark.c:567 ../src/ui_pathsel.c:1056
+#: ../src/layout_util.c:1885 ../src/options.c:217 ../src/toolbar.c:80
+#: ../src/ui_bookmark.c:578 ../src/ui_pathsel.c:1056
 msgid "Home"
 msgstr ""
 
-#: ../src/layout_util.c:1805
+#: ../src/layout_util.c:1886
 msgid "_Up"
 msgstr ""
 
-#: ../src/layout_util.c:1805 ../src/toolbar.c:81
+#: ../src/layout_util.c:1886 ../src/toolbar.c:81
 msgid "Up"
 msgstr ""
 
-#: ../src/layout_util.c:1807 ../src/toolbar.c:82
+#: ../src/layout_util.c:1888 ../src/toolbar.c:82
 msgid "New _window"
 msgstr ""
 
-#: ../src/layout_util.c:1807
+#: ../src/layout_util.c:1888
 msgid "New window"
 msgstr ""
 
-#: ../src/layout_util.c:1808
+#: ../src/layout_util.c:1889
 msgid "_New collection"
 msgstr ""
 
-#: ../src/layout_util.c:1808 ../src/menu.c:439 ../src/toolbar.c:83
+#: ../src/layout_util.c:1889 ../src/menu.c:439 ../src/toolbar.c:83
 msgid "New collection"
 msgstr ""
 
-#: ../src/layout_util.c:1809
+#: ../src/layout_util.c:1890
 msgid "_Open collection..."
 msgstr ""
 
-#: ../src/layout_util.c:1809
+#: ../src/layout_util.c:1890
 msgid "Open collection..."
 msgstr ""
 
-#: ../src/layout_util.c:1810
+#: ../src/layout_util.c:1891
 msgid "Open recen_t"
 msgstr ""
 
-#: ../src/layout_util.c:1810
+#: ../src/layout_util.c:1891
 msgid "Open recent"
 msgstr ""
 
-#: ../src/layout_util.c:1811
+#: ../src/layout_util.c:1892
 msgid "_Search..."
 msgstr ""
 
-#: ../src/layout_util.c:1811
+#: ../src/layout_util.c:1892
 msgid "Search..."
 msgstr ""
 
-#: ../src/layout_util.c:1812
+#: ../src/layout_util.c:1893
 msgid "Find duplicates..."
 msgstr ""
 
-#: ../src/layout_util.c:1813
+#: ../src/layout_util.c:1894
 msgid "Pa_n view"
 msgstr ""
 
-#: ../src/layout_util.c:1813 ../src/toolbar.c:87
+#: ../src/layout_util.c:1894 ../src/toolbar.c:93
 msgid "Pan view"
 msgstr ""
 
-#: ../src/layout_util.c:1814
+#: ../src/layout_util.c:1895
 msgid "_Print..."
 msgstr ""
 
-#: ../src/layout_util.c:1815
+#: ../src/layout_util.c:1896
 msgid "N_ew folder..."
 msgstr ""
 
-#: ../src/layout_util.c:1815
+#: ../src/layout_util.c:1896
 msgid "New folder..."
 msgstr ""
 
-#: ../src/layout_util.c:1816
+#: ../src/layout_util.c:1897
 msgid "Copy..."
 msgstr ""
 
-#: ../src/layout_util.c:1817
+#: ../src/layout_util.c:1898
 msgid "Move..."
 msgstr ""
 
-#: ../src/layout_util.c:1818
+#: ../src/layout_util.c:1899
 msgid "Rename..."
 msgstr ""
 
-#: ../src/layout_util.c:1819 ../src/layout_util.c:1820
-#: ../src/layout_util.c:1821
+#: ../src/layout_util.c:1903
 msgid "Delete..."
 msgstr ""
 
-#: ../src/layout_util.c:1822 ../src/view_file/view_file.c:640
+#: ../src/layout_util.c:1904 ../src/view_file/view_file.c:648
 msgid "Enable file _grouping"
 msgstr ""
 
-#: ../src/layout_util.c:1822
+#: ../src/layout_util.c:1904
 msgid "Enable file grouping"
 msgstr ""
 
-#: ../src/layout_util.c:1823 ../src/view_file/view_file.c:642
+#: ../src/layout_util.c:1905 ../src/view_file/view_file.c:650
 msgid "Disable file groupi_ng"
 msgstr ""
 
-#: ../src/layout_util.c:1823
+#: ../src/layout_util.c:1905
 msgid "Disable file grouping"
 msgstr ""
 
-#: ../src/layout_util.c:1824
+#: ../src/layout_util.c:1906
 msgid "_Copy path to clipboard"
 msgstr ""
 
-#: ../src/layout_util.c:1824
+#: ../src/layout_util.c:1906
 msgid "Copy path to clipboard"
 msgstr ""
 
-#: ../src/layout_util.c:1825
+#: ../src/layout_util.c:1907
 msgid "_Copy path unquoted to clipboard"
 msgstr ""
 
-#: ../src/layout_util.c:1825
+#: ../src/layout_util.c:1907
 msgid "Copy path unquoted to clipboard"
 msgstr ""
 
-#: ../src/layout_util.c:1826
+#: ../src/layout_util.c:1908
 msgid "Close window"
 msgstr ""
 
-#: ../src/layout_util.c:1827
+#: ../src/layout_util.c:1909
 msgid "_Quit"
 msgstr ""
 
-#: ../src/layout_util.c:1827 ../src/toolbar.c:117
+#: ../src/layout_util.c:1909 ../src/toolbar.c:136
 msgid "Quit"
 msgstr ""
 
-#: ../src/layout_util.c:1828 ../src/menu.c:322
+#: ../src/layout_util.c:1910 ../src/menu.c:322
 msgid "_Rotate clockwise"
 msgstr ""
 
-#: ../src/layout_util.c:1828
+#: ../src/layout_util.c:1910 ../src/toolbar.c:103
 msgid "Rotate clockwise"
 msgstr ""
 
-#: ../src/layout_util.c:1829
+#: ../src/layout_util.c:1911
 msgid "_Rating 0"
 msgstr ""
 
-#: ../src/layout_util.c:1829
+#: ../src/layout_util.c:1911
 msgid "Rating 0"
 msgstr ""
 
-#: ../src/layout_util.c:1830
+#: ../src/layout_util.c:1912
 msgid "_Rating 1"
 msgstr ""
 
-#: ../src/layout_util.c:1830
+#: ../src/layout_util.c:1912
 msgid "Rating 1"
 msgstr ""
 
-#: ../src/layout_util.c:1831
+#: ../src/layout_util.c:1913
 msgid "_Rating 2"
 msgstr ""
 
-#: ../src/layout_util.c:1831
+#: ../src/layout_util.c:1913
 msgid "Rating 2"
 msgstr ""
 
-#: ../src/layout_util.c:1832
+#: ../src/layout_util.c:1914
 msgid "_Rating 3"
 msgstr ""
 
-#: ../src/layout_util.c:1832
+#: ../src/layout_util.c:1914
 msgid "Rating 3"
 msgstr ""
 
-#: ../src/layout_util.c:1833
+#: ../src/layout_util.c:1915
 msgid "_Rating 4"
 msgstr ""
 
-#: ../src/layout_util.c:1833
+#: ../src/layout_util.c:1915
 msgid "Rating 4"
 msgstr ""
 
-#: ../src/layout_util.c:1834
+#: ../src/layout_util.c:1916
 msgid "_Rating 5"
 msgstr ""
 
-#: ../src/layout_util.c:1834
+#: ../src/layout_util.c:1916
 msgid "Rating 5"
 msgstr ""
 
-#: ../src/layout_util.c:1835
+#: ../src/layout_util.c:1917
 msgid "_Rating -1"
 msgstr ""
 
-#: ../src/layout_util.c:1835
+#: ../src/layout_util.c:1917
 msgid "Rating -1"
 msgstr ""
 
-#: ../src/layout_util.c:1836 ../src/menu.c:325
+#: ../src/layout_util.c:1918 ../src/menu.c:325
 msgid "Rotate _counterclockwise"
 msgstr ""
 
-#: ../src/layout_util.c:1836
+#: ../src/layout_util.c:1918 ../src/toolbar.c:104
 msgid "Rotate counterclockwise"
 msgstr ""
 
-#: ../src/layout_util.c:1837
+#: ../src/layout_util.c:1919
 msgid "Rotate 1_80"
 msgstr ""
 
-#: ../src/layout_util.c:1837
+#: ../src/layout_util.c:1919 ../src/toolbar.c:105
 msgid "Rotate 180"
 msgstr ""
 
-#: ../src/layout_util.c:1838 ../src/menu.c:331
+#: ../src/layout_util.c:1920 ../src/menu.c:331
 msgid "_Mirror"
 msgstr ""
 
-#: ../src/layout_util.c:1838
+#: ../src/layout_util.c:1920 ../src/toolbar.c:106
 msgid "Mirror"
 msgstr ""
 
-#: ../src/layout_util.c:1839 ../src/menu.c:334
+#: ../src/layout_util.c:1921 ../src/menu.c:334
 msgid "_Flip"
 msgstr ""
 
-#: ../src/layout_util.c:1839
+#: ../src/layout_util.c:1921 ../src/toolbar.c:107
 msgid "Flip"
 msgstr ""
 
-#: ../src/layout_util.c:1840 ../src/menu.c:337
+#: ../src/layout_util.c:1922 ../src/menu.c:337
 msgid "_Original state"
 msgstr ""
 
-#: ../src/layout_util.c:1840
+#: ../src/layout_util.c:1922 ../src/toolbar.c:108
 msgid "Original state"
 msgstr ""
 
-#: ../src/layout_util.c:1841
+#: ../src/layout_util.c:1923
 msgid "Select _all"
 msgstr ""
 
-#: ../src/layout_util.c:1842
+#: ../src/layout_util.c:1924
 msgid "Select _none"
 msgstr ""
 
-#: ../src/layout_util.c:1843
+#: ../src/layout_util.c:1925
 msgid "_Invert Selection"
 msgstr ""
 
-#: ../src/layout_util.c:1843
+#: ../src/layout_util.c:1925
 msgid "Invert Selection"
 msgstr ""
 
-#: ../src/layout_util.c:1844
+#: ../src/layout_util.c:1926
 msgid "P_references..."
 msgstr ""
 
-#: ../src/layout_util.c:1844
+#: ../src/layout_util.c:1926
 msgid "Preferences..."
 msgstr ""
 
-#: ../src/layout_util.c:1845
+#: ../src/layout_util.c:1927
 msgid "Configure _Plugins..."
 msgstr ""
 
-#: ../src/layout_util.c:1845
+#: ../src/layout_util.c:1927
 msgid "Configure Plugins..."
 msgstr ""
 
-#: ../src/layout_util.c:1846
+#: ../src/layout_util.c:1928
 msgid "_Configure this window..."
 msgstr ""
 
-#: ../src/layout_util.c:1846
+#: ../src/layout_util.c:1928
 msgid "Configure this window..."
 msgstr ""
 
-#: ../src/layout_util.c:1847
+#: ../src/layout_util.c:1929
 msgid "_Cache maintenance..."
 msgstr ""
 
-#: ../src/layout_util.c:1847
+#: ../src/layout_util.c:1929
 msgid "Cache maintenance..."
 msgstr ""
 
-#: ../src/layout_util.c:1848
+#: ../src/layout_util.c:1930
 msgid "Set as wallpaper"
 msgstr ""
 
-#: ../src/layout_util.c:1849
+#: ../src/layout_util.c:1931
 msgid "_Save metadata"
 msgstr ""
 
-#: ../src/layout_util.c:1849
+#: ../src/layout_util.c:1931
 msgid "Save metadata"
 msgstr ""
 
-#: ../src/layout_util.c:1850 ../src/layout_util.c:1851 ../src/toolbar.c:92
+#: ../src/layout_util.c:1932
+msgid "Keyword autocomplete"
+msgstr ""
+
+#: ../src/layout_util.c:1932
+msgid "Keyword Autocomplete"
+msgstr ""
+
+#: ../src/layout_util.c:1933 ../src/layout_util.c:1934 ../src/toolbar.c:109
 msgid "Zoom in"
 msgstr ""
 
-#: ../src/layout_util.c:1852 ../src/layout_util.c:1853 ../src/toolbar.c:93
+#: ../src/layout_util.c:1935 ../src/layout_util.c:1936 ../src/toolbar.c:110
 msgid "Zoom out"
 msgstr ""
 
-#: ../src/layout_util.c:1854 ../src/layout_util.c:1855 ../src/toolbar.c:94
+#: ../src/layout_util.c:1937 ../src/layout_util.c:1938 ../src/toolbar.c:111
 msgid "Zoom 1:1"
 msgstr ""
 
-#: ../src/layout_util.c:1856 ../src/layout_util.c:1857
-#: ../src/layout_util.c:1872 ../src/layout_util.c:1873
+#: ../src/layout_util.c:1939 ../src/layout_util.c:1940
+#: ../src/layout_util.c:1955 ../src/layout_util.c:1956
 msgid "_Zoom to fit"
 msgstr ""
 
-#: ../src/layout_util.c:1856 ../src/layout_util.c:1857 ../src/toolbar.c:95
+#: ../src/layout_util.c:1939 ../src/layout_util.c:1940 ../src/toolbar.c:112
 msgid "Zoom to fit"
 msgstr ""
 
-#: ../src/layout_util.c:1858 ../src/layout_util.c:1874
+#: ../src/layout_util.c:1941 ../src/layout_util.c:1957
 msgid "Fit _Horizontally"
 msgstr ""
 
-#: ../src/layout_util.c:1858
+#: ../src/layout_util.c:1941
 msgid "Fit Horizontally"
 msgstr ""
 
-#: ../src/layout_util.c:1859 ../src/layout_util.c:1875
+#: ../src/layout_util.c:1942 ../src/layout_util.c:1958
 msgid "Fit _Vertically"
 msgstr ""
 
-#: ../src/layout_util.c:1859
+#: ../src/layout_util.c:1942
 msgid "Fit Vertically"
 msgstr ""
 
-#: ../src/layout_util.c:1860 ../src/layout_util.c:1876
+#: ../src/layout_util.c:1943 ../src/layout_util.c:1959
 msgid "Zoom _2:1"
 msgstr ""
 
-#: ../src/layout_util.c:1860 ../src/toolbar.c:98
+#: ../src/layout_util.c:1943 ../src/toolbar.c:115
 msgid "Zoom 2:1"
 msgstr ""
 
-#: ../src/layout_util.c:1861 ../src/layout_util.c:1877
+#: ../src/layout_util.c:1944 ../src/layout_util.c:1960
 msgid "Zoom _3:1"
 msgstr ""
 
-#: ../src/layout_util.c:1861 ../src/toolbar.c:99
+#: ../src/layout_util.c:1944 ../src/toolbar.c:116
 msgid "Zoom 3:1"
 msgstr ""
 
-#: ../src/layout_util.c:1862 ../src/layout_util.c:1878
+#: ../src/layout_util.c:1945 ../src/layout_util.c:1961
 msgid "Zoom _4:1"
 msgstr ""
 
-#: ../src/layout_util.c:1862 ../src/toolbar.c:100
+#: ../src/layout_util.c:1945 ../src/toolbar.c:117
 msgid "Zoom 4:1"
 msgstr ""
 
-#: ../src/layout_util.c:1863 ../src/layout_util.c:1879 ../src/toolbar.c:101
+#: ../src/layout_util.c:1946 ../src/layout_util.c:1962 ../src/toolbar.c:118
 msgid "Zoom 1:2"
 msgstr ""
 
-#: ../src/layout_util.c:1864 ../src/layout_util.c:1880
+#: ../src/layout_util.c:1947 ../src/layout_util.c:1963
 msgid "Zoom 1:3"
 msgstr ""
 
-#: ../src/layout_util.c:1865 ../src/layout_util.c:1881 ../src/toolbar.c:103
+#: ../src/layout_util.c:1948 ../src/layout_util.c:1964 ../src/toolbar.c:120
 msgid "Zoom 1:4"
 msgstr ""
 
-#: ../src/layout_util.c:1866 ../src/layout_util.c:1867 ../src/toolbar.c:104
+#: ../src/layout_util.c:1949 ../src/layout_util.c:1950 ../src/toolbar.c:121
 msgid "Connected Zoom in"
 msgstr ""
 
-#: ../src/layout_util.c:1868 ../src/layout_util.c:1869
+#: ../src/layout_util.c:1951 ../src/layout_util.c:1952
 msgid "Connected Zoom out"
 msgstr ""
 
-#: ../src/layout_util.c:1870 ../src/layout_util.c:1871
+#: ../src/layout_util.c:1953 ../src/layout_util.c:1954
 msgid "Connected Zoom 1:1"
 msgstr ""
 
-#: ../src/layout_util.c:1872 ../src/layout_util.c:1873
+#: ../src/layout_util.c:1955 ../src/layout_util.c:1956
 msgid "Connected Zoom to fit"
 msgstr ""
 
-#: ../src/layout_util.c:1874
+#: ../src/layout_util.c:1957
 msgid "Connected Fit Horizontally"
 msgstr ""
 
-#: ../src/layout_util.c:1875
+#: ../src/layout_util.c:1958
 msgid "Connected Fit Vertically"
 msgstr ""
 
-#: ../src/layout_util.c:1876
+#: ../src/layout_util.c:1959
 msgid "Connected Zoom 2:1"
 msgstr ""
 
-#: ../src/layout_util.c:1877
+#: ../src/layout_util.c:1960
 msgid "Connected Zoom 3:1"
 msgstr ""
 
-#: ../src/layout_util.c:1878
+#: ../src/layout_util.c:1961
 msgid "Connected Zoom 4:1"
 msgstr ""
 
-#: ../src/layout_util.c:1879
+#: ../src/layout_util.c:1962
 msgid "Connected Zoom 1:2"
 msgstr ""
 
-#: ../src/layout_util.c:1880
+#: ../src/layout_util.c:1963
 msgid "Connected Zoom 1:3"
 msgstr ""
 
-#: ../src/layout_util.c:1881
+#: ../src/layout_util.c:1964
 msgid "Connected Zoom 1:4"
 msgstr ""
 
-#: ../src/layout_util.c:1882
+#: ../src/layout_util.c:1965
 msgid "_View in new window"
 msgstr ""
 
-#: ../src/layout_util.c:1882
+#: ../src/layout_util.c:1965
 msgid "View in new window"
 msgstr ""
 
-#: ../src/layout_util.c:1883 ../src/layout_util.c:1884
-#: ../src/layout_util.c:1885
+#: ../src/layout_util.c:1966 ../src/layout_util.c:1967
+#: ../src/layout_util.c:1968
 msgid "F_ull screen"
 msgstr ""
 
-#: ../src/layout_util.c:1886 ../src/layout_util.c:1887
+#: ../src/layout_util.c:1969 ../src/layout_util.c:1970
 msgid "_Leave full screen"
 msgstr ""
 
-#: ../src/layout_util.c:1886 ../src/layout_util.c:1887
+#: ../src/layout_util.c:1969 ../src/layout_util.c:1970
 msgid "Leave full screen"
 msgstr ""
 
-#: ../src/layout_util.c:1888
+#: ../src/layout_util.c:1971
 msgid "_Cycle through overlay modes"
 msgstr ""
 
-#: ../src/layout_util.c:1888
+#: ../src/layout_util.c:1971
 msgid "Cycle through Overlay modes"
 msgstr ""
 
-#: ../src/layout_util.c:1889
+#: ../src/layout_util.c:1972
 msgid "Cycle through histogram ch_annels"
 msgstr ""
 
-#: ../src/layout_util.c:1889
+#: ../src/layout_util.c:1972
 msgid "Cycle through histogram channels"
 msgstr ""
 
-#: ../src/layout_util.c:1890
+#: ../src/layout_util.c:1973
 msgid "Cycle through histogram mo_des"
 msgstr ""
 
-#: ../src/layout_util.c:1890
+#: ../src/layout_util.c:1973
 msgid "Cycle through histogram modes"
 msgstr ""
 
-#: ../src/layout_util.c:1891
+#: ../src/layout_util.c:1974
 msgid "_Hide file list"
 msgstr ""
 
-#: ../src/layout_util.c:1891 ../src/toolbar.c:105
+#: ../src/layout_util.c:1974 ../src/toolbar.c:122
 msgid "Hide file list"
 msgstr ""
 
-#: ../src/layout_util.c:1892
+#: ../src/layout_util.c:1975
 msgid "_Pause slideshow"
 msgstr ""
 
-#: ../src/layout_util.c:1892 ../src/toolbar.c:106
+#: ../src/layout_util.c:1975 ../src/toolbar.c:123
 msgid "Pause slideshow"
 msgstr ""
 
-#: ../src/layout_util.c:1893
+#: ../src/layout_util.c:1976
 msgid "Faster"
 msgstr ""
 
-#: ../src/layout_util.c:1894
+#: ../src/layout_util.c:1977
 msgid "Slower"
 msgstr ""
 
-#: ../src/layout_util.c:1895
+#: ../src/layout_util.c:1978
 msgid "_Refresh"
 msgstr ""
 
-#: ../src/layout_util.c:1895 ../src/toolbar.c:109
+#: ../src/layout_util.c:1978 ../src/toolbar.c:126
 msgid "Refresh"
 msgstr ""
 
-#: ../src/layout_util.c:1896
+#: ../src/layout_util.c:1979
 msgid "_Contents"
 msgstr ""
 
-#: ../src/layout_util.c:1896
+#: ../src/layout_util.c:1979
 msgid "Contents"
 msgstr ""
 
-#: ../src/layout_util.c:1897 ../src/window.c:371
+#: ../src/layout_util.c:1980 ../src/window.c:371
 msgid "On-line help search"
 msgstr ""
 
-#: ../src/layout_util.c:1898
+#: ../src/layout_util.c:1981
 msgid "_Keyboard shortcuts"
 msgstr ""
 
-#: ../src/layout_util.c:1898
+#: ../src/layout_util.c:1981
 msgid "Keyboard shortcuts"
 msgstr ""
 
-#: ../src/layout_util.c:1899
+#: ../src/layout_util.c:1982
 msgid "_Keyboard map"
 msgstr ""
 
-#: ../src/layout_util.c:1899
+#: ../src/layout_util.c:1982
 msgid "Keyboard map"
 msgstr ""
 
-#: ../src/layout_util.c:1900
+#: ../src/layout_util.c:1983
 msgid "_Release notes"
 msgstr ""
 
-#: ../src/layout_util.c:1900
+#: ../src/layout_util.c:1983
 msgid "Release notes"
 msgstr ""
 
-#: ../src/layout_util.c:1901
+#: ../src/layout_util.c:1984
 msgid "_ChangeLog"
 msgstr ""
 
-#: ../src/layout_util.c:1901
+#: ../src/layout_util.c:1984
 msgid "ChangeLog notes"
 msgstr ""
 
-#: ../src/layout_util.c:1902
+#: ../src/layout_util.c:1985
 msgid "_About"
 msgstr ""
 
-#: ../src/layout_util.c:1902
+#: ../src/layout_util.c:1985
 msgid "About"
 msgstr ""
 
-#: ../src/layout_util.c:1903
+#: ../src/layout_util.c:1986
 msgid "_Log Window"
 msgstr ""
 
-#: ../src/layout_util.c:1903
+#: ../src/layout_util.c:1986
 msgid "Log Window"
 msgstr ""
 
-#: ../src/layout_util.c:1904
+#: ../src/layout_util.c:1987
 msgid "_Exif window"
 msgstr ""
 
-#: ../src/layout_util.c:1904 ../src/toolbar.c:111
+#: ../src/layout_util.c:1987 ../src/toolbar.c:128
 msgid "Exif window"
 msgstr ""
 
-#: ../src/layout_util.c:1905
+#: ../src/layout_util.c:1988
 msgid "_Cycle through stereo modes"
 msgstr ""
 
-#: ../src/layout_util.c:1905
+#: ../src/layout_util.c:1988
 msgid "Cycle through stereo modes"
 msgstr ""
 
-#: ../src/layout_util.c:1906
+#: ../src/layout_util.c:1989
 msgid "_Next Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1906
+#: ../src/layout_util.c:1989
 msgid "Next Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1907
+#: ../src/layout_util.c:1990
 msgid "_Previous Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1907
+#: ../src/layout_util.c:1990
 msgid "Previous Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1908
+#: ../src/layout_util.c:1991
 msgid "_Up Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1908
+#: ../src/layout_util.c:1991
 msgid "Up Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1909
+#: ../src/layout_util.c:1992
 msgid "_Down Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1909
+#: ../src/layout_util.c:1992
 msgid "Down Pane"
 msgstr ""
 
-#: ../src/layout_util.c:1910
+#: ../src/layout_util.c:1993
 msgid "_Write orientation to file"
 msgstr ""
 
-#: ../src/layout_util.c:1910
+#: ../src/layout_util.c:1993
 msgid "Write orientation to file"
 msgstr ""
 
-#: ../src/layout_util.c:1911
+#: ../src/layout_util.c:1994
 msgid "_Write orientation to file (preserve timestamp)"
 msgstr ""
 
-#: ../src/layout_util.c:1911
+#: ../src/layout_util.c:1994
 msgid "Write orientation to file (preserve timestamp)"
 msgstr ""
 
-#: ../src/layout_util.c:1912
+#: ../src/layout_util.c:1995
 msgid "Clear Marks..."
 msgstr ""
 
-#: ../src/layout_util.c:1916
+#: ../src/layout_util.c:1999
 msgid "Show _Thumbnails"
 msgstr ""
 
-#: ../src/layout_util.c:1916
+#: ../src/layout_util.c:1999
 msgid "Show Thumbnails"
 msgstr ""
 
-#: ../src/layout_util.c:1917
+#: ../src/layout_util.c:2000
 msgid "Show _Marks"
 msgstr ""
 
-#: ../src/layout_util.c:1917
+#: ../src/layout_util.c:2000
 msgid "Show Marks"
 msgstr ""
 
-#: ../src/layout_util.c:1918
+#: ../src/layout_util.c:2001
+msgid "Show File Filter"
+msgstr ""
+
+#: ../src/layout_util.c:2002
 msgid "Pi_xel Info"
 msgstr ""
 
-#: ../src/layout_util.c:1918
+#: ../src/layout_util.c:2002
 msgid "Show Pixel Info"
 msgstr ""
 
-#: ../src/layout_util.c:1919
+#: ../src/layout_util.c:2003
 msgid "_Float file list"
 msgstr ""
 
-#: ../src/layout_util.c:1919 ../src/toolbar.c:114
+#: ../src/layout_util.c:2003 ../src/toolbar.c:133
 msgid "Float file list"
 msgstr ""
 
-#: ../src/layout_util.c:1920
+#: ../src/layout_util.c:2004
 msgid "Hide tool_bar"
 msgstr ""
 
-#: ../src/layout_util.c:1920
+#: ../src/layout_util.c:2004
 msgid "Hide toolbar"
 msgstr ""
 
-#: ../src/layout_util.c:1921
+#: ../src/layout_util.c:2005
 msgid "_Info sidebar"
 msgstr ""
 
-#: ../src/layout_util.c:1921 ../src/toolbar.c:115
+#: ../src/layout_util.c:2005 ../src/toolbar.c:134
 msgid "Info sidebar"
 msgstr ""
 
-#: ../src/layout_util.c:1922
+#: ../src/layout_util.c:2006
 msgid "Sort _manager"
 msgstr ""
 
-#: ../src/layout_util.c:1922 ../src/toolbar.c:116
+#: ../src/layout_util.c:2006 ../src/toolbar.c:135
 msgid "Sort manager"
 msgstr ""
 
-#: ../src/layout_util.c:1923
+#: ../src/layout_util.c:2007
 msgid "Hide Bars"
 msgstr ""
 
-#: ../src/layout_util.c:1924
+#: ../src/layout_util.c:2008
 msgid "Toggle _slideshow"
 msgstr ""
 
-#: ../src/layout_util.c:1924
+#: ../src/layout_util.c:2008
 msgid "Toggle slideshow"
 msgstr ""
 
-#: ../src/layout_util.c:1925
+#: ../src/layout_util.c:2009
 msgid "Use _color profiles"
 msgstr "Use _colour profiles"
 
-#: ../src/layout_util.c:1925
+#: ../src/layout_util.c:2009
 msgid "Use color profiles"
 msgstr "Use colour profiles"
 
-#: ../src/layout_util.c:1926
+#: ../src/layout_util.c:2010
 msgid "Use profile from _image"
 msgstr ""
 
-#: ../src/layout_util.c:1926
+#: ../src/layout_util.c:2010
 msgid "Use profile from image"
 msgstr ""
 
-#: ../src/layout_util.c:1927
+#: ../src/layout_util.c:2011
 msgid "Toggle _grayscale"
 msgstr ""
 
-#: ../src/layout_util.c:1927
+#: ../src/layout_util.c:2011
 msgid "Toggle grayscale"
 msgstr ""
 
-#: ../src/layout_util.c:1928
+#: ../src/layout_util.c:2012
 msgid "Image Overlay"
 msgstr ""
 
-#: ../src/layout_util.c:1929
+#: ../src/layout_util.c:2013
 msgid "_Show Histogram"
 msgstr ""
 
-#: ../src/layout_util.c:1929
+#: ../src/layout_util.c:2013
 msgid "Show Histogram"
 msgstr ""
 
-#: ../src/layout_util.c:1930
+#: ../src/layout_util.c:2014
+msgid "_Show Guidelines"
+msgstr ""
+
+#: ../src/layout_util.c:2014
+msgid "Show Guidelines"
+msgstr ""
+
+#: ../src/layout_util.c:2015
 msgid "Rectangular Selection"
 msgstr ""
 
-#: ../src/layout_util.c:1931
+#: ../src/layout_util.c:2016
 msgid "GIF _animation"
 msgstr ""
 
-#: ../src/layout_util.c:1931
+#: ../src/layout_util.c:2016
 msgid "Toggle GIF animation"
 msgstr ""
 
-#: ../src/layout_util.c:1932
+#: ../src/layout_util.c:2017
 msgid "_Exif rotate"
 msgstr ""
 
-#: ../src/layout_util.c:1932
+#: ../src/layout_util.c:2017
 msgid "Exif rotate"
 msgstr ""
 
-#: ../src/layout_util.c:1936
+#: ../src/layout_util.c:2018 ../src/toolbar.c:132
+msgid "Draw Rectangle"
+msgstr ""
+
+#: ../src/layout_util.c:2022
 msgid "Image _List"
 msgstr ""
 
-#: ../src/layout_util.c:1936
+#: ../src/layout_util.c:2022
 msgid "View Images as List"
 msgstr ""
 
-#: ../src/layout_util.c:1937
+#: ../src/layout_util.c:2023
 msgid "I_cons"
 msgstr ""
 
-#: ../src/layout_util.c:1937
+#: ../src/layout_util.c:2023
 msgid "View Images as Icons"
 msgstr ""
 
-#: ../src/layout_util.c:1941
+#: ../src/layout_util.c:2027
 msgid "T_oggle Folder View"
 msgstr ""
 
-#: ../src/layout_util.c:1941
+#: ../src/layout_util.c:2027
 msgid "Toggle Folders View"
 msgstr ""
 
-#: ../src/layout_util.c:1945
+#: ../src/layout_util.c:2031
 msgid "_Horizontal"
 msgstr ""
 
-#: ../src/layout_util.c:1945
+#: ../src/layout_util.c:2031
 msgid "Split Horizontal"
 msgstr ""
 
-#: ../src/layout_util.c:1946
+#: ../src/layout_util.c:2032
 msgid "_Vertical"
 msgstr ""
 
-#: ../src/layout_util.c:1946
+#: ../src/layout_util.c:2032
 msgid "Split Vertical"
 msgstr ""
 
-#: ../src/layout_util.c:1947
+#: ../src/layout_util.c:2033
 msgid "_Quad"
 msgstr ""
 
-#: ../src/layout_util.c:1947
+#: ../src/layout_util.c:2033
 msgid "Split Quad"
 msgstr ""
 
-#: ../src/layout_util.c:1948
+#: ../src/layout_util.c:2034
 msgid "_Single"
 msgstr ""
 
-#: ../src/layout_util.c:1948
+#: ../src/layout_util.c:2034
 msgid "Split Single"
 msgstr ""
 
-#: ../src/layout_util.c:1952
+#: ../src/layout_util.c:2038
 msgid "Input _0: sRGB"
 msgstr ""
 
-#: ../src/layout_util.c:1952
+#: ../src/layout_util.c:2038
 msgid "Input 0: sRGB"
 msgstr ""
 
-#: ../src/layout_util.c:1953
+#: ../src/layout_util.c:2039
 msgid "Input _1: AdobeRGB compatible"
 msgstr ""
 
-#: ../src/layout_util.c:1953
+#: ../src/layout_util.c:2039
 msgid "Input 1: AdobeRGB compatible"
 msgstr ""
 
-#: ../src/layout_util.c:1954
+#: ../src/layout_util.c:2040
 msgid "Input _2"
 msgstr ""
 
-#: ../src/layout_util.c:1954
+#: ../src/layout_util.c:2040
 msgid "Input 2"
 msgstr ""
 
-#: ../src/layout_util.c:1955
+#: ../src/layout_util.c:2041
 msgid "Input _3"
 msgstr ""
 
-#: ../src/layout_util.c:1955
+#: ../src/layout_util.c:2041
 msgid "Input 3"
 msgstr ""
 
-#: ../src/layout_util.c:1956
+#: ../src/layout_util.c:2042
 msgid "Input _4"
 msgstr ""
 
-#: ../src/layout_util.c:1956
+#: ../src/layout_util.c:2042
 msgid "Input 4"
 msgstr ""
 
-#: ../src/layout_util.c:1957
+#: ../src/layout_util.c:2043
 msgid "Input _5"
 msgstr ""
 
-#: ../src/layout_util.c:1957
+#: ../src/layout_util.c:2043
 msgid "Input 5"
 msgstr ""
 
-#: ../src/layout_util.c:1961
+#: ../src/layout_util.c:2047
 msgid "Histogram on Red"
 msgstr ""
 
-#: ../src/layout_util.c:1962
+#: ../src/layout_util.c:2048
 msgid "Histogram on Green"
 msgstr ""
 
-#: ../src/layout_util.c:1963
+#: ../src/layout_util.c:2049
 msgid "Histogram on Blue"
 msgstr ""
 
-#: ../src/layout_util.c:1964
+#: ../src/layout_util.c:2050
 msgid "Histogram on RGB"
 msgstr ""
 
-#: ../src/layout_util.c:1965
+#: ../src/layout_util.c:2051
 msgid "Histogram on Value"
 msgstr ""
 
-#: ../src/layout_util.c:1969
+#: ../src/layout_util.c:2055
 msgid "Linear Histogram"
 msgstr ""
 
-#: ../src/layout_util.c:1970
+#: ../src/layout_util.c:2056
 msgid "_Log Histogram"
 msgstr ""
 
-#: ../src/layout_util.c:1970
+#: ../src/layout_util.c:2056
 msgid "Log Histogram"
 msgstr ""
 
-#: ../src/layout_util.c:1974
+#: ../src/layout_util.c:2060
 msgid "_Auto"
 msgstr ""
 
-#: ../src/layout_util.c:1974
+#: ../src/layout_util.c:2060
 msgid "Stereo Auto"
 msgstr ""
 
-#: ../src/layout_util.c:1975
+#: ../src/layout_util.c:2061
 msgid "_Side by Side"
 msgstr ""
 
-#: ../src/layout_util.c:1975
+#: ../src/layout_util.c:2061
 msgid "Stereo Side by Side"
 msgstr ""
 
-#: ../src/layout_util.c:1976
+#: ../src/layout_util.c:2062
 msgid "_Cross"
 msgstr ""
 
-#: ../src/layout_util.c:1976
+#: ../src/layout_util.c:2062
 msgid "Stereo Cross"
 msgstr ""
 
-#: ../src/layout_util.c:1977
+#: ../src/layout_util.c:2063
 msgid "_Off"
 msgstr ""
 
-#: ../src/layout_util.c:1977
+#: ../src/layout_util.c:2063
 msgid "Stereo Off"
 msgstr ""
 
-#: ../src/layout_util.c:2290
+#: ../src/layout_util.c:2384
 #, c-format
 msgid "Mark _%d"
 msgstr ""
 
-#: ../src/layout_util.c:2291 ../src/view_file/view_file.c:574
+#: ../src/layout_util.c:2385 ../src/view_file/view_file.c:575
 #, c-format
 msgid "_Set mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2291
+#: ../src/layout_util.c:2385
 #, c-format
 msgid "Set mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2292 ../src/view_file/view_file.c:575
+#: ../src/layout_util.c:2386 ../src/view_file/view_file.c:576
 #, c-format
 msgid "_Reset mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2292
+#: ../src/layout_util.c:2386
 #, c-format
 msgid "Reset mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2293 ../src/layout_util.c:2294
-#: ../src/view_file/view_file.c:576
+#: ../src/layout_util.c:2387 ../src/layout_util.c:2388
+#: ../src/view_file/view_file.c:577
 #, c-format
 msgid "_Toggle mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2293 ../src/layout_util.c:2294
+#: ../src/layout_util.c:2387 ../src/layout_util.c:2388
 #, c-format
 msgid "Toggle mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2295
+#: ../src/layout_util.c:2389
 #, c-format
 msgid "Se_lect mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2295 ../src/layout_util.c:2296
+#: ../src/layout_util.c:2389 ../src/layout_util.c:2390
 #, c-format
 msgid "Select mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2296 ../src/view_file/view_file.c:577
+#: ../src/layout_util.c:2390 ../src/view_file/view_file.c:578
 #, c-format
 msgid "_Select mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2297 ../src/view_file/view_file.c:578
+#: ../src/layout_util.c:2391 ../src/view_file/view_file.c:579
 #, c-format
 msgid "_Add mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2297
+#: ../src/layout_util.c:2391
 #, c-format
 msgid "Add mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2298 ../src/view_file/view_file.c:579
+#: ../src/layout_util.c:2392 ../src/view_file/view_file.c:580
 #, c-format
 msgid "_Intersection with mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2298
+#: ../src/layout_util.c:2392
 #, c-format
 msgid "Intersection with mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2299 ../src/view_file/view_file.c:580
+#: ../src/layout_util.c:2393 ../src/view_file/view_file.c:581
 #, c-format
 msgid "_Unselect mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2299
+#: ../src/layout_util.c:2393
 #, c-format
 msgid "Unselect mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2300
+#: ../src/layout_util.c:2394
 #, c-format
 msgid "_Filter mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2300
+#: ../src/layout_util.c:2394
 #, c-format
 msgid "Filter mark %d"
 msgstr ""
 
-#: ../src/layout_util.c:2854
+#: ../src/layout_util.c:2966
 #, c-format
 msgid "Number of files with unsaved metadata: %d"
 msgstr ""
 
-#: ../src/layout_util.c:2860
+#: ../src/layout_util.c:2972
 msgid "No unsaved metadata"
 msgstr ""
 
-#: ../src/layout_util.c:2907
+#: ../src/layout_util.c:3019
 #, c-format
 msgid ""
 "Image profile: %s\n"
 "Screen profile: %s"
 msgstr ""
 
-#: ../src/layout_util.c:2915
+#: ../src/layout_util.c:3027
 msgid "Click to enable color management"
 msgstr "Click to enable colour management"
 
-#: ../src/layout_util.c:2920
+#: ../src/layout_util.c:3032
 msgid "Color profiles not supported"
 msgstr "Colour profiles not supported"
 
-#: ../src/layout_util.c:2942
+#: ../src/layout_util.c:3054
 #, c-format
 msgid "Input _%d: %s"
 msgstr ""
@@ -3511,7 +3611,7 @@ msgstr ""
 msgid "Log"
 msgstr ""
 
-#: ../src/logwindow.c:172 ../src/preferences.c:2636
+#: ../src/logwindow.c:172 ../src/preferences.c:3218
 msgid "Debug level:"
 msgstr ""
 
@@ -3642,7 +3742,7 @@ msgstr ""
 msgid "Collections have been modified. Quit anyway?"
 msgstr ""
 
-#: ../src/main.c:973 ../src/remote.c:790
+#: ../src/main.c:973 ../src/remote.c:847
 msgid "Command line"
 msgstr ""
 
@@ -3694,7 +3794,7 @@ msgstr ""
 msgid "Zoom to original size"
 msgstr ""
 
-#: ../src/menu.c:245 ../src/preferences.c:1936
+#: ../src/menu.c:245 ../src/preferences.c:1955
 msgid "Fit image to window"
 msgstr ""
 
@@ -3702,7 +3802,7 @@ msgstr ""
 msgid "Leave Zoom at previous setting"
 msgstr ""
 
-#: ../src/menu.c:303 ../src/preferences.c:1917
+#: ../src/menu.c:303 ../src/preferences.c:1936 ../src/preferences.c:2066
 msgid "Zoom"
 msgstr ""
 
@@ -3798,7 +3898,7 @@ msgstr ""
 msgid "Sea"
 msgstr ""
 
-#: ../src/metadata.c:1733 ../src/print.c:385
+#: ../src/metadata.c:1733
 msgid "Landscape"
 msgstr ""
 
@@ -3934,7 +4034,7 @@ msgstr ""
 msgid "Macro"
 msgstr ""
 
-#: ../src/metadata.c:1769 ../src/print.c:384
+#: ../src/metadata.c:1769
 msgid "Portrait"
 msgstr ""
 
@@ -3946,12 +4046,12 @@ msgstr ""
 msgid "Perspective"
 msgstr ""
 
-#: ../src/options.c:205 ../src/ui_bookmark.c:578
+#: ../src/options.c:219 ../src/ui_bookmark.c:589
 msgid "Desktop"
 msgstr ""
 
-#: ../src/options.c:226 ../src/search.c:2140 ../src/search.c:2144
-#: ../src/search.c:3258 ../src/search.c:3262 ../src/view_file/view_file.c:820
+#: ../src/options.c:240 ../src/search.c:2230 ../src/search.c:2234
+#: ../src/search.c:3382 ../src/search.c:3386 ../src/view_file/view_file.c:828
 msgid "Mark "
 msgstr ""
 
@@ -3977,140 +4077,141 @@ msgstr ""
 msgid "Sorting images..."
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1408 ../src/print.c:2609
+#: ../src/pan-view/pan-view.c:1412
 msgid "Filename:"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1410 ../src/pan-view/pan-view.c:1823
-#: ../src/preferences.c:2034
+#: ../src/pan-view/pan-view.c:1414 ../src/pan-view/pan-view.c:1827
+#: ../src/preferences.c:2050
 msgid "Location:"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1412 ../src/pan-view/pan-view-search.c:377
+#: ../src/pan-view/pan-view.c:1416 ../src/pan-view/pan-view-search.c:377
 msgid "Date:"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1414 ../src/preferences.c:1717
-#: ../src/print.c:3222 ../src/print.c:3427
+#: ../src/pan-view/pan-view.c:1418 ../src/preferences.c:1724
 msgid "Size:"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1721 ../src/search.c:2560
+#: ../src/pan-view/pan-view.c:1725 ../src/search.c:2680
 msgid "Folder not found"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1722
+#: ../src/pan-view/pan-view.c:1726
 msgid "The entered path is not a folder"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1807
+#: ../src/pan-view/pan-view.c:1811
 msgid "Pan View"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1830
+#: ../src/pan-view/pan-view.c:1834
 msgid "Timeline"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1831
+#: ../src/pan-view/pan-view.c:1835
 msgid "Calendar"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1833
+#: ../src/pan-view/pan-view.c:1837
 msgid "Folders (flower)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1834
+#: ../src/pan-view/pan-view.c:1838
 msgid "Grid"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1843
+#: ../src/pan-view/pan-view.c:1847
 msgid "Dots"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1844
+#: ../src/pan-view/pan-view.c:1848
 msgid "No Images"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1845
+#: ../src/pan-view/pan-view.c:1849
 msgid "Small Thumbnails"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1846
+#: ../src/pan-view/pan-view.c:1850
 msgid "Normal Thumbnails"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1847
+#: ../src/pan-view/pan-view.c:1851
 msgid "Large Thumbnails"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1848 ../src/pan-view/pan-view.c:2349
+#: ../src/pan-view/pan-view.c:1852 ../src/pan-view/pan-view.c:2376
 msgid "1:10 (10%)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1849 ../src/pan-view/pan-view.c:2345
+#: ../src/pan-view/pan-view.c:1853 ../src/pan-view/pan-view.c:2372
 msgid "1:4 (25%)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1850 ../src/pan-view/pan-view.c:2341
+#: ../src/pan-view/pan-view.c:1854 ../src/pan-view/pan-view.c:2368
 msgid "1:3 (33%)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1851 ../src/pan-view/pan-view.c:2337
+#: ../src/pan-view/pan-view.c:1855 ../src/pan-view/pan-view.c:2364
 msgid "1:2 (50%)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1852
+#: ../src/pan-view/pan-view.c:1856
 msgid "1:1 (100%)"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:1998
+#: ../src/pan-view/pan-view.c:2002
 msgid "Pan View Performance"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2005
+#: ../src/pan-view/pan-view.c:2009
 msgid "Pan view performance may be poor."
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2006
+#: ../src/pan-view/pan-view.c:2010
 msgid ""
-"To improve performance of thumbnails in the pan view the following options "
-"can be enabled. Note that both options must be enabled to notice a change in "
-"performance."
+"To improve the performance of thumbnails in\n"
+"pan view the following options can be enabled.\n"
+"\n"
+"Note that both options must be enabled to\n"
+"notice a change in performance."
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2014 ../src/preferences.c:1720
+#: ../src/pan-view/pan-view.c:2016 ../src/preferences.c:1727
 msgid "Cache thumbnails"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2016
+#: ../src/pan-view/pan-view.c:2018
 msgid "Use shared thumbnail cache"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2022
+#: ../src/pan-view/pan-view.c:2024
 msgid "Do not show this dialog again"
 msgstr "Do not show this dialogue again"
 
-#: ../src/pan-view/pan-view.c:2271 ../src/search.c:1091
+#: ../src/pan-view/pan-view.c:2290 ../src/search.c:1103
 msgid "_Play"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2317
+#: ../src/pan-view/pan-view.c:2344
 msgid "Sort by E_xif date"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2323
+#: ../src/pan-view/pan-view.c:2350
 msgid "_Show Exif information"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2325
+#: ../src/pan-view/pan-view.c:2352
 msgid "Show im_age"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2329
+#: ../src/pan-view/pan-view.c:2356
 msgid "_None"
 msgstr ""
 
-#: ../src/pan-view/pan-view.c:2333
+#: ../src/pan-view/pan-view.c:2360
 msgid "_Full size"
 msgstr ""
 
@@ -4150,7 +4251,7 @@ msgstr ""
 msgid "Keyword Filter:"
 msgstr ""
 
-#: ../src/pan-view/pan-view-filter.c:105 ../src/preferences.c:2198
+#: ../src/pan-view/pan-view-filter.c:105 ../src/preferences.c:2406
 msgid "Filter"
 msgstr ""
 
@@ -4182,271 +4283,297 @@ msgstr ""
 msgid "no match"
 msgstr ""
 
-#: ../src/preferences.c:108 ../src/search.c:3243
+#: ../src/preferences.c:115 ../src/search.c:3367
 msgid "Unknown"
 msgstr ""
 
-#: ../src/preferences.c:110
+#: ../src/preferences.c:117
 msgid "RAW Image"
 msgstr ""
 
-#: ../src/preferences.c:112 ../src/search.c:2098 ../src/search.c:3241
+#: ../src/preferences.c:119 ../src/search.c:2188 ../src/search.c:3365
 msgid "Video"
 msgstr ""
 
-#: ../src/preferences.c:570
+#: ../src/preferences.c:120 ../src/preferences.c:2068
+msgid "Collection"
+msgstr ""
+
+#: ../src/preferences.c:121
+msgid "Pdf"
+msgstr ""
+
+#: ../src/preferences.c:589
 msgid "Nearest (worst, but fastest)"
 msgstr ""
 
-#: ../src/preferences.c:572
+#: ../src/preferences.c:591
 msgid "Tiles"
 msgstr ""
 
-#: ../src/preferences.c:574
+#: ../src/preferences.c:593
 msgid "Bilinear"
 msgstr ""
 
-#: ../src/preferences.c:576
+#: ../src/preferences.c:595
 msgid "Hyper (best, but slowest)"
 msgstr ""
 
-#: ../src/preferences.c:601
+#: ../src/preferences.c:620
 msgid "PRIMARY"
 msgstr ""
 
-#: ../src/preferences.c:603
+#: ../src/preferences.c:622
 msgid "CLIPBOARD"
 msgstr ""
 
-#: ../src/preferences.c:668 ../src/print.c:390
+#: ../src/preferences.c:687
 msgid "Custom"
 msgstr ""
 
-#: ../src/preferences.c:751
+#: ../src/preferences.c:770
 msgid "Single image"
 msgstr ""
 
-#: ../src/preferences.c:753
+#: ../src/preferences.c:772
 msgid "Anaglyph Red-Cyan"
 msgstr ""
 
-#: ../src/preferences.c:755
+#: ../src/preferences.c:774
 msgid "Anaglyph Green-Magenta"
 msgstr ""
 
-#: ../src/preferences.c:757
+#: ../src/preferences.c:776
 msgid "Anaglyph Yellow-Blue"
 msgstr ""
 
-#: ../src/preferences.c:759
+#: ../src/preferences.c:778
 msgid "Anaglyph Gray Red-Cyan"
 msgstr ""
 
-#: ../src/preferences.c:761
+#: ../src/preferences.c:780
 msgid "Anaglyph Gray Green-Magenta"
 msgstr ""
 
-#: ../src/preferences.c:763
+#: ../src/preferences.c:782
 msgid "Anaglyph Gray Yellow-Blue"
 msgstr ""
 
-#: ../src/preferences.c:765
+#: ../src/preferences.c:784
 msgid "Anaglyph Dubois Red-Cyan"
 msgstr ""
 
-#: ../src/preferences.c:767
+#: ../src/preferences.c:786
 msgid "Anaglyph Dubois Green-Magenta"
 msgstr ""
 
-#: ../src/preferences.c:769
+#: ../src/preferences.c:788
 msgid "Anaglyph Dubois Yellow-Blue"
 msgstr ""
 
-#: ../src/preferences.c:772
+#: ../src/preferences.c:791
 msgid "Side by Side"
 msgstr ""
 
-#: ../src/preferences.c:773
+#: ../src/preferences.c:792
 msgid "Side by Side Half size"
 msgstr ""
 
-#: ../src/preferences.c:780
+#: ../src/preferences.c:799
 msgid "Top - Bottom"
 msgstr ""
 
-#: ../src/preferences.c:781
+#: ../src/preferences.c:800
 msgid "Top - Bottom Half size"
 msgstr ""
 
-#: ../src/preferences.c:790 ../src/preferences.c:2827
+#: ../src/preferences.c:809 ../src/preferences.c:3409
 msgid "Fixed position"
 msgstr ""
 
-#: ../src/preferences.c:1129 ../src/preferences.c:1132
+#: ../src/preferences.c:1148 ../src/preferences.c:1151
 msgid "Reset filters"
 msgstr ""
 
-#: ../src/preferences.c:1133
+#: ../src/preferences.c:1152
 msgid ""
 "This will reset the file filters to the defaults.\n"
 "Continue?"
 msgstr ""
 
-#: ../src/preferences.c:1160 ../src/preferences.c:1163
+#: ../src/preferences.c:1179 ../src/preferences.c:1182
 msgid "Clear trash"
 msgstr "Clear Rubbish Bin"
 
-#: ../src/preferences.c:1164
+#: ../src/preferences.c:1183
 msgid "This will remove the trash contents."
 msgstr "This will remove the Rubbish Bin contents."
 
-#: ../src/preferences.c:1208 ../src/preferences.c:1211
+#: ../src/preferences.c:1227 ../src/preferences.c:1230
 msgid "Reset image overlay template string"
 msgstr ""
 
-#: ../src/preferences.c:1212
+#: ../src/preferences.c:1231
 msgid ""
 "This will reset the image overlay template string to the default.\n"
 "Continue?"
 msgstr ""
 
-#: ../src/preferences.c:1712
+#: ../src/preferences.c:1719
 msgid "General"
 msgstr ""
 
-#: ../src/preferences.c:1718 ../src/preferences.c:1920
+#: ../src/preferences.c:1725 ../src/preferences.c:1939
 msgid "Quality:"
 msgstr ""
 
-#: ../src/preferences.c:1726
+#: ../src/preferences.c:1735
 msgid "Use Geeqie thumbnail style and cache"
 msgstr ""
 
-#: ../src/preferences.c:1733
+#: ../src/preferences.c:1742
 msgid "Store thumbnails local to image folder (non-standard)"
 msgstr ""
 
-#: ../src/preferences.c:1740
+#: ../src/preferences.c:1749
 msgid "Use standard thumbnail style and cache, shared with other applications"
 msgstr ""
 
-#: ../src/preferences.c:1746
+#: ../src/preferences.c:1755
 msgid "Use EXIF thumbnails when available (EXIF thumbnails may be outdated)"
 msgstr ""
 
-#: ../src/preferences.c:1750
+#: ../src/preferences.c:1758
+msgid "Collection preview:"
+msgstr ""
+
+#: ../src/preferences.c:1761
+msgid "The maximum number of thumbnails shown in a Collection preview montage"
+msgstr ""
+
+#: ../src/preferences.c:1764
 msgid "Use embedded metadata in video files as thumbnails when available"
 msgstr ""
 
-#: ../src/preferences.c:1757
+#: ../src/preferences.c:1771
 msgid "Star Rating"
 msgstr ""
 
-#: ../src/preferences.c:1773 ../src/preferences.c:1805
+#: ../src/preferences.c:1787 ../src/preferences.c:1819
 msgid "Set"
 msgstr ""
 
-#: ../src/preferences.c:1775 ../src/preferences.c:1807
+#: ../src/preferences.c:1789 ../src/preferences.c:1821
 msgid "Display selected character"
 msgstr ""
 
-#: ../src/preferences.c:1778 ../src/preferences.c:1810
+#: ../src/preferences.c:1792 ../src/preferences.c:1824
 msgid ""
 "Hexadecimal representation of a Unicode character. A list of all Unicode "
 "characters may be found on the Internet."
 msgstr ""
 
-#: ../src/preferences.c:1782 ../src/preferences.c:1814
-#: ../src/preferences.c:1894 ../src/window.c:397
+#: ../src/preferences.c:1796 ../src/preferences.c:1828
+#: ../src/preferences.c:1913 ../src/window.c:397
 msgid "Clear"
 msgstr ""
 
-#: ../src/preferences.c:1786 ../src/preferences.c:1818
-#: ../src/preferences.c:1898
+#: ../src/preferences.c:1800 ../src/preferences.c:1832
+#: ../src/preferences.c:1917
 msgid "Default"
 msgstr ""
 
-#: ../src/preferences.c:1826
+#: ../src/preferences.c:1840
 msgid "Slide show"
 msgstr ""
 
-#: ../src/preferences.c:1837
+#: ../src/preferences.c:1851
 msgid "Delay between image change hrs:mins:secs.dec"
 msgstr ""
 
-#: ../src/preferences.c:1853
+#: ../src/preferences.c:1867
 msgid "Random"
 msgstr ""
 
-#: ../src/preferences.c:1854
+#: ../src/preferences.c:1868
 msgid "Repeat"
 msgstr ""
 
-#: ../src/preferences.c:1856
+#: ../src/preferences.c:1870
 msgid "Image loading and caching"
 msgstr ""
 
-#: ../src/preferences.c:1858
+#: ../src/preferences.c:1872
 msgid "Decoded image cache size (Mb):"
 msgstr ""
 
-#: ../src/preferences.c:1860
+#: ../src/preferences.c:1874
 msgid "Preload next image"
 msgstr ""
 
-#: ../src/preferences.c:1863
+#: ../src/preferences.c:1877
 msgid "Refresh on file change"
 msgstr ""
 
-#: ../src/preferences.c:1866
+#: ../src/preferences.c:1880
 msgid "Info sidebar heights"
 msgstr ""
 
-#: ../src/preferences.c:1867
+#: ../src/preferences.c:1881
 msgid "NOTE! Geeqie must be restarted for changes to take effect"
 msgstr ""
 
-#: ../src/preferences.c:1869
+#: ../src/preferences.c:1883
 msgid "Keywords:"
 msgstr ""
 
-#: ../src/preferences.c:1875
+#: ../src/preferences.c:1889
 msgid "Comment:"
 msgstr ""
 
-#: ../src/preferences.c:1878
+#: ../src/preferences.c:1892
 msgid "Rating:"
 msgstr ""
 
-#: ../src/preferences.c:1882
+#: ../src/preferences.c:1896
+msgid "Show predefined keyword tree"
+msgstr ""
+
+#: ../src/preferences.c:1898
+msgid ""
+"Show predefined keyword tree (NOTE! Geeqie must be restarted for change to "
+"take effect)"
+msgstr ""
+
+#: ../src/preferences.c:1901
 msgid "On-line help search engine"
 msgstr ""
 
-#: ../src/preferences.c:1889
+#: ../src/preferences.c:1908
 msgid ""
 "The format varies between search engines, e.g the format may be:\n"
 "https://www.search_engine.com/search?q=site:geeqie.org/help\n"
 "https://www.search_engine.com/?q=site:geeqie.org/help"
 msgstr ""
 
-#: ../src/preferences.c:1923
+#: ../src/preferences.c:1942
 msgid "Use GPU acceleration via Clutter library"
 msgstr ""
 
-#: ../src/preferences.c:1927
+#: ../src/preferences.c:1946
 msgid "Two pass rendering (apply HQ zoom and color correction in second pass)"
 msgstr ""
 "Two pass rendering (apply HQ zoom and colour correction in second pass)"
 
-#: ../src/preferences.c:1931
+#: ../src/preferences.c:1950
 msgid "Zoom increment:"
 msgstr ""
 
-#: ../src/preferences.c:1939
+#: ../src/preferences.c:1958
 msgid "Allow enlargement of image (max. size in %)"
 msgstr ""
 
-#: ../src/preferences.c:1945
+#: ../src/preferences.c:1964
 #, c-format
 msgid ""
 "Enable this to allow Geeqie to increase the image size for images that are "
@@ -4455,12 +4582,12 @@ msgid ""
 "100% is full-size."
 msgstr ""
 
-#: ../src/preferences.c:1948
+#: ../src/preferences.c:1967
 #, c-format
 msgid "Virtual window size (% of actual window):"
 msgstr ""
 
-#: ../src/preferences.c:1954
+#: ../src/preferences.c:1973
 msgid ""
 "This value will set the virtual size of the window when \"Fit image to window"
 "\" is set. Instead of using the actual size of the window, the specified "
@@ -4469,822 +4596,656 @@ msgid ""
 "than 100%). It affects fullscreen mode too."
 msgstr ""
 
-#: ../src/preferences.c:1956
+#: ../src/preferences.c:1975
 msgid "Appearance"
 msgstr ""
 
-#: ../src/preferences.c:1958
+#: ../src/preferences.c:1977
 msgid "Use custom border color in window mode"
 msgstr "Use custom border colour in window mode"
 
-#: ../src/preferences.c:1961
+#: ../src/preferences.c:1980
 msgid "Use custom border color in fullscreen mode"
 msgstr "Use custom border colour in fullscreen mode"
 
-#: ../src/preferences.c:1964
+#: ../src/preferences.c:1983
 msgid "Border color"
 msgstr "Border colour"
 
-#: ../src/preferences.c:1969
+#: ../src/preferences.c:1988
 msgid "Alpha channel color 1"
 msgstr "Alpha channel colour 1"
 
-#: ../src/preferences.c:1972
+#: ../src/preferences.c:1991
 msgid "Alpha channel color 2"
 msgstr "Alpha channel colour 2"
 
-#: ../src/preferences.c:1978
+#: ../src/preferences.c:1997
 msgid "Convenience"
 msgstr ""
 
-#: ../src/preferences.c:1980
+#: ../src/preferences.c:1999
 msgid "Auto rotate proofs using Exif information"
 msgstr ""
 
-#: ../src/preferences.c:1997
+#: ../src/preferences.c:2013
 msgid "Windows"
 msgstr ""
 
-#: ../src/preferences.c:1999
+#: ../src/preferences.c:2015
 msgid "State"
 msgstr ""
 
-#: ../src/preferences.c:2001
+#: ../src/preferences.c:2017
 msgid "Remember window positions"
 msgstr ""
 
-#: ../src/preferences.c:2004
+#: ../src/preferences.c:2020
 msgid "Use saved window positions also for new windows"
 msgstr ""
 
-#: ../src/preferences.c:2008
+#: ../src/preferences.c:2024
 msgid "Remember tool state (float/hidden)"
 msgstr ""
 
-#: ../src/preferences.c:2011
+#: ../src/preferences.c:2027
 msgid "Remember dialog window positions"
 msgstr "Remember dialogue window positions"
 
-#: ../src/preferences.c:2014
+#: ../src/preferences.c:2030
 msgid "Show window IDs"
 msgstr ""
 
-#: ../src/preferences.c:2019
+#: ../src/preferences.c:2035
 msgid "Fit window to image when tools are hidden/floating"
 msgstr ""
 
-#: ../src/preferences.c:2023
+#: ../src/preferences.c:2039
 msgid "Limit size when auto-sizing window (%):"
 msgstr ""
 
-#: ../src/preferences.c:2038
+#: ../src/preferences.c:2054
 msgid "Smooth image flip"
 msgstr ""
 
-#: ../src/preferences.c:2040
+#: ../src/preferences.c:2056
 msgid "Disable screen saver"
 msgstr ""
 
-#: ../src/preferences.c:2044
+#: ../src/preferences.c:2069
+msgid "Collection number"
+msgstr ""
+
+#: ../src/preferences.c:2070
+msgid "Collection total"
+msgstr ""
+
+#: ../src/preferences.c:2077
+msgid "Image date"
+msgstr ""
+
+#: ../src/preferences.c:2079
+msgid "ShutterSpeed"
+msgstr ""
+
+#: ../src/preferences.c:2085
+msgid "ISO"
+msgstr ""
+
+#: ../src/preferences.c:2087
+msgid "Focal len. 35mm"
+msgstr ""
+
+#: ../src/preferences.c:2091
+msgid "Lat, Long"
+msgstr ""
+
+#: ../src/preferences.c:2092
+msgid "Altitude"
+msgstr ""
+
+#: ../src/preferences.c:2094
+msgid "Timezone"
+msgstr ""
+
+#: ../src/preferences.c:2186
+msgid "OSD"
+msgstr ""
+
+#: ../src/preferences.c:2190
 msgid "Overlay Screen Display"
 msgstr ""
 
-#: ../src/preferences.c:2046
+#: ../src/preferences.c:2197
+msgid ""
+"To include predefined tags in the template, click a button or drag-and-drop"
+msgstr ""
+
+#: ../src/preferences.c:2222
 msgid "Image overlay template"
 msgstr ""
 
-#: ../src/preferences.c:2059
-msgid ""
-"<i>%name%</i> results in the filename of the picture.\n"
-"Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>"
-"%date%</i>,\n"
-"<i>%size%</i> (filesize), <i>%width%</i>, <i>%height%</i>, <i>%res%</i> "
-"(resolution),\n"
-"<i>%rating%</i>, <i>%keywords%</i>, <i>%comment%</i> (XMP), <i>%imagecomment"
-"%</i> (JPEG)\n"
-"To access exif data use the exif name, e. g. <i>%formatted.Camera%</i> is "
-"the formatted camera name,\n"
-"<i>%Exif.Photo.DateTimeOriginal%</i> the date of the original shot.\n"
-"<i>%formatted.Camera:20</i> notation will truncate the displayed data to 20 "
-"characters and will add 3 dots at the end to denote the truncation.\n"
-"If two or more variables are connected with the |-sign, it prints available "
-"variables with a separator.\n"
-"<i>%formatted.ShutterSpeed%</i>|<i>%formatted.ISOSpeedRating%</i>|<i>"
-"%formatted.FocalLength%</i> could show \"1/20s - 400 - 80 mm\" or \"1/200 - "
-"80 mm\",\n"
-"if there's no ISO information in the Exif data.\n"
-"If a line is empty, it is removed. This allows one to add lines that totally "
-"disappear when no data is available.\n"
-msgstr ""
-
-#: ../src/preferences.c:2077 ../src/print.c:3220
+#: ../src/preferences.c:2233
+msgid "Extensive formatting options are shown in the Help file"
+msgstr ""
+
+#: ../src/preferences.c:2241 ../src/print.c:428 ../src/print.c:491
 msgid "Font"
 msgstr ""
 
-#: ../src/preferences.c:2089 ../src/print.c:3410
+#: ../src/preferences.c:2253
 msgid "Text"
 msgstr ""
 
-#: ../src/preferences.c:2094
+#: ../src/preferences.c:2258
 msgid "Background"
 msgstr ""
 
-#: ../src/preferences.c:2100 ../src/preferences.c:2278
-#: ../src/preferences.c:2740
+#: ../src/preferences.c:2264 ../src/preferences.c:2486
+#: ../src/preferences.c:3322
 msgid "Defaults"
 msgstr ""
 
-#: ../src/preferences.c:2154
+#: ../src/preferences.c:2281
+msgid "Exif, XMP or IPTC tags"
+msgstr ""
+
+#: ../src/preferences.c:2285
+msgid "%Exif.Image.Orientation%"
+msgstr ""
+
+#: ../src/preferences.c:2290
+msgid "Field separators"
+msgstr ""
+
+#: ../src/preferences.c:2294
+msgid ""
+"Separator shown only if both fields are non-null:\n"
+"%formatted.ShutterSpeed%|%formatted.ISOSpeedRating%"
+msgstr ""
+
+#: ../src/preferences.c:2299
+msgid "Field maximum length"
+msgstr ""
+
+#: ../src/preferences.c:2303
+msgid "%path:39%"
+msgstr ""
+
+#: ../src/preferences.c:2308
+msgid "Pre- and post- text"
+msgstr ""
+
+#: ../src/preferences.c:2312
+msgid ""
+"Text shown only if the field is non-null:\n"
+"%formatted.Aperture:F no. * setting%\n"
+" %formatted.Aperture:10:F no. * setting%"
+msgstr ""
+
+#: ../src/preferences.c:2317
+msgid "Pango markup"
+msgstr ""
+
+#: ../src/preferences.c:2321
+msgid ""
+"<b>bold</b>\n"
+"<u>underline</u>\n"
+"<i>italic</i>\n"
+"<s>strikethrough</s>"
+msgstr ""
+
+#: ../src/preferences.c:2362
 msgid "Show hidden files or folders"
 msgstr ""
 
-#: ../src/preferences.c:2156
+#: ../src/preferences.c:2364
 msgid "Show parent folder (..)"
 msgstr ""
 
-#: ../src/preferences.c:2158
+#: ../src/preferences.c:2366
 msgid "Case sensitive sort"
 msgstr ""
 
-#: ../src/preferences.c:2160
+#: ../src/preferences.c:2368
 msgid "Natural sort order"
 msgstr ""
 
-#: ../src/preferences.c:2162
+#: ../src/preferences.c:2370
 msgid "Disable file extension checks"
 msgstr ""
 
-#: ../src/preferences.c:2165
+#: ../src/preferences.c:2373
 msgid "Disable File Filtering"
 msgstr ""
 
-#: ../src/preferences.c:2169
+#: ../src/preferences.c:2377
 msgid "Grouping sidecar extensions"
 msgstr ""
 
-#: ../src/preferences.c:2176
+#: ../src/preferences.c:2384
 msgid "File types"
 msgstr ""
 
-#: ../src/preferences.c:2233
+#: ../src/preferences.c:2441
 msgid "Class"
 msgstr ""
 
-#: ../src/preferences.c:2250
+#: ../src/preferences.c:2458
 msgid "Writable"
 msgstr ""
 
-#: ../src/preferences.c:2261
+#: ../src/preferences.c:2469
 msgid "Sidecar is allowed"
 msgstr ""
 
-#: ../src/preferences.c:2307
+#: ../src/preferences.c:2515
 msgid "Metadata writing process"
 msgstr ""
 
-#: ../src/preferences.c:2309
+#: ../src/preferences.c:2517
 msgid "Warning: Geeqie is built without Exiv2. Some options are disabled."
 msgstr ""
 
-#: ../src/preferences.c:2311
+#: ../src/preferences.c:2519
 msgid ""
 "Metadata are written in the following order. The process ends after first "
 "success."
 msgstr ""
 
-#: ../src/preferences.c:2314
+#: ../src/preferences.c:2522
 msgid ""
 "1) Save metadata in image files, or sidecar files, according to the XMP "
 "standard"
 msgstr ""
 
-#: ../src/preferences.c:2320
+#: ../src/preferences.c:2528
 msgid ""
 "2) Save metadata in '.metadata' folder, local to image folder (non-standard)"
 msgstr ""
 
-#: ../src/preferences.c:2323
+#: ../src/preferences.c:2531
 #, c-format
 msgid "3) Save metadata in Geeqie private directory '%s'"
 msgstr ""
 
-#: ../src/preferences.c:2329
+#: ../src/preferences.c:2537
 msgid "Step 1: Write to image files"
 msgstr ""
 
-#: ../src/preferences.c:2337
+#: ../src/preferences.c:2545
 msgid ""
 "Store metadata also in legacy IPTC tags (converted according to IPTC4XMP "
 "standard)"
 msgstr ""
 
-#: ../src/preferences.c:2340
+#: ../src/preferences.c:2548
 msgid "Warn if the image files are unwritable"
 msgstr ""
 
-#: ../src/preferences.c:2343
+#: ../src/preferences.c:2551
 msgid "Ask before writing to image files"
 msgstr ""
 
-#: ../src/preferences.c:2346
+#: ../src/preferences.c:2554
 msgid "Create sidecar files named image.ext.xmp (as opposed to image.xmp)"
 msgstr ""
 
-#: ../src/preferences.c:2349
+#: ../src/preferences.c:2557
 msgid "Step 2 and 3: write to Geeqie private files"
 msgstr ""
 
-#: ../src/preferences.c:2354
+#: ../src/preferences.c:2562
 msgid ""
 "Use GQview legacy metadata format (supports only keywords and comments) "
 "instead of XMP"
 msgstr ""
 
-#: ../src/preferences.c:2358
+#: ../src/preferences.c:2566
 msgid "Miscellaneous"
 msgstr ""
 
-#: ../src/preferences.c:2359
+#: ../src/preferences.c:2567
 msgid ""
 "Write the same description tags (keywords, comment, etc.) to all grouped "
 "sidecars"
 msgstr ""
 
-#: ../src/preferences.c:2362
+#: ../src/preferences.c:2570
 msgid "Allow keywords to differ only in case"
 msgstr ""
 
-#: ../src/preferences.c:2365
+#: ../src/preferences.c:2573
 msgid "Write altered image orientation to the metadata"
 msgstr ""
 
-#: ../src/preferences.c:2371
+#: ../src/preferences.c:2579
 msgid "Auto-save options"
 msgstr ""
 
-#: ../src/preferences.c:2373
+#: ../src/preferences.c:2581
 msgid "Write metadata after timeout"
 msgstr ""
 
-#: ../src/preferences.c:2379
+#: ../src/preferences.c:2587
 msgid "Timeout (seconds):"
 msgstr ""
 
-#: ../src/preferences.c:2382
+#: ../src/preferences.c:2590
 msgid "Write metadata on image change"
 msgstr ""
 
-#: ../src/preferences.c:2385
+#: ../src/preferences.c:2593
 msgid "Write metadata on directory change"
 msgstr ""
 
-#: ../src/preferences.c:2388
+#: ../src/preferences.c:2596
 msgid "Pre-load metadata"
 msgstr ""
 
-#: ../src/preferences.c:2390
+#: ../src/preferences.c:2598
 msgid "Read metadata in background"
 msgstr ""
 
-#: ../src/preferences.c:2431
+#: ../src/preferences.c:2787 ../src/preferences.c:2801
+msgid "Search for keywords"
+msgstr ""
+
+#: ../src/preferences.c:2899
+msgid "Edit keywords autocompletion list"
+msgstr ""
+
+#: ../src/preferences.c:2903 ../src/toolbar.c:85
+msgid "Search"
+msgstr ""
+
+#: ../src/preferences.c:2982
 msgid "Perceptual"
 msgstr ""
 
-#: ../src/preferences.c:2433
+#: ../src/preferences.c:2984
 msgid "Relative Colorimetric"
 msgstr "Relative Colourimetric"
 
-#: ../src/preferences.c:2437
+#: ../src/preferences.c:2988
 msgid "Absolute Colorimetric"
 msgstr "Absolute Colourimetric"
 
-#: ../src/preferences.c:2462
+#: ../src/preferences.c:3013
 msgid "Color management"
 msgstr "Colour management"
 
-#: ../src/preferences.c:2464
+#: ../src/preferences.c:3015
 msgid "Input profiles"
 msgstr ""
 
-#: ../src/preferences.c:2472
+#: ../src/preferences.c:3023
 msgid "Type"
 msgstr ""
 
-#: ../src/preferences.c:2475
+#: ../src/preferences.c:3026
 msgid "Menu name"
 msgstr ""
 
-#: ../src/preferences.c:2478
+#: ../src/preferences.c:3029
 msgid "File"
 msgstr ""
 
-#: ../src/preferences.c:2486
+#: ../src/preferences.c:3037
 #, c-format
 msgid "Input %d:"
 msgstr ""
 
-#: ../src/preferences.c:2502 ../src/preferences.c:2522
+#: ../src/preferences.c:3053 ../src/preferences.c:3073
 msgid "Select color profile"
 msgstr "Select colour profile"
 
-#: ../src/preferences.c:2510
+#: ../src/preferences.c:3061
 msgid "Screen profile"
 msgstr ""
 
-#: ../src/preferences.c:2514
+#: ../src/preferences.c:3065
 msgid "Use system screen profile if available"
 msgstr ""
 
-#: ../src/preferences.c:2519
+#: ../src/preferences.c:3070
 msgid "Screen:"
 msgstr ""
 
-#: ../src/preferences.c:2525
+#: ../src/preferences.c:3076
 msgid "Render Intent:"
 msgstr ""
 
-#: ../src/preferences.c:2548 ../src/preferences.c:2589
+#: ../src/preferences.c:3116 ../src/preferences.c:3163
 msgid "Behavior"
 msgstr "Behaviour"
 
-#: ../src/preferences.c:2550 ../src/utilops.c:2180
+#: ../src/preferences.c:3118 ../src/toolbar.c:91 ../src/utilops.c:2188
 msgid "Delete"
 msgstr ""
 
-#: ../src/preferences.c:2552
-msgid "Confirm file delete"
+#: ../src/preferences.c:3120
+msgid "Confirm permanent file delete"
 msgstr ""
 
-#: ../src/preferences.c:2554
+#: ../src/preferences.c:3122
+msgid "Confirm move file to Trash"
+msgstr "Confirm file move to Rubbish bin"
+
+#: ../src/preferences.c:3124
 msgid "Enable Delete key"
 msgstr ""
 
-#: ../src/preferences.c:2557
-msgid "Safe delete"
-msgstr ""
+#: ../src/preferences.c:3127
+msgid "Use Geeqie trash location"
+msgstr "Use Geeqie Rubbish bin location"
 
-#: ../src/preferences.c:2575
+#: ../src/preferences.c:3145
 msgid "Maximum size:"
 msgstr ""
 
-#: ../src/preferences.c:2575
+#: ../src/preferences.c:3145
 msgid "MB"
 msgstr ""
 
-#: ../src/preferences.c:2577
+#: ../src/preferences.c:3147
 msgid "Set to 0 for unlimited size"
 msgstr ""
 
-#: ../src/preferences.c:2578
+#: ../src/preferences.c:3148
 msgid "View"
 msgstr ""
 
-#: ../src/preferences.c:2591
+#: ../src/preferences.c:3156
+msgid "Use system Trash bin"
+msgstr "Use system Rubbish bin"
+
+#: ../src/preferences.c:3165
 msgid "Descend folders in tree view"
 msgstr ""
 
-#: ../src/preferences.c:2594
+#: ../src/preferences.c:3168
 msgid "In place renaming"
 msgstr ""
 
-#: ../src/preferences.c:2597
+#: ../src/preferences.c:3171
 msgid "List directory view uses single click to enter"
 msgstr ""
 
-#: ../src/preferences.c:2600
+#: ../src/preferences.c:3174
 msgid "Save marks on exit"
 msgstr ""
 
-#: ../src/preferences.c:2604
+#: ../src/preferences.c:3178
 msgid "Use \"With Rename\" as default for Copy/Move dialogs"
 msgstr "Use \"With Rename\" as default for Copy/Move dialogues"
 
-#: ../src/preferences.c:2608
+#: ../src/preferences.c:3182
+msgid "Open collections on top"
+msgstr ""
+
+#: ../src/preferences.c:3186
 msgid "Recent folder list maximum size"
 msgstr ""
 
-#: ../src/preferences.c:2611
+#: ../src/preferences.c:3189
 msgid "Drag'n drop icon size"
 msgstr ""
 
-#: ../src/preferences.c:2615
+#: ../src/preferences.c:3193
 msgid "Copy path clipboard selection:"
 msgstr ""
 
-#: ../src/preferences.c:2617
+#: ../src/preferences.c:3197
 msgid "Navigation"
 msgstr ""
 
-#: ../src/preferences.c:2619
+#: ../src/preferences.c:3199
 msgid "Progressive keyboard scrolling"
 msgstr ""
 
-#: ../src/preferences.c:2621
+#: ../src/preferences.c:3201
 msgid "Keyboard scrolling step multiplier:"
 msgstr ""
 
-#: ../src/preferences.c:2623
+#: ../src/preferences.c:3203
 msgid "Mouse wheel scrolls image"
 msgstr ""
 
-#: ../src/preferences.c:2625
+#: ../src/preferences.c:3205
 msgid "Navigation by left or middle click on image"
 msgstr ""
 
-#: ../src/preferences.c:2627
+#: ../src/preferences.c:3207
 msgid "Play video by left click on image"
 msgstr ""
 
-#: ../src/preferences.c:2630
+#: ../src/preferences.c:3210
 msgid "Play with:"
 msgstr ""
 
-#: ../src/preferences.c:2634
+#: ../src/preferences.c:3216
 msgid "Debugging"
 msgstr ""
 
-#: ../src/preferences.c:2639
+#: ../src/preferences.c:3221
 msgid "Timer data"
 msgstr ""
 
-#: ../src/preferences.c:2642
+#: ../src/preferences.c:3224
 msgid "Log Window max. lines:"
 msgstr ""
 
-#: ../src/preferences.c:2660
+#: ../src/preferences.c:3242
 msgid "Keyboard"
 msgstr ""
 
-#: ../src/preferences.c:2662
+#: ../src/preferences.c:3244
 msgid "Accelerators"
 msgstr ""
 
-#: ../src/preferences.c:2681
+#: ../src/preferences.c:3263
 msgid "Action"
 msgstr ""
 
-#: ../src/preferences.c:2703
+#: ../src/preferences.c:3285
 msgid "KEY"
 msgstr ""
 
-#: ../src/preferences.c:2714
+#: ../src/preferences.c:3296
 msgid "Tooltip"
 msgstr ""
 
-#: ../src/preferences.c:2745
+#: ../src/preferences.c:3327
 msgid "Reset selected"
 msgstr ""
 
-#: ../src/preferences.c:2760
+#: ../src/preferences.c:3342
 msgid "Toolbar"
 msgstr ""
 
-#: ../src/preferences.c:2777
+#: ../src/preferences.c:3359
 msgid "Stereo"
 msgstr ""
 
-#: ../src/preferences.c:2779 ../src/preferences.c:2782
+#: ../src/preferences.c:3361 ../src/preferences.c:3364
 msgid "Windowed stereo mode"
 msgstr ""
 
-#: ../src/preferences.c:2786 ../src/preferences.c:2811
+#: ../src/preferences.c:3368 ../src/preferences.c:3393
 msgid "Mirror left image"
 msgstr ""
 
-#: ../src/preferences.c:2789 ../src/preferences.c:2814
+#: ../src/preferences.c:3371 ../src/preferences.c:3396
 msgid "Flip left image"
 msgstr ""
 
-#: ../src/preferences.c:2792 ../src/preferences.c:2817
+#: ../src/preferences.c:3374 ../src/preferences.c:3399
 msgid "Mirror right image"
 msgstr ""
 
-#: ../src/preferences.c:2795 ../src/preferences.c:2820
+#: ../src/preferences.c:3377 ../src/preferences.c:3402
 msgid "Flip right image"
 msgstr ""
 
-#: ../src/preferences.c:2797 ../src/preferences.c:2822
+#: ../src/preferences.c:3379 ../src/preferences.c:3404
 msgid "Swap left and right images"
 msgstr ""
 
-#: ../src/preferences.c:2799 ../src/preferences.c:2824
+#: ../src/preferences.c:3381 ../src/preferences.c:3406
 msgid "Disable stereo mode on single image source"
 msgstr ""
 
-#: ../src/preferences.c:2802 ../src/preferences.c:2808
+#: ../src/preferences.c:3384 ../src/preferences.c:3390
 msgid "Fullscreen stereo mode"
 msgstr ""
 
-#: ../src/preferences.c:2803
+#: ../src/preferences.c:3385
 msgid "Use different settings for fullscreen"
 msgstr ""
 
-#: ../src/preferences.c:2833
+#: ../src/preferences.c:3415
 msgid "Left X"
 msgstr ""
 
-#: ../src/preferences.c:2835
+#: ../src/preferences.c:3417
 msgid "Left Y"
 msgstr ""
 
-#: ../src/preferences.c:2837
+#: ../src/preferences.c:3419
 msgid "Right X"
 msgstr ""
 
-#: ../src/preferences.c:2839
+#: ../src/preferences.c:3421
 msgid "Right Y"
 msgstr ""
 
-#: ../src/preferences.c:2855 ../src/toolbar.c:89
+#: ../src/preferences.c:3437 ../src/toolbar.c:100
 msgid "Preferences"
 msgstr ""
 
-#: ../src/preferences.c:3004
+#: ../src/preferences.c:3589
 msgid "About Geeqie"
 msgstr ""
 
-#: ../src/preferences.c:3014
+#: ../src/preferences.c:3599
 msgid "translator-credits"
 msgstr ""
 
-#: ../src/print.c:134
-msgid "Selection"
-msgstr ""
-
-#: ../src/print.c:135
-msgid "All"
-msgstr ""
-
-#: ../src/print.c:146
-msgid "One image per page"
-msgstr ""
-
-#: ../src/print.c:147
-msgid "Proof sheet"
-msgstr ""
-
-#: ../src/print.c:160
-msgid "Default printer"
-msgstr ""
-
-#: ../src/print.c:161
-msgid "Custom printer"
-msgstr ""
-
-#: ../src/print.c:162
-msgid "PostScript file"
-msgstr ""
-
-#: ../src/print.c:163
-msgid "Image file"
-msgstr ""
-
-#: ../src/print.c:177
-msgid "jpeg, low quality"
-msgstr ""
-
-#: ../src/print.c:178
-msgid "jpeg, normal quality"
-msgstr ""
-
-#: ../src/print.c:179
-msgid "jpeg, high quality"
-msgstr ""
-
-#: ../src/print.c:375 ../src/print.c:3222
-msgid "points"
-msgstr ""
-
-#: ../src/print.c:376
-msgid "millimeters"
-msgstr "millimetres"
-
-#: ../src/print.c:377
-msgid "centimeters"
-msgstr "centimetres"
-
-#: ../src/print.c:378
-msgid "inches"
-msgstr ""
-
-#: ../src/print.c:379
-msgid "picas"
-msgstr ""
-
-#: ../src/print.c:391
-msgid "Letter"
-msgstr ""
-
-#. in 8.5 x 11
-#: ../src/print.c:392
-msgid "Legal"
-msgstr ""
-
-#. in 8.5 x 14
-#: ../src/print.c:393
-msgid "Executive"
-msgstr ""
-
-#. in 7.25x 10.5
-#. mm 841 x 1189
-#. mm 594 x 841
-#. mm 420 x 594
-#. mm 297 x 420
-#. mm 210 x 297
-#. mm 148 x 210
-#. mm 105 x 148
-#. mm 353 x 500
-#. mm 250 x 353
-#. mm 176 x 250
-#. mm 125 x 176
-#: ../src/print.c:405
-msgid "Envelope #10"
-msgstr ""
-
-#. in 4.125 x 9.5
-#: ../src/print.c:406
-msgid "Envelope #9"
-msgstr ""
-
-#. in 3.875 x 8.875
-#: ../src/print.c:407
-msgid "Envelope C4"
-msgstr ""
-
-#. mm 229 x 324
-#: ../src/print.c:408
-msgid "Envelope C5"
-msgstr ""
-
-#. mm 162 x 229
-#: ../src/print.c:409
-msgid "Envelope C6"
-msgstr ""
-
-#. mm 114 x 162
-#: ../src/print.c:410
-msgid "Photo 6x4"
-msgstr ""
-
-#. in 6   x 4
-#: ../src/print.c:411
-msgid "Photo 8x10"
-msgstr ""
-
-#. in 8   x 10
-#: ../src/print.c:412
-msgid "Postcard"
-msgstr ""
-
-#. mm 100 x 148
-#: ../src/print.c:413
-msgid "Tabloid"
-msgstr ""
-
-#: ../src/print.c:569
-#, c-format
-msgid "page %d of %d"
-msgstr ""
-
-#: ../src/print.c:761
-msgid "Preview"
-msgstr ""
-
-#: ../src/print.c:1069
-#, c-format
-msgid ""
-"Unable to open pipe for writing.\n"
-"\"%s\""
-msgstr ""
-
-#: ../src/print.c:1084 ../src/print.c:1476 ../src/ui_pathsel.c:432
-#, c-format
-msgid "A file with name %s already exists."
-msgstr ""
-
-#: ../src/print.c:1099 ../src/print.c:1531
-#, c-format
-msgid "Failure writing to file %s"
-msgstr ""
-
-#: ../src/print.c:1154 ../src/print.c:1191 ../src/print.c:1227
-#: ../src/print.c:1344 ../src/print.c:1417
-msgid "SIGPIPE error writing to printer."
-msgstr ""
-
-#: ../src/print.c:1952
-#, c-format
-msgid "Page %d"
-msgstr ""
-
-#: ../src/print.c:1974 ../src/print.c:1979
-msgid "Printing error"
-msgstr ""
-
-#: ../src/print.c:1978
-#, c-format
-msgid "An error occurred printing to %s."
-msgstr ""
-
-#: ../src/print.c:1982
-msgid "Details"
-msgstr ""
-
-#: ../src/print.c:2597 ../src/print.c:3351 ../src/toolbar.c:88
-msgid "Print"
-msgstr ""
-
-#: ../src/print.c:2601
-#, c-format
-msgid "Printing %d pages to %s."
-msgstr ""
-
-#: ../src/print.c:2701
-msgid "Format:"
-msgstr ""
-
-#: ../src/print.c:2776
-msgid "Units:"
-msgstr ""
-
-#: ../src/print.c:2820
-msgid "Orientation:"
-msgstr ""
-
-#: ../src/print.c:2952
-msgid "Destination:"
-msgstr ""
-
-#: ../src/print.c:3000
-msgid "<printer name>"
+#: ../src/print.c:386
+msgid "Image text"
 msgstr ""
 
-#: ../src/print.c:3089
-msgid "Unlimited"
+#: ../src/print.c:388
+msgid "Show image text"
 msgstr ""
 
-#: ../src/print.c:3207
-msgid "Show"
+#: ../src/print.c:442
+msgid "Page text"
 msgstr ""
 
-#: ../src/print.c:3378
-msgid "Source"
-msgstr ""
-
-#: ../src/print.c:3390
-msgid "Image size:"
-msgstr ""
-
-#: ../src/print.c:3394
-msgid "Proof size:"
-msgstr ""
-
-#: ../src/print.c:3420
-msgid "Paper"
-msgstr ""
-
-#: ../src/print.c:3443
-msgid "Margins"
-msgstr ""
-
-#: ../src/print.c:3445
-msgid "Left:"
-msgstr ""
-
-#: ../src/print.c:3448
-msgid "Right:"
-msgstr ""
-
-#: ../src/print.c:3451
-msgid "Top:"
-msgstr ""
-
-#: ../src/print.c:3454
-msgid "Bottom:"
-msgstr ""
-
-#: ../src/print.c:3463
-msgid "Printer"
-msgstr ""
-
-#: ../src/print.c:3469
-msgid "Custom printer:"
-msgstr ""
-
-#: ../src/print.c:3478
-msgid "File:"
-msgstr ""
-
-#: ../src/print.c:3487
-msgid "File format:"
-msgstr ""
-
-#: ../src/print.c:3492
-msgid "DPI:"
-msgstr ""
-
-#: ../src/print.c:3500
-msgid "Remember print settings"
+#: ../src/print.c:444
+msgid "Show page text"
 msgstr ""
 
 #: ../src/rcfile.c:91
@@ -5292,12 +5253,12 @@ msgstr ""
 msgid "Option %s ignored: %s\n"
 msgstr ""
 
-#: ../src/rcfile.c:560
+#: ../src/rcfile.c:608
 #, c-format
 msgid "error saving config file: %s\n"
 msgstr ""
 
-#: ../src/rcfile.c:621
+#: ../src/rcfile.c:672
 #, c-format
 msgid ""
 "error saving config file: %s\n"
@@ -5309,417 +5270,430 @@ msgstr ""
 msgid "[%d,%d]: RGB(%3d,%3d,%3d)"
 msgstr ""
 
-#: ../src/remote.c:834 ../src/remote.c:839
+#: ../src/remote.c:708
+#, c-format
+msgid "%dx%d+%d+%d"
+msgstr ""
+
+#: ../src/remote.c:891 ../src/remote.c:896
 msgid "lua error: no data"
 msgstr ""
 
 #. short, long                  callback,               extra, prefer, parameter, description
-#: ../src/remote.c:862
+#: ../src/remote.c:919
 msgid "next image"
 msgstr ""
 
-#: ../src/remote.c:863
+#: ../src/remote.c:920
 msgid "previous image"
 msgstr ""
 
-#: ../src/remote.c:864
+#: ../src/remote.c:921
 msgid "first image"
 msgstr ""
 
-#: ../src/remote.c:865
+#: ../src/remote.c:922
 msgid "last image"
 msgstr ""
 
-#: ../src/remote.c:866
+#: ../src/remote.c:923
 msgid "toggle full screen"
 msgstr ""
 
-#: ../src/remote.c:867
+#: ../src/remote.c:924
 msgid "start full screen"
 msgstr ""
 
-#: ../src/remote.c:868
+#: ../src/remote.c:925
 msgid "stop full screen"
 msgstr ""
 
-#: ../src/remote.c:869
+#: ../src/remote.c:926
 msgid "toggle slide show"
 msgstr ""
 
-#: ../src/remote.c:870
+#: ../src/remote.c:927
 msgid "start slide show"
 msgstr ""
 
-#: ../src/remote.c:871
+#: ../src/remote.c:928
 msgid "stop slide show"
 msgstr ""
 
-#: ../src/remote.c:872
+#: ../src/remote.c:929
 msgid "<FOLDER>"
 msgstr ""
 
-#: ../src/remote.c:872
+#: ../src/remote.c:929
 msgid "start recursive slide show in FOLDER"
 msgstr ""
 
-#: ../src/remote.c:873
+#: ../src/remote.c:930
 msgid "<[H:][M:][N][.M]>"
 msgstr ""
 
-#: ../src/remote.c:873
+#: ../src/remote.c:930
 msgid "set slide show delay to Hrs Mins N.M seconds"
 msgstr ""
 
-#: ../src/remote.c:874
+#: ../src/remote.c:931
 msgid "show tools"
 msgstr ""
 
-#: ../src/remote.c:875
+#: ../src/remote.c:932
 msgid "hide tools"
 msgstr ""
 
-#: ../src/remote.c:876
+#: ../src/remote.c:933
 msgid "quit"
 msgstr ""
 
-#: ../src/remote.c:877 ../src/remote.c:878 ../src/remote.c:879
-#: ../src/remote.c:880 ../src/remote.c:881 ../src/remote.c:884
-#: ../src/remote.c:886
+#: ../src/remote.c:934 ../src/remote.c:935 ../src/remote.c:936
+#: ../src/remote.c:937 ../src/remote.c:938 ../src/remote.c:943
+#: ../src/remote.c:945
 msgid "<FILE>"
 msgstr ""
 
-#: ../src/remote.c:877
+#: ../src/remote.c:934
 msgid "load configuration from FILE"
 msgstr ""
 
-#: ../src/remote.c:878
+#: ../src/remote.c:935
 msgid "get list of sidecars of FILE"
 msgstr ""
 
-#: ../src/remote.c:879
+#: ../src/remote.c:936
 msgid "get destination path of FILE"
 msgstr ""
 
-#: ../src/remote.c:880
+#: ../src/remote.c:937
 msgid "open FILE, bring Geeqie window to the top"
 msgstr ""
 
-#: ../src/remote.c:881
+#: ../src/remote.c:938
 msgid "open FILE, do not bring Geeqie window to the top"
 msgstr ""
 
-#: ../src/remote.c:882
+#: ../src/remote.c:939
 msgid "print filename of current image"
 msgstr ""
 
-#: ../src/remote.c:883
+#: ../src/remote.c:940
 msgid "print pixel info of mouse pointer on current image"
 msgstr ""
 
-#: ../src/remote.c:884
+#: ../src/remote.c:941
+msgid "get rectangle co-ordinates"
+msgstr ""
+
+#: ../src/remote.c:942
+msgid "get render intent"
+msgstr ""
+
+#: ../src/remote.c:943
 msgid "open FILE in new window"
 msgstr ""
 
-#: ../src/remote.c:885
+#: ../src/remote.c:944
 msgid "clear command line collection list"
 msgstr ""
 
-#: ../src/remote.c:886
+#: ../src/remote.c:945
 msgid "add FILE to command line collection list"
 msgstr ""
 
-#: ../src/remote.c:887
+#: ../src/remote.c:946
 msgid "bring the Geeqie window to the top"
 msgstr ""
 
-#: ../src/remote.c:888
+#: ../src/remote.c:947
 msgid "<ID>"
 msgstr ""
 
-#: ../src/remote.c:888
+#: ../src/remote.c:947
 msgid "window id for following commands"
 msgstr ""
 
-#: ../src/remote.c:889
+#: ../src/remote.c:948
 msgid "new window"
 msgstr ""
 
-#: ../src/remote.c:890
+#: ../src/remote.c:949
 msgid "close window"
 msgstr ""
 
-#: ../src/remote.c:891 ../src/remote.c:892
+#: ../src/remote.c:950 ../src/remote.c:951
 msgid "clear|clean"
 msgstr ""
 
-#: ../src/remote.c:891
+#: ../src/remote.c:950
 msgid "clear or clean thumbnail cache"
 msgstr ""
 
-#: ../src/remote.c:892
+#: ../src/remote.c:951
 msgid "clear or clean shared thumbnail cache"
 msgstr ""
 
-#: ../src/remote.c:893
+#: ../src/remote.c:952
 msgid "    clean the metadata cache"
 msgstr ""
 
-#: ../src/remote.c:894
+#: ../src/remote.c:953
 msgid "<folder>  "
 msgstr ""
 
-#: ../src/remote.c:894
+#: ../src/remote.c:953
 msgid " render thumbnails"
 msgstr ""
 
-#: ../src/remote.c:895 ../src/remote.c:896
+#: ../src/remote.c:954 ../src/remote.c:955
 msgid "<folder> "
 msgstr ""
 
-#: ../src/remote.c:895
+#: ../src/remote.c:954
 msgid "render thumbnails recursively"
 msgstr ""
 
-#: ../src/remote.c:896
+#: ../src/remote.c:955
 msgid " render thumbnails (see Help)"
 msgstr ""
 
-#: ../src/remote.c:897
+#: ../src/remote.c:956
 msgid "<folder>"
 msgstr ""
 
-#: ../src/remote.c:897
+#: ../src/remote.c:956
 msgid " render thumbnails recursively (see Help)"
 msgstr ""
 
-#: ../src/remote.c:899
+#: ../src/remote.c:958
 msgid "<FILE>,<lua script>"
 msgstr ""
 
-#: ../src/remote.c:899
+#: ../src/remote.c:958
 msgid "run lua script on FILE"
 msgstr ""
 
-#: ../src/remote.c:965
+#: ../src/remote.c:1024
 msgid "Remote command list:\n"
 msgstr ""
 
-#: ../src/remote.c:984
+#: ../src/remote.c:1043
 msgid ""
 "\n"
 "  All other command line parameters are used as plain files if they exists.\n"
 msgstr ""
 
-#: ../src/remote.c:1034
+#: ../src/remote.c:1093
 #, c-format
 msgid "Remote %s not running, starting..."
 msgstr ""
 
-#: ../src/remote.c:1170
+#: ../src/remote.c:1229
 msgid "Remote not available\n"
 msgstr ""
 
-#: ../src/search.c:254
+#: ../src/search.c:257
 msgid "folder"
 msgstr ""
 
-#: ../src/search.c:255
+#: ../src/search.c:258
 msgid "comments"
 msgstr ""
 
-#: ../src/search.c:256
+#: ../src/search.c:259
 msgid "results"
 msgstr ""
 
-#: ../src/search.c:260 ../src/search.c:285
+#: ../src/search.c:263 ../src/search.c:288
 msgid "contains"
 msgstr ""
 
-#: ../src/search.c:261 ../src/search.c:304 ../src/search.c:309
+#: ../src/search.c:264 ../src/search.c:307 ../src/search.c:312
 msgid "is"
 msgstr ""
 
-#: ../src/search.c:265 ../src/search.c:272 ../src/search.c:291
+#: ../src/search.c:268 ../src/search.c:275 ../src/search.c:294
 msgid "equal to"
 msgstr ""
 
-#: ../src/search.c:266 ../src/search.c:292 ../src/search.c:299
+#: ../src/search.c:269 ../src/search.c:295 ../src/search.c:302
 msgid "less than"
 msgstr ""
 
-#: ../src/search.c:267 ../src/search.c:293 ../src/search.c:300
+#: ../src/search.c:270 ../src/search.c:296 ../src/search.c:303
 msgid "greater than"
 msgstr ""
 
-#: ../src/search.c:268 ../src/search.c:275 ../src/search.c:294
+#: ../src/search.c:271 ../src/search.c:278 ../src/search.c:297
 msgid "between"
 msgstr ""
 
-#: ../src/search.c:273
+#: ../src/search.c:276
 msgid "before"
 msgstr ""
 
-#: ../src/search.c:274
+#: ../src/search.c:277
 msgid "after"
 msgstr ""
 
-#: ../src/search.c:279
+#: ../src/search.c:282
 msgid "match all"
 msgstr ""
 
-#: ../src/search.c:280
+#: ../src/search.c:283
 msgid "match any"
 msgstr ""
 
-#: ../src/search.c:281
+#: ../src/search.c:284
 msgid "exclude"
 msgstr ""
 
-#: ../src/search.c:286
+#: ../src/search.c:289
 msgid "miss"
 msgstr ""
 
-#: ../src/search.c:298
+#: ../src/search.c:301
 msgid "not geocoded"
 msgstr ""
 
-#: ../src/search.c:305 ../src/search.c:310
+#: ../src/search.c:308 ../src/search.c:313
 msgid "is not"
 msgstr ""
 
-#: ../src/search.c:361
+#: ../src/search.c:364
 #, c-format
 msgid "%s, %d files (%s, %d)"
 msgstr ""
 
-#: ../src/search.c:366
+#: ../src/search.c:369
 #, c-format
 msgid "%s, %d files"
 msgstr ""
 
-#: ../src/search.c:384
+#: ../src/search.c:387
 msgid "Searching..."
 msgstr ""
 
-#: ../src/search.c:1885
+#: ../src/search.c:1975
 msgid "Changed"
 msgstr ""
 
-#: ../src/search.c:1890 ../src/search.c:3114
+#: ../src/search.c:1980 ../src/search.c:3237
 msgid "Original"
 msgstr ""
 
-#: ../src/search.c:1896 ../src/search.c:3115
+#: ../src/search.c:1986 ../src/search.c:3238
 msgid "Digitized"
 msgstr "Digitised"
 
-#: ../src/search.c:2093 ../src/search.c:3240
+#: ../src/search.c:2183 ../src/search.c:3364
 msgid "Raw Image"
 msgstr ""
 
-#: ../src/search.c:2132 ../src/search.c:3255
+#: ../src/search.c:2222 ../src/search.c:3379
 msgid "Any mark"
 msgstr ""
 
-#: ../src/search.c:2188 ../src/search.c:3213
+#: ../src/search.c:2278 ../src/search.c:3337
 msgid "km"
 msgstr ""
 
-#: ../src/search.c:2193 ../src/search.c:3214
+#: ../src/search.c:2283 ../src/search.c:3338
 msgid "miles"
 msgstr ""
 
-#: ../src/search.c:2485
+#: ../src/search.c:2605
 msgid "File not found"
 msgstr ""
 
-#: ../src/search.c:2486
+#: ../src/search.c:2606
 msgid "Please enter an existing file for image content."
 msgstr ""
 
-#: ../src/search.c:2511
+#: ../src/search.c:2631
 msgid "Entry does not contain a valid lat/long value"
 msgstr ""
 
-#: ../src/search.c:2561
+#: ../src/search.c:2681
 msgid "Please enter an existing folder to search."
 msgstr ""
 
-#: ../src/search.c:3021
+#: ../src/search.c:3143
 msgid "Image search"
 msgstr ""
 
-#: ../src/search.c:3051
+#: ../src/search.c:3173
 msgid "Search:"
 msgstr ""
 
-#: ../src/search.c:3065
+#: ../src/search.c:3187
 msgid "Recurse"
 msgstr ""
 
-#: ../src/search.c:3070
+#: ../src/search.c:3192
 msgid "File name"
 msgstr ""
 
-#: ../src/search.c:3076 ../src/search.c:3184
+#: ../src/search.c:3198 ../src/search.c:3307
 msgid "Match case"
 msgstr ""
 
-#: ../src/search.c:3081
+#: ../src/search.c:3204
 msgid "File size is"
 msgstr ""
 
-#: ../src/search.c:3088 ../src/search.c:3105 ../src/search.c:3134
-#: ../src/search.c:3196
+#: ../src/search.c:3211 ../src/search.c:3228 ../src/search.c:3257
+#: ../src/search.c:3320
 msgid "and"
 msgstr ""
 
-#: ../src/search.c:3094
+#: ../src/search.c:3217
 msgid "File date is"
 msgstr ""
 
-#: ../src/search.c:3112
+#: ../src/search.c:3235
 msgid "Modified"
 msgstr ""
 
-#: ../src/search.c:3113
+#: ../src/search.c:3236
 msgid "Status Changed"
 msgstr ""
 
-#: ../src/search.c:3123
+#: ../src/search.c:3246
 msgid "Image dimensions are"
 msgstr ""
 
-#: ../src/search.c:3144
+#: ../src/search.c:3267
 msgid "Image content is"
 msgstr ""
 
-#: ../src/search.c:3150
+#: ../src/search.c:3273
 #, no-c-format
 msgid "% similar to"
 msgstr ""
 
-#: ../src/search.c:3158
+#: ../src/search.c:3281
 msgid "Ignore rotation"
 msgstr ""
 
-#: ../src/search.c:3189
+#: ../src/search.c:3313
 msgid "Image rating is"
 msgstr ""
 
-#: ../src/search.c:3203
+#: ../src/search.c:3327
 msgid "Image is"
 msgstr ""
 
-#: ../src/search.c:3215
+#: ../src/search.c:3339
 msgid "n.m."
 msgstr ""
 
-#: ../src/search.c:3221
+#: ../src/search.c:3345
 msgid "from"
 msgstr ""
 
-#: ../src/search.c:3226
+#: ../src/search.c:3350
 msgid ""
 "Enter a coordinate in the form:\n"
 "89.123 179.456\n"
@@ -5730,15 +5704,15 @@ msgid ""
 "See the Help file"
 msgstr ""
 
-#: ../src/search.c:3234
+#: ../src/search.c:3358
 msgid "Image class"
 msgstr ""
 
-#: ../src/search.c:3250
+#: ../src/search.c:3374
 msgid "Marks"
 msgstr ""
 
-#: ../src/search.c:3323
+#: ../src/search.c:3447
 msgid "Rank"
 msgstr ""
 
@@ -5786,56 +5760,85 @@ msgstr ""
 msgid "Thumbnail image in cache failed to load, trying to recreate.\n"
 msgstr ""
 
-#: ../src/toolbar.c:85
-msgid "Search"
+#: ../src/toolbar.c:87 ../src/ui_pathsel.c:752 ../src/ui_pathsel.c:1058
+#: ../src/utilops.c:2879
+msgid "New folder"
+msgstr ""
+
+#: ../src/toolbar.c:90 ../src/utilops.c:2375 ../src/utilops.c:2841
+msgid "Rename"
+msgstr ""
+
+#: ../src/toolbar.c:92
+msgid "Close Window"
+msgstr ""
+
+#: ../src/toolbar.c:96
+msgid "Select invert"
+msgstr ""
+
+#: ../src/toolbar.c:97
+msgid "Show file filter"
+msgstr ""
+
+#: ../src/toolbar.c:98
+msgid "Select rectangle"
 msgstr ""
 
-#: ../src/toolbar.c:90
+#: ../src/toolbar.c:99
+msgid "Print"
+msgstr ""
+
+#: ../src/toolbar.c:101
 msgid "Configure this window"
 msgstr ""
 
-#: ../src/toolbar.c:91
+#: ../src/toolbar.c:102
 msgid "Cache maintenance"
 msgstr ""
 
-#: ../src/toolbar.c:96
+#: ../src/toolbar.c:113
 msgid "Fit Horizontaly"
 msgstr ""
 
-#: ../src/toolbar.c:97
+#: ../src/toolbar.c:114
 msgid "Fit vertically"
 msgstr ""
 
-#: ../src/toolbar.c:102
+#: ../src/toolbar.c:119
 msgid "Zoom1:3"
 msgstr ""
 
-#: ../src/toolbar.c:107
+#: ../src/toolbar.c:124
 msgid "Slideshow Faster"
 msgstr ""
 
-#: ../src/toolbar.c:108
+#: ../src/toolbar.c:125
 msgid "Slideshow Slower"
 msgstr ""
 
-#: ../src/toolbar.c:110 ../src/window.c:287 ../src/window.c:308
+#: ../src/toolbar.c:127 ../src/window.c:287 ../src/window.c:308
 msgid "Help"
 msgstr ""
 
-#: ../src/toolbar.c:112
+#: ../src/toolbar.c:129
 msgid "Show thumbnails"
 msgstr ""
 
-#: ../src/toolbar.c:113
+#: ../src/toolbar.c:130
 msgid "Show marks"
 msgstr ""
 
-#: ../src/toolbar.c:503
+#: ../src/toolbar.c:131
+msgid "Show guidelines"
+msgstr ""
+
+#: ../src/toolbar.c:522
 msgid "Add Toolbar Item"
 msgstr ""
 
-#: ../src/trash.c:88 ../src/utilops.c:2645 ../src/utilops.c:2656
-#: ../src/utilops.c:2713
+#: ../src/trash.c:88 ../src/utilops.c:2653 ../src/utilops.c:2664
+#: ../src/utilops.c:2721
 msgid "Delete failed"
 msgstr ""
 
@@ -5843,15 +5846,15 @@ msgstr ""
 msgid "Unable to remove old file from trash folder"
 msgstr "Unable to remove old file from Rubbish Bin folder"
 
-#: ../src/trash.c:146
+#: ../src/trash.c:148
 msgid "Could not create folder"
 msgstr ""
 
-#: ../src/trash.c:168
+#: ../src/trash.c:170
 msgid "Permission denied"
 msgstr ""
 
-#: ../src/trash.c:178
+#: ../src/trash.c:180
 #, c-format
 msgid ""
 "Unable to access or create the trash folder.\n"
@@ -5860,32 +5863,28 @@ msgstr ""
 "Unable to access or create the Rubbish Bin folder.\n"
 "\"%s\""
 
-#: ../src/trash.c:182
-msgid "Turn off safe delete"
-msgstr ""
-
-#: ../src/trash.c:201
+#: ../src/trash.c:210
 msgid "Deletion by external command"
 msgstr ""
 
-#: ../src/trash.c:209
+#: ../src/trash.c:220
 #, c-format
 msgid " (max. %d MB)"
 msgstr ""
 
-#: ../src/trash.c:213
+#. ~ buf = g_strdup_printf(_("Safe delete: %s%s\nTrash: %s"), _("on"), buf2, options->file_ops.safe_delete_path);
+#: ../src/trash.c:225
 #, c-format
 msgid ""
-"Safe delete: %s%s\n"
-"Trash: %s"
+"Using Geeqie Trash bin\n"
+"%s"
 msgstr ""
-"Safe delete: %s%s\n"
-"Rubbish Bin: %s"
+"Using Geeqie Rubbish bin\n"
+"%s"
 
-#: ../src/trash.c:218
-#, c-format
-msgid "Safe delete: %s"
-msgstr ""
+#: ../src/trash.c:230
+msgid "Using system Trash bin"
+msgstr "Using system Rubbish bin"
 
 #: ../src/ui_bookmark.c:139 ../src/ui_bookmark.c:202
 msgid "New Bookmark"
@@ -5979,8 +5978,13 @@ msgid ""
 "%s"
 msgstr ""
 
-#: ../src/ui_pathsel.c:433 ../src/ui_pathsel.c:439 ../src/utilops.c:2344
-#: ../src/utilops.c:2371 ../src/utilops.c:2837
+#: ../src/ui_pathsel.c:432
+#, c-format
+msgid "A file with name %s already exists."
+msgstr ""
+
+#: ../src/ui_pathsel.c:433 ../src/ui_pathsel.c:439 ../src/utilops.c:2352
+#: ../src/utilops.c:2379 ../src/utilops.c:2845
 msgid "Rename failed"
 msgstr ""
 
@@ -5997,14 +6001,6 @@ msgstr ""
 msgid "Add _Bookmark"
 msgstr ""
 
-#: ../src/ui_pathsel.c:644
-msgid "_Delete"
-msgstr ""
-
-#: ../src/ui_pathsel.c:752 ../src/ui_pathsel.c:1058 ../src/utilops.c:2871
-msgid "New folder"
-msgstr ""
-
 #: ../src/ui_pathsel.c:762
 #, c-format
 msgid ""
@@ -6028,11 +6024,11 @@ msgstr ""
 msgid "Filter:"
 msgstr ""
 
-#: ../src/ui_tabcomp.c:941
+#: ../src/ui_tabcomp.c:942
 msgid "Select path"
 msgstr ""
 
-#: ../src/ui_tabcomp.c:963
+#: ../src/ui_tabcomp.c:964
 msgid "All files"
 msgstr ""
 
@@ -6195,121 +6191,121 @@ msgstr ""
 msgid "The following metadata tags will be written to the image file itself."
 msgstr ""
 
-#: ../src/utilops.c:2181
-msgid "Delete files?"
+#: ../src/utilops.c:2182
+msgid "This will move the following files to the Trash bin"
+msgstr "This will move the following files to the Rubbish bin"
+
+#: ../src/utilops.c:2186
+msgid "This will permanently delete the following files"
 msgstr ""
 
-#: ../src/utilops.c:2182
-msgid "This will delete the following files"
+#: ../src/utilops.c:2189
+msgid "Delete files?"
 msgstr ""
 
-#: ../src/utilops.c:2201
+#: ../src/utilops.c:2209
 msgid "Can't write metadata"
 msgstr ""
 
-#: ../src/utilops.c:2224
+#: ../src/utilops.c:2232
 msgid "Write metadata"
 msgstr ""
 
-#: ../src/utilops.c:2225
+#: ../src/utilops.c:2233
 msgid "Write metadata?"
 msgstr ""
 
-#: ../src/utilops.c:2226
+#: ../src/utilops.c:2234
 msgid "This will write the changed metadata into the following files"
 msgstr ""
 
-#: ../src/utilops.c:2228
+#: ../src/utilops.c:2236
 msgid "Metadata writing failed"
 msgstr ""
 
-#: ../src/utilops.c:2247 ../src/utilops.c:2275
+#: ../src/utilops.c:2255 ../src/utilops.c:2283
 msgid "Move failed"
 msgstr ""
 
-#: ../src/utilops.c:2272
+#: ../src/utilops.c:2280
 msgid "Move files?"
 msgstr ""
 
-#: ../src/utilops.c:2273
+#: ../src/utilops.c:2281
 msgid "This will move the following files"
 msgstr ""
 
-#: ../src/utilops.c:2297 ../src/utilops.c:2325
+#: ../src/utilops.c:2305 ../src/utilops.c:2333
 msgid "Copy failed"
 msgstr ""
 
-#: ../src/utilops.c:2322
+#: ../src/utilops.c:2330
 msgid "Copy files?"
 msgstr ""
 
-#: ../src/utilops.c:2323 ../src/utilops.c:2457
+#: ../src/utilops.c:2331 ../src/utilops.c:2465
 msgid "This will copy the following files"
 msgstr ""
 
-#: ../src/utilops.c:2367 ../src/utilops.c:2833
-msgid "Rename"
-msgstr ""
-
-#: ../src/utilops.c:2368
+#: ../src/utilops.c:2376
 msgid "Rename files?"
 msgstr ""
 
-#: ../src/utilops.c:2369
+#: ../src/utilops.c:2377
 msgid "This will rename the following files"
 msgstr ""
 
-#: ../src/utilops.c:2421
+#: ../src/utilops.c:2429
 msgid "Can't run external editor"
 msgstr ""
 
-#: ../src/utilops.c:2455
+#: ../src/utilops.c:2463
 msgid "Editor"
 msgstr ""
 
-#: ../src/utilops.c:2456
+#: ../src/utilops.c:2464
 msgid "Run editor?"
 msgstr ""
 
-#: ../src/utilops.c:2459
+#: ../src/utilops.c:2467
 msgid "External command failed"
 msgstr ""
 
-#: ../src/utilops.c:2628 ../src/utilops.c:2701
+#: ../src/utilops.c:2636 ../src/utilops.c:2709
 msgid "Delete folder"
 msgstr ""
 
-#: ../src/utilops.c:2629
+#: ../src/utilops.c:2637
 msgid "Delete symbolic link?"
 msgstr ""
 
-#: ../src/utilops.c:2631
+#: ../src/utilops.c:2639
 msgid ""
 "This will delete the symbolic link.\n"
 "The folder this link points to will not be deleted."
 msgstr ""
 
-#: ../src/utilops.c:2633
+#: ../src/utilops.c:2641
 msgid "Link deletion failed"
 msgstr ""
 
-#: ../src/utilops.c:2643
+#: ../src/utilops.c:2651
 #, c-format
 msgid ""
 "Unable to remove folder %s\n"
 "Permissions do not allow writing to the folder."
 msgstr ""
 
-#: ../src/utilops.c:2655 ../src/utilops.c:2712
+#: ../src/utilops.c:2663 ../src/utilops.c:2720
 #, c-format
 msgid "Unable to list contents of folder %s"
 msgstr ""
 
-#: ../src/utilops.c:2669 ../src/utilops.c:2677
+#: ../src/utilops.c:2677 ../src/utilops.c:2685
 msgid "Folder contains subfolders"
 msgstr ""
 
-#: ../src/utilops.c:2673
+#: ../src/utilops.c:2681
 #, c-format
 msgid ""
 "Unable to delete the folder:\n"
@@ -6319,140 +6315,136 @@ msgid ""
 "This folder contains subfolders which must be moved before it can be deleted."
 msgstr ""
 
-#: ../src/utilops.c:2681
+#: ../src/utilops.c:2689
 msgid "Subfolders:"
 msgstr ""
 
-#: ../src/utilops.c:2702
+#: ../src/utilops.c:2710
 msgid "Delete folder?"
 msgstr ""
 
-#: ../src/utilops.c:2703
+#: ../src/utilops.c:2711
 msgid "The folder contains these files:"
 msgstr ""
 
-#: ../src/utilops.c:2704
+#: ../src/utilops.c:2712
 msgid ""
 "This will delete the folder.\n"
 "The contents of this folder will also be deleted."
 msgstr ""
 
-#: ../src/utilops.c:2834
+#: ../src/utilops.c:2842
 msgid "Rename folder?"
 msgstr ""
 
-#: ../src/utilops.c:2835
+#: ../src/utilops.c:2843
 msgid "The folder contains the following files"
 msgstr ""
 
-#: ../src/utilops.c:2881
+#: ../src/utilops.c:2889
 msgid "Create Folder"
 msgstr ""
 
-#: ../src/utilops.c:2882
+#: ../src/utilops.c:2890
 msgid "Create folder?"
 msgstr ""
 
-#: ../src/utilops.c:2885
+#: ../src/utilops.c:2893
 msgid "Can't create folder"
 msgstr ""
 
-#: ../src/view_dir.c:406
+#: ../src/view_dir.c:409
 msgid "_Copy"
 msgstr ""
 
-#: ../src/view_dir.c:408
+#: ../src/view_dir.c:411
 msgid "_Move"
 msgstr ""
 
-#: ../src/view_dir.c:662
+#: ../src/view_dir.c:665
 msgid "_Up to parent"
 msgstr ""
 
-#: ../src/view_dir.c:667
+#: ../src/view_dir.c:670
 msgid "_Slideshow"
 msgstr ""
 
-#: ../src/view_dir.c:669
+#: ../src/view_dir.c:672
 msgid "Slideshow recursive"
 msgstr ""
 
-#: ../src/view_dir.c:673
+#: ../src/view_dir.c:676
 msgid "Find _duplicates..."
 msgstr ""
 
-#: ../src/view_dir.c:675
+#: ../src/view_dir.c:678
 msgid "Find duplicates recursive..."
 msgstr ""
 
-#: ../src/view_dir.c:680
+#: ../src/view_dir.c:683
 msgid "_New folder..."
 msgstr ""
 
-#: ../src/view_dir.c:697 ../src/view_file/view_file.c:664
+#: ../src/view_dir.c:700 ../src/view_file/view_file.c:672
 msgid "View as _List"
 msgstr ""
 
-#: ../src/view_dir.c:700
+#: ../src/view_dir.c:703
 msgid "View as _Tree"
 msgstr ""
 
-#: ../src/view_dir.c:705
+#: ../src/view_dir.c:708
 msgid "Show _hidden files"
 msgstr ""
 
-#: ../src/view_dir.c:708 ../src/view_file/view_file.c:694
+#: ../src/view_dir.c:711 ../src/view_file/view_file.c:702
 msgid "Re_fresh"
 msgstr ""
 
-#: ../src/view_file/view_file.c:667
+#: ../src/view_file/view_file.c:675
 msgid "View as _Icons"
 msgstr ""
 
-#: ../src/view_file/view_file.c:673
+#: ../src/view_file/view_file.c:681
 msgid "Show _thumbnails"
 msgstr ""
 
-#: ../src/view_file/view_file.c:685 ../src/view_file/view_file.c:689
-msgid "Show star rating"
-msgstr ""
-
-#: ../src/view_file/view_file.c:809
+#: ../src/view_file/view_file.c:817
 msgid "Mark text"
 msgstr ""
 
-#: ../src/view_file/view_file.c:812
+#: ../src/view_file/view_file.c:820
 msgid "Set mark text"
 msgstr ""
 
-#: ../src/view_file/view_file.c:813
+#: ../src/view_file/view_file.c:821
 msgid "This will set or clear the mark text."
 msgstr ""
 
-#: ../src/view_file/view_file.c:1273
+#: ../src/view_file/view_file.c:1448
 msgid "Loading meta..."
 msgstr ""
 
-#: ../src/view_file/view_file_icon.c:2022 ../src/view_file/view_file_list.c:910
+#: ../src/view_file/view_file_icon.c:2031 ../src/view_file/view_file_list.c:919
 msgid " [NO GROUPING]"
 msgstr ""
 
-#: ../src/view_file/view_file_list.c:511
+#: ../src/view_file/view_file_list.c:513
 #, c-format
 msgid ""
 "Invalid file name:\n"
 "%s"
 msgstr ""
 
-#: ../src/view_file/view_file_list.c:512
+#: ../src/view_file/view_file_list.c:514
 msgid "Error renaming file"
 msgstr ""
 
-#: ../src/view_file/view_file_list.c:2063
+#: ../src/view_file/view_file_list.c:2074
 msgid "NameStars"
 msgstr ""
 
-#: ../src/view_file/view_file_list.c:2067
+#: ../src/view_file/view_file_list.c:2078
 msgid "Stars"
 msgstr ""
 
@@ -6467,3 +6459,16 @@ msgstr ""
 #: ../src/window.c:387
 msgid "Search terms:"
 msgstr ""
+
+#~ msgid ""
+#~ "Safe delete: %s%s\n"
+#~ "Trash: %s"
+#~ msgstr ""
+#~ "Safe delete: %s%s\n"
+#~ "Rubbish Bin: %s"
+
+#~ msgid "millimeters"
+#~ msgstr "millimetres"
+
+#~ msgid "centimeters"
+#~ msgstr "centimetres"
index 705988e..c420b41 100644 (file)
@@ -260,6 +260,7 @@ static void bar_sort_undo_folder(SortData *sd, GtkWidget *button)
                                        work = g_list_append(work, file_data_new_group(delete_list->data));
                                        delete_list = delete_list->next;
                                        }
+                               options->file_ops.safe_delete_enable = TRUE;
                                file_util_delete(NULL, work, button);
                                }
                        break;
index 50bce3c..3474840 100644 (file)
@@ -34,6 +34,7 @@
 #include "layout_image.h"
 #include "menu.h"
 #include "metadata.h"
+#include "pixbuf_util.h"
 #include "print.h"
 #include "utilops.h"
 #include "ui_fileops.h"
@@ -733,6 +734,15 @@ static void collection_table_popup_delete_cb(GtkWidget *widget, gpointer data)
 {
        CollectTable *ct = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(NULL, collection_table_popup_file_list(ct), ct->listview);
+}
+
+static void collection_table_popup_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       CollectTable *ct = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, collection_table_popup_file_list(ct), ct->listview);
 }
 
@@ -994,10 +1004,18 @@ static GtkWidget *collection_table_popup_menu(CollectTable *ct, gboolean over_ic
                                G_CALLBACK(collection_table_popup_copy_path_cb), ct);
        menu_item_add_sensitive(menu, _("_Copy path unquoted"), over_icon,
                                G_CALLBACK(collection_table_popup_copy_path_unquoted_cb), ct);
-       menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, over_icon,
-                       G_CALLBACK(collection_table_popup_delete_cb), ct);
+
        menu_item_add_divider(menu);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH, over_icon,
+                               G_CALLBACK(collection_table_popup_move_to_trash_cb), ct);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE, over_icon,
+                               G_CALLBACK(collection_table_popup_delete_cb), ct);
 
+       menu_item_add_divider(menu);
        submenu = submenu_add_sort(NULL, G_CALLBACK(collection_table_popup_sort_cb), ct, FALSE, TRUE, FALSE, 0);
        menu_item_add_divider(submenu);
        menu_item_add(submenu, _("Randomize"),
index 046c24b..59a994c 100644 (file)
@@ -923,6 +923,7 @@ static gboolean collection_window_keypress(GtkWidget *widget, GdkEventKey *event
                                file_util_rename(NULL, collection_table_selection_get_list(cw->table), cw->window);
                                break;
                        case 'D': case 'd':
+                               options->file_ops.safe_delete_enable = TRUE;
                                file_util_delete(NULL, collection_table_selection_get_list(cw->table), cw->window);
                                break;
                        case 'S': case 's':
index 3277071..dffd07c 100644 (file)
@@ -36,6 +36,7 @@
 #include "md5-util.h"
 #include "menu.h"
 #include "misc.h"
+#include "pixbuf_util.h"
 #include "print.h"
 #include "thumb.h"
 #include "ui_fileops.h"
@@ -2249,6 +2250,15 @@ static void dupe_menu_delete_cb(GtkWidget *widget, gpointer data)
 {
        DupeWindow *dw = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(NULL, dupe_listview_get_selection(dw, dw->listview), dw->window);
+}
+
+static void dupe_menu_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       DupeWindow *dw = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, dupe_listview_get_selection(dw, dw->listview), dw->window);
 }
 
@@ -2379,8 +2389,17 @@ static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di)
                                G_CALLBACK(dupe_menu_copy_path_cb), dw);
        menu_item_add_sensitive(menu, _("_Copy path unquoted"), on_row,
                                G_CALLBACK(dupe_menu_copy_path_unquoted_cb), dw);
-       menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, on_row,
+
+       menu_item_add_divider(menu);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH, on_row,
+                               G_CALLBACK(dupe_menu_move_to_trash_cb), dw);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE, on_row,
                                G_CALLBACK(dupe_menu_delete_cb), dw);
+
        menu_item_add_divider(menu);
        menu_item_add_stock_sensitive(menu, _("Rem_ove"), GTK_STOCK_REMOVE, on_row,
                                G_CALLBACK(dupe_menu_remove_cb), dw);
@@ -3069,6 +3088,7 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
                                        file_util_rename(NULL, dupe_listview_get_selection(dw, listview), dw->window);
                                        break;
                                case 'D': case 'd':
+                                       options->file_ops.safe_delete_enable = TRUE;
                                        file_util_delete(NULL, dupe_listview_get_selection(dw, listview), dw->window);
                                        break;
                                default:
index 9ee0f5c..82e4c5c 100644 (file)
@@ -46,7 +46,8 @@ ICONS_INLINE = \
        icon_rotate_180.png \
        icon_mirror.png \
        icon_flip.png \
-       icon_original.png
+       icon_original.png \
+       icon_trash.png
 
 ICONS_INLINE_PAIRS = \
        folder_closed           $(srcdir)/folder_closed.png     \
@@ -91,7 +92,8 @@ ICONS_INLINE_PAIRS = \
        icon_rotate_180 $(srcdir)/icon_rotate_180.png \
        icon_mirror     $(srcdir)/icon_mirror.png \
        icon_flip       $(srcdir)/icon_flip.png \
-       icon_original   $(srcdir)/icon_original.png
+       icon_original   $(srcdir)/icon_original.png \
+       icon_trash      $(srcdir)/icon_trash.png
 
 icons_inline.h: $(ICONS_INLINE) Makefile.in
        @sh -ec "echo '/* Auto generated file, do not edit */'; echo; \
diff --git a/src/icons/icon_trash.png b/src/icons/icon_trash.png
new file mode 100644 (file)
index 0000000..5ef2657
Binary files /dev/null and b/src/icons/icon_trash.png differ
index 53f76d5..016ab37 100644 (file)
@@ -407,6 +407,7 @@ static gboolean view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event,
                                file_util_rename(image_get_fd(imd), NULL, imd->widget);
                                break;
                        case 'D': case 'd':
+                               options->file_ops.safe_delete_enable = TRUE;
                                file_util_delete(image_get_fd(imd), NULL, imd->widget);
                                break;
                        case 'W': case 'w':
@@ -446,6 +447,13 @@ static gboolean view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event,
                                                 filelist_copy(vw->list), vw->window);
                                }
                                break;
+                       case GDK_KEY_Delete: case GDK_KEY_KP_Delete:
+                               if (options->file_ops.enable_delete_key)
+                                       {
+                                       options->file_ops.safe_delete_enable = FALSE;
+                                       file_util_delete(image_get_fd(imd), NULL, imd->widget);
+                                       }
+                               break;
                        default:
                                stop_signal = FALSE;
                                break;
@@ -541,6 +549,7 @@ static gboolean view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event,
                        case GDK_KEY_Delete: case GDK_KEY_KP_Delete:
                                if (options->file_ops.enable_delete_key)
                                        {
+                                       options->file_ops.safe_delete_enable = TRUE;
                                        file_util_delete(image_get_fd(imd), NULL, imd->widget);
                                        }
                                break;
@@ -1159,6 +1168,17 @@ static void view_delete_cb(GtkWidget *widget, gpointer data)
        ImageWindow *imd;
 
        imd = view_window_active_image(vw);
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(image_get_fd(imd), NULL, imd->widget);
+}
+
+static void view_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       ViewWindow *vw = data;
+       ImageWindow *imd;
+
+       imd = view_window_active_image(vw);
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(image_get_fd(imd), NULL, imd->widget);
 }
 
@@ -1323,7 +1343,16 @@ static GtkWidget *view_popup_menu(ViewWindow *vw)
        menu_item_add(menu, _("_Rename..."), G_CALLBACK(view_rename_cb), vw);
        menu_item_add(menu, _("_Copy path"), G_CALLBACK(view_copy_path_cb), vw);
        menu_item_add(menu, _("_Copy path unquoted"), G_CALLBACK(view_copy_path_unquoted_cb), vw);
-       menu_item_add_stock(menu, _("_Delete..."), GTK_STOCK_DELETE, G_CALLBACK(view_delete_cb), vw);
+
+       menu_item_add_divider(menu);
+       menu_item_add_stock(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH,
+                               G_CALLBACK(view_move_to_trash_cb), vw);
+       menu_item_add_stock(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE,
+                               G_CALLBACK(view_delete_cb), vw);
 
        menu_item_add_divider(menu);
 
index 250df6b..c18bf23 100644 (file)
@@ -544,6 +544,16 @@ static void li_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
 {
        LayoutWindow *lw = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(layout_image_get_fd(lw), NULL,
+                        li_pop_menu_click_parent(widget, lw));
+}
+
+static void li_pop_menu_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(layout_image_get_fd(lw), NULL,
                         li_pop_menu_click_parent(widget, lw));
 }
@@ -705,7 +715,17 @@ static GtkWidget *layout_image_pop_menu(LayoutWindow *lw)
        item = menu_item_add(menu, _("_Copy path"), G_CALLBACK(li_pop_menu_copy_path_cb), lw);
        item = menu_item_add(menu, _("_Copy path unquoted"), G_CALLBACK(li_pop_menu_copy_path_unquoted_cb), lw);
        if (!path) gtk_widget_set_sensitive(item, FALSE);
-       item = menu_item_add_stock(menu, _("_Delete..."), GTK_STOCK_DELETE, G_CALLBACK(li_pop_menu_delete_cb), lw);
+       menu_item_add_divider(menu);
+
+       item = menu_item_add_stock(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH,
+                                                               G_CALLBACK(li_pop_menu_move_to_trash_cb), lw);
+       if (!path) gtk_widget_set_sensitive(item, FALSE);
+       item = menu_item_add_stock(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE,
+                                                               G_CALLBACK(li_pop_menu_delete_cb), lw);
        if (!path) gtk_widget_set_sensitive(item, FALSE);
        menu_item_add_divider(menu);
 
index 2ff1a70..86449b6 100644 (file)
@@ -372,6 +372,15 @@ static void layout_menu_delete_cb(GtkAction *action, gpointer data)
 {
        LayoutWindow *lw = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
+}
+
+static void layout_menu_move_to_trash_cb(GtkAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
 }
 
@@ -381,6 +390,17 @@ static void layout_menu_delete_key_cb(GtkAction *action, gpointer data)
 
        if (options->file_ops.enable_delete_key)
                {
+               options->file_ops.safe_delete_enable = FALSE;
+               file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
+               }
+}
+static void layout_menu_move_to_trash_key_cb(GtkAction *action, gpointer data)
+{
+       LayoutWindow *lw = data;
+
+       if (options->file_ops.enable_delete_key)
+               {
+               options->file_ops.safe_delete_enable = TRUE;
                file_util_delete(NULL, layout_selection_list(lw), layout_window(lw));
                }
 }
@@ -1877,9 +1897,10 @@ static GtkActionEntry menu_entries[] = {
   { "Copy",            GTK_STOCK_COPY,         N_("_Copy..."),                         "<control>C",           N_("Copy..."),                          CB(layout_menu_copy_cb) },
   { "Move",    PIXBUF_INLINE_ICON_MOVE,                        N_("_Move..."),                         "<control>M",           N_("Move..."),                          CB(layout_menu_move_cb) },
   { "Rename",  PIXBUF_INLINE_ICON_RENAME,      N_("_Rename..."),                       "<control>R",           N_("Rename..."),                        CB(layout_menu_rename_cb) },
-  { "Delete",          GTK_STOCK_DELETE,       N_("_Delete..."),                       "<control>D",           N_("Delete..."),                        CB(layout_menu_delete_cb) },
-  { "DeleteAlt1",      GTK_STOCK_DELETE,       N_("_Delete..."),                       "Delete",               N_("Delete..."),                        CB(layout_menu_delete_key_cb) },
-  { "DeleteAlt2",      GTK_STOCK_DELETE,       N_("_Delete..."),                       "KP_Delete",            N_("Delete..."),                        CB(layout_menu_delete_key_cb) },
+  { "Delete",  PIXBUF_INLINE_ICON_TRASH,       N_("Move to Trash..."),         "<control>D",   N_("Move to Trash..."),         CB(layout_menu_move_to_trash_cb) },
+  { "DeleteAlt1",      PIXBUF_INLINE_ICON_TRASH,N_("Move to Trash..."),        "Delete",               N_("Move to Trash..."),         CB(layout_menu_move_to_trash_key_cb) },
+  { "DeleteAlt2",      PIXBUF_INLINE_ICON_TRASH,N_("Move to Trash..."),        "KP_Delete",    N_("Move to Trash..."),         CB(layout_menu_move_to_trash_key_cb) },
+  { "PermanentDelete", GTK_STOCK_DELETE,       N_("Delete..."),                        "<shift>Delete",N_("Delete..."),                        CB(layout_menu_delete_cb) }, 
   { "EnableGrouping",  NULL,                   N_("Enable file _grouping"),            NULL,                   N_("Enable file grouping"),             CB(layout_menu_enable_grouping_cb) },
   { "DisableGrouping", NULL,                   N_("Disable file groupi_ng"),           NULL,                   N_("Disable file grouping"),            CB(layout_menu_disable_grouping_cb) },
   { "CopyPath",                NULL,                   N_("_Copy path to clipboard"),          NULL,                   N_("Copy path to clipboard"),           CB(layout_menu_copy_path_cb) },
@@ -2066,7 +2087,10 @@ static const gchar *menu_ui_description =
 "      <menuitem action='Copy'/>"
 "      <menuitem action='Move'/>"
 "      <menuitem action='Rename'/>"
+"      <separator/>"
 "      <menuitem action='Delete'/>"
+"      <menuitem action='PermanentDelete'/>"
+"      <separator/>"
 "      <placeholder name='FileOpsSection'/>"
 "      <separator/>"
 "      <placeholder name='QuitSection'/>"
index cf9764b..6c665e8 100644 (file)
@@ -65,9 +65,11 @@ ConfOptions *init_options(ConfOptions *options)
        options->show_window_ids = FALSE;
 
        options->file_ops.confirm_delete = TRUE;
+       options->file_ops.confirm_move_to_trash = TRUE;
        options->file_ops.enable_delete_key = TRUE;
+       options->file_ops.use_system_trash = TRUE;
        options->file_ops.enable_in_place_rename = TRUE;
-       options->file_ops.safe_delete_enable = FALSE;
+       options->file_ops.safe_delete_enable = TRUE;
        options->file_ops.safe_delete_folder_maxsize = 128;
        options->file_ops.safe_delete_path = NULL;
 
index 46748c2..9f45ec5 100644 (file)
@@ -95,8 +95,10 @@ struct _ConfOptions
                gboolean enable_in_place_rename;
 
                gboolean confirm_delete;
+               gboolean confirm_move_to_trash;
                gboolean enable_delete_key;
                gboolean safe_delete_enable;
+               gboolean use_system_trash;
                gchar *safe_delete_path;
                gint safe_delete_folder_maxsize;
        } file_ops;
index a841993..020603d 100644 (file)
@@ -1211,7 +1211,11 @@ static gboolean pan_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, g
                                if (fd) file_util_rename(fd, NULL, GTK_WIDGET(pr));
                                break;
                        case 'D': case 'd':
-                               if (fd) file_util_delete(fd, NULL, GTK_WIDGET(pr));
+                               if (fd)
+                                       {
+                                       options->file_ops.safe_delete_enable = TRUE;
+                                       file_util_delete(fd, NULL, GTK_WIDGET(pr));
+                                       }
                                break;
                        case 'F': case 'f':
                                pan_search_toggle_visible(pw, TRUE);
@@ -2151,7 +2155,24 @@ static void pan_delete_cb(GtkWidget *widget, gpointer data)
        FileData *fd;
 
        fd = pan_menu_click_fd(pw);
-       if (fd) file_util_delete(fd, NULL, pw->imd->widget);
+       if (fd)
+               {
+               options->file_ops.safe_delete_enable = FALSE;
+               file_util_delete(fd, NULL, pw->imd->widget);
+               }
+}
+
+static void pan_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       PanWindow *pw = data;
+       FileData *fd;
+
+       fd = pan_menu_click_fd(pw);
+       if (fd)
+               {
+               options->file_ops.safe_delete_enable = TRUE;
+               file_util_delete(fd, NULL, pw->imd->widget);
+               }
 }
 
 static void pan_copy_path_cb(GtkWidget *widget, gpointer data)
@@ -2301,8 +2322,16 @@ static GtkWidget *pan_popup_menu(PanWindow *pw)
                                G_CALLBACK(pan_copy_path_cb), pw);
        menu_item_add_sensitive(menu, _("_Copy path unquoted"), active,
                                G_CALLBACK(pan_copy_path_unquoted_cb), pw);
-       menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, active,
-                                     G_CALLBACK(pan_delete_cb), pw);
+
+       menu_item_add_divider(menu);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH, active,
+                                               G_CALLBACK(pan_move_to_trash_cb), pw);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE, active,
+                                               G_CALLBACK(pan_delete_cb), pw);
 
        menu_item_add_divider(menu);
 
index 7cf4d69..f2a44a0 100644 (file)
@@ -145,6 +145,7 @@ static PixbufInline inline_pixbuf_data[] = {
        { PIXBUF_INLINE_ICON_MIRROR,    icon_mirror },
        { PIXBUF_INLINE_ICON_FLIP,      icon_flip },
        { PIXBUF_INLINE_ICON_ORIGINAL,  icon_original },
+       { PIXBUF_INLINE_ICON_TRASH,     icon_trash },
        { NULL, NULL }
 };
 
index 47416a7..eb7df09 100644 (file)
@@ -73,6 +73,7 @@ gboolean pixbuf_scale_aspect(gint req_w, gint req_h, gint old_w, gint old_h, gin
 #define PIXBUF_INLINE_ICON_SELECT_INVERT       "icon_select_invert"
 #define PIXBUF_INLINE_ICON_SELECT_RECTANGLE    "icon_select_rectangle"
 #define PIXBUF_INLINE_ICON_FILE_FILTER "icon_file_filter"
+#define PIXBUF_INLINE_ICON_TRASH       "icon_trash"
 
 #define PIXBUF_INLINE_ICON_CW  "icon_rotate_clockwise"
 #define PIXBUF_INLINE_ICON_CCW "icon_rotate_counter_clockwise"
index ed989c0..ae95955 100644 (file)
@@ -261,7 +261,8 @@ static void config_window_apply(void)
 
        options->file_ops.confirm_delete = c_options->file_ops.confirm_delete;
        options->file_ops.enable_delete_key = c_options->file_ops.enable_delete_key;
-       options->file_ops.safe_delete_enable = c_options->file_ops.safe_delete_enable;
+       options->file_ops.confirm_move_to_trash = c_options->file_ops.confirm_move_to_trash;
+       options->file_ops.use_system_trash = c_options->file_ops.use_system_trash;
        options->file_ops.safe_delete_folder_maxsize = c_options->file_ops.safe_delete_folder_maxsize;
        options->tools_restore_state = c_options->tools_restore_state;
        options->save_window_positions = c_options->save_window_positions;
@@ -3081,6 +3082,22 @@ static void config_tab_color(GtkWidget *notebook)
 }
 
 /* advanced entry tab */
+static void use_geeqie_trash_cb(GtkWidget *widget, gpointer data)
+{
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+               {
+               c_options->file_ops.use_system_trash = FALSE;
+               }
+}
+
+static void use_system_trash_cb(GtkWidget *widget, gpointer data)
+{
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+               {
+               c_options->file_ops.use_system_trash = TRUE;
+               }
+}
+
 static void config_tab_behavior(GtkWidget *notebook)
 {
        GtkWidget *hbox;
@@ -3099,13 +3116,15 @@ static void config_tab_behavior(GtkWidget *notebook)
 
        group = pref_group_new(vbox, FALSE, _("Delete"), GTK_ORIENTATION_VERTICAL);
 
-       pref_checkbox_new_int(group, _("Confirm file delete"),
+       pref_checkbox_new_int(group, _("Confirm permanent file delete"),
                              options->file_ops.confirm_delete, &c_options->file_ops.confirm_delete);
+       pref_checkbox_new_int(group, _("Confirm move file to Trash"),
+                             options->file_ops.confirm_move_to_trash, &c_options->file_ops.confirm_move_to_trash);
        pref_checkbox_new_int(group, _("Enable Delete key"),
                              options->file_ops.enable_delete_key, &c_options->file_ops.enable_delete_key);
 
-       ct_button = pref_checkbox_new_int(group, _("Safe delete"),
-                                         options->file_ops.safe_delete_enable, &c_options->file_ops.safe_delete_enable);
+       ct_button = pref_radiobutton_new(group, NULL, _("Use Geeqie trash location"),
+                                       !options->file_ops.use_system_trash, G_CALLBACK(use_geeqie_trash_cb),NULL);
 
        hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
        pref_checkbox_link_sensitivity(ct_button, hbox);
@@ -3133,8 +3152,12 @@ static void config_tab_behavior(GtkWidget *notebook)
        button = pref_button_new(NULL, GTK_STOCK_CLEAR, NULL, FALSE,
                                 G_CALLBACK(safe_delete_clear_cb), NULL);
        gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+       pref_radiobutton_new(group, ct_button, _("Use system Trash bin"),
+                                       options->file_ops.use_system_trash, G_CALLBACK(use_system_trash_cb), NULL);
        gtk_widget_show(button);
 
+       pref_spacer(group, PREF_PAD_GROUP);
+
 
        group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL);
 
@@ -3168,6 +3191,8 @@ static void config_tab_behavior(GtkWidget *notebook)
        table = pref_table_new(group, 2, 1, FALSE, FALSE);
        add_clipboard_selection_menu(table, 0, 0, _("Copy path clipboard selection:"), options->clipboard_selection, &c_options->clipboard_selection);
 
+       pref_spacer(group, PREF_PAD_GROUP);
+
        group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL);
 
        pref_checkbox_new_int(group, _("Progressive keyboard scrolling"),
@@ -3185,6 +3210,8 @@ static void config_tab_behavior(GtkWidget *notebook)
 
 
 #ifdef DEBUG
+       pref_spacer(group, PREF_PAD_GROUP);
+
        group = pref_group_new(vbox, FALSE, _("Debugging"), GTK_ORIENTATION_VERTICAL);
 
        pref_spin_new_int(group, _("Debug level:"), NULL,
index 12c5a78..6dcbae4 100644 (file)
@@ -355,7 +355,9 @@ static void write_global_attributes(GString *outstr, gint indent)
        /* File operations Options */
        WRITE_NL(); WRITE_BOOL(*options, file_ops.enable_in_place_rename);
        WRITE_NL(); WRITE_BOOL(*options, file_ops.confirm_delete);
+       WRITE_NL(); WRITE_BOOL(*options, file_ops.confirm_move_to_trash);
        WRITE_NL(); WRITE_BOOL(*options, file_ops.enable_delete_key);
+       WRITE_NL(); WRITE_BOOL(*options, file_ops.use_system_trash);
        WRITE_NL(); WRITE_BOOL(*options, file_ops.safe_delete_enable);
        WRITE_NL(); WRITE_CHAR(*options, file_ops.safe_delete_path);
        WRITE_NL(); WRITE_INT(*options, file_ops.safe_delete_folder_maxsize);
@@ -786,7 +788,9 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar **
                /* File operations *options */
                if (READ_BOOL(*options, file_ops.enable_in_place_rename)) continue;
                if (READ_BOOL(*options, file_ops.confirm_delete)) continue;
+               if (READ_BOOL(*options, file_ops.confirm_move_to_trash)) continue;
                if (READ_BOOL(*options, file_ops.enable_delete_key)) continue;
+               if (READ_BOOL(*options, file_ops.use_system_trash)) continue;
                if (READ_BOOL(*options, file_ops.safe_delete_enable)) continue;
                if (READ_CHAR(*options, file_ops.safe_delete_path)) continue;
                if (READ_INT(*options, file_ops.safe_delete_folder_maxsize)) continue;
index 662dc5a..d4f084d 100644 (file)
@@ -37,6 +37,7 @@
 #include "menu.h"
 #include "metadata.h"
 #include "misc.h"
+#include "pixbuf_util.h"
 #include "print.h"
 #include "thumb.h"
 #include "ui_bookmark.h"
@@ -1015,6 +1016,15 @@ static void sr_menu_delete_cb(GtkWidget *widget, gpointer data)
 {
        SearchData *sd = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(NULL, search_result_selection_list(sd), sd->window);
+}
+
+static void sr_menu_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       SearchData *sd = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, search_result_selection_list(sd), sd->window);
 }
 
@@ -1128,13 +1138,16 @@ static GtkWidget *search_result_menu(SearchData *sd, gboolean on_row, gboolean e
                                G_CALLBACK(sr_menu_copy_path_cb), sd);
        menu_item_add_sensitive(menu, _("_Copy path unquoted"), on_row,
                                G_CALLBACK(sr_menu_copy_path_unquoted_cb), sd);
-       menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, on_row,
-                                     G_CALLBACK(sr_menu_delete_cb), sd);
+
        menu_item_add_divider(menu);
-       menu_item_add_stock_sensitive(menu, _("Rem_ove"), GTK_STOCK_REMOVE, on_row,
-                                     G_CALLBACK(sr_menu_remove_cb), sd);
-       menu_item_add_stock_sensitive(menu, _("C_lear"), GTK_STOCK_CLEAR, !empty,
-                                     G_CALLBACK(sr_menu_clear_cb), sd);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH, on_row,
+                               G_CALLBACK(sr_menu_move_to_trash_cb), sd);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE, on_row,
+                               G_CALLBACK(sr_menu_delete_cb), sd);
 
        return menu;
 }
@@ -1345,6 +1358,7 @@ static gboolean search_result_keypress_cb(GtkWidget *widget, GdkEventKey *event,
                                file_util_rename(NULL, search_result_selection_list(sd), widget);
                                break;
                        case 'D': case 'd':
+                               options->file_ops.safe_delete_enable = TRUE;
                                file_util_delete(NULL, search_result_selection_list(sd), widget);
                                break;
                        case 'A': case 'a':
index 2665df5..b6a8343 100644 (file)
@@ -118,11 +118,6 @@ static gchar *file_util_safe_dest(const gchar *path)
        return dest;
 }
 
-static void file_util_safe_del_toggle_cb(GtkWidget *button, gpointer data)
-{
-       options->file_ops.safe_delete_enable = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
-}
-
 static void file_util_safe_del_close_cb(GtkWidget *dialog, gpointer data)
 {
        GenericDialog **gd = data;
@@ -138,55 +133,55 @@ gboolean file_util_safe_unlink(const gchar *path)
 
        if (!isfile(path)) return FALSE;
 
-       if (!isdir(options->file_ops.safe_delete_path))
+       if (!options->file_ops.use_system_trash)
                {
-               DEBUG_1("creating trash: %s", options->file_ops.safe_delete_path);
-               if (!options->file_ops.safe_delete_path || !mkdir_utf8(options->file_ops.safe_delete_path, 0755))
+               if (!isdir(options->file_ops.safe_delete_path))
                        {
-                       result = _("Could not create folder");
-                       success = FALSE;
+                       DEBUG_1("creating trash: %s", options->file_ops.safe_delete_path);
+                       if (!options->file_ops.safe_delete_path || !mkdir_utf8(options->file_ops.safe_delete_path, 0755))
+                               {
+                               result = _("Could not create folder");
+                               success = FALSE;
+                               }
                        }
-               }
 
-       if (success)
-               {
-               gchar *dest;
-
-               dest = file_util_safe_dest(path);
-               if (dest)
-                       {
-                       DEBUG_1("safe deleting %s to %s", path, dest);
-                       success = move_file(path, dest);
-                       }
-               else
+               if (success)
                        {
-                       success = FALSE;
+                       gchar *dest;
+
+                       dest = file_util_safe_dest(path);
+                       if (dest)
+                               {
+                               DEBUG_1("safe deleting %s to %s", path, dest);
+                               success = move_file(path, dest);
+                               }
+                       else
+                               {
+                               success = FALSE;
+                               }
+
+                       if (!success && !access_file(path, W_OK))
+                               {
+                               result = _("Permission denied");
+                               }
+                       g_free(dest);
                        }
 
-               if (!success && !access_file(path, W_OK))
+               if (result && !gd)
                        {
-                       result = _("Permission denied");
+                       GtkWidget *button;
+                       gchar *buf;
+
+                       buf = g_strdup_printf(_("Unable to access or create the trash folder.\n\"%s\""), options->file_ops.safe_delete_path);
+                       gd = file_util_warning_dialog(result, buf, GTK_STOCK_DIALOG_WARNING, NULL);
+                       g_free(buf);
                        }
-               g_free(dest);
                }
-
-       if (result && !gd)
+       else
                {
-               GtkWidget *button;
-               gchar *buf;
-
-               buf = g_strdup_printf(_("Unable to access or create the trash folder.\n\"%s\""), options->file_ops.safe_delete_path);
-               gd = file_util_warning_dialog(result, buf, GTK_STOCK_DIALOG_WARNING, NULL);
-               g_free(buf);
-
-               button = gtk_check_button_new_with_label(_("Turn off safe delete"));
-               g_signal_connect(G_OBJECT(button), "toggled",
-                                G_CALLBACK(file_util_safe_del_toggle_cb), NULL);
-               gtk_box_pack_start(GTK_BOX(gd->vbox), button, FALSE, FALSE, 0);
-               gtk_widget_show(button);
-
-               g_signal_connect(G_OBJECT(gd->dialog), "destroy",
-                                G_CALLBACK(file_util_safe_del_close_cb), &gd);
+               GFile *tmp = g_file_new_for_path (path);
+               g_file_trash(tmp, FALSE, NULL);
+               g_object_unref(tmp);
                }
 
        return success;
@@ -194,7 +189,7 @@ gboolean file_util_safe_unlink(const gchar *path)
 
 gchar *file_util_safe_delete_status(void)
 {
-       gchar *buf;
+       gchar *buf = NULL;
 
        if (is_valid_editor_command(CMD_DELETE))
                {
@@ -204,18 +199,21 @@ gchar *file_util_safe_delete_status(void)
                {
                if (options->file_ops.safe_delete_enable)
                        {
-                       gchar *buf2;
-                       if (options->file_ops.safe_delete_folder_maxsize > 0)
-                               buf2 = g_strdup_printf(_(" (max. %d MB)"), options->file_ops.safe_delete_folder_maxsize);
+                       if (!options->file_ops.use_system_trash)
+                               {
+                               gchar *buf2;
+                               if (options->file_ops.safe_delete_folder_maxsize > 0)
+                                       buf2 = g_strdup_printf(_(" (max. %d MB)"), options->file_ops.safe_delete_folder_maxsize);
+                               else
+                                       buf2 = g_strdup("");
+
+                               buf = g_strdup_printf(_("Using Geeqie Trash bin\n%s"), buf2);
+                               g_free(buf2);
+                               }
                        else
-                               buf2 = g_strdup("");
-
-                       buf = g_strdup_printf(_("Safe delete: %s%s\nTrash: %s"), _("on"), buf2, options->file_ops.safe_delete_path);
-                       g_free(buf2);
-                       }
-               else
-                       {
-                       buf = g_strdup_printf(_("Safe delete: %s"), _("off"));
+                               {
+                               buf = g_strdup(_("Using system Trash bin"));
+                               }
                        }
                }
 
index 4a9473b..1614a40 100644 (file)
@@ -2144,6 +2144,7 @@ static void file_util_delete_full(FileData *source_fd, GList *flist, GtkWidget *
 {
        UtilityData *ud;
        GList *ungrouped = NULL;
+       gchar *message;
 
        if (source_fd)
                flist = g_list_append(flist, file_data_ref(source_fd));
@@ -2176,10 +2177,17 @@ static void file_util_delete_full(FileData *source_fd, GList *flist, GtkWidget *
        ud->parent = parent;
 
        ud->details_func = file_util_details_dialog;
-
+       if(options->file_ops.safe_delete_enable)
+               {
+               message = _("This will move the following files to the Trash bin");
+               }
+       else
+               {
+               message = _("This will permanently delete the following files");
+               }
        ud->messages.title = _("Delete");
        ud->messages.question = _("Delete files?");
-       ud->messages.desc_flist = _("This will delete the following files");
+       ud->messages.desc_flist = message;
        ud->messages.desc_source_fd = "";
        ud->messages.fail = _("File deletion failed");
 
index 2bcf960..7d9ac93 100644 (file)
@@ -28,6 +28,7 @@
 #include "history_list.h"
 #include "layout.h"
 #include "menu.h"
+#include "pixbuf_util.h"
 #include "thumb.h"
 #include "ui_menu.h"
 #include "ui_fileops.h"
@@ -343,6 +344,15 @@ static void vf_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
 {
        ViewFile *vf = data;
 
+       options->file_ops.safe_delete_enable = FALSE;
+       file_util_delete(NULL, vf_pop_menu_file_list(vf), vf->listview);
+}
+
+static void vf_pop_menu_move_to_trash_cb(GtkWidget *widget, gpointer data)
+{
+       ViewFile *vf = data;
+
+       options->file_ops.safe_delete_enable = TRUE;
        file_util_delete(NULL, vf_pop_menu_file_list(vf), vf->listview);
 }
 
@@ -624,8 +634,15 @@ GtkWidget *vf_pop_menu(ViewFile *vf)
                                G_CALLBACK(vf_pop_menu_copy_path_cb), vf);
        menu_item_add_sensitive(menu, _("_Copy path unquoted"), active,
                                G_CALLBACK(vf_pop_menu_copy_path_unquoted_cb), vf);
-       menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, active,
-                                     G_CALLBACK(vf_pop_menu_delete_cb), vf);
+       menu_item_add_divider(menu);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_move_to_trash ? _("Move to Trash...") :
+                                       _("Move to Trash"), PIXBUF_INLINE_ICON_TRASH, active,
+                               G_CALLBACK(vf_pop_menu_move_to_trash_cb), vf);
+       menu_item_add_stock_sensitive(menu,
+                               options->file_ops.confirm_delete ? _("_Delete...") :
+                                       _("_Delete"), GTK_STOCK_DELETE, active,
+                               G_CALLBACK(vf_pop_menu_delete_cb), vf);
        menu_item_add_divider(menu);
 
        menu_item_add_sensitive(menu, _("Enable file _grouping"), active,
index feed769..91c3a49 100644 (file)
@@ -477,11 +477,17 @@ dd.answer div.label { float: left; }
 <a name="Delete"></a><div class="header"><h2 class="section title"><span class="title"><span class="label">11.11.1. </span>Delete</span></h2></div>
 <div class="block list variablelist"><dl class="variablelist">
 <dt class="term dt-first">
-          <span class="guilabel">Confirm file delete</span>
+          <span class="guilabel">Confirm permanent file delete</span>
         </dt>
 <dd>
           <p class="para block block-first">Prompts for confirmation before deleting files.</p>
         </dd>
+<dt class="term">
+          <span class="guilabel">Confirm move file to Trash</span>
+        </dt>
+<dd>
+          <p class="para block block-first">Prompts for confirmation before moving files to the trash bin.</p>
+        </dd>
 <dt class="term">
           <span class="guilabel">
             Enable
@@ -510,7 +516,7 @@ dd.answer div.label { float: left; }
           </p>
         </dd>
 <dt class="term">
-          <span class="guilabel">Safe Delete</span>
+          <span class="guilabel">Use Geeqie trash location</span>
         </dt>
 <dd>
           <p class="para block block-first">Moves deleted files to a temporary folder, for easy retrieval of deleted files. Files in the temporary folder are retained until the maximum size is reached, at which point deleting additional files will result in the removal of the oldest files to reclaim the space needed for the new files.</p>
@@ -525,6 +531,12 @@ dd.answer div.label { float: left; }
             </p>
           </div></div>
         </dd>
+<dt class="term">
+          <span class="guilabel">Use system Trash bin</span>
+        </dt>
+<dd>
+          <p class="para block block-first">Moves deleted files to the system-defined trash bin.</p>
+        </dd>
 <dt class="term">
           <span class="guilabel">Folder</span>
         </dt>
index d36f736..ccba978 100644 (file)
@@ -894,9 +894,18 @@ dd.answer div.label { float: left; }
               </span>
             </td>
 <td class="td-colsep td-rowsep"></td>
-<td class="td-rowsep">Delete selected images.</td>
+<td class="td-rowsep">Move selected images to trash bin.</td>
 </tr>
 <tr class="tr-shade">
+<td class="td-colsep td-rowsep">
+              <span class="code" dir="ltr">
+                Shift + Delete
+              </span>
+            </td>
+<td class="td-colsep td-rowsep"></td>
+<td class="td-rowsep">Permanently delete selected images.</td>
+</tr>
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -906,7 +915,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Close window, Geeqie exits when last window is closed.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -916,19 +925,19 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Quit Geeqie.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td></td>
 <td></td>
 <td></td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-rowsep">
               <span class="emphasis emphasis-bold">Edit Menu</span>
             </td>
 <td class="td-rowsep"></td>
 <td class="td-rowsep"></td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -938,7 +947,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Open Geeqie preferences window.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -948,19 +957,19 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Save metadata</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td></td>
 <td></td>
 <td></td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-rowsep">
               <span class="emphasis emphasis-bold">Select Menu</span>
             </td>
 <td class="td-rowsep"></td>
 <td class="td-rowsep"></td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">1</span>
               ...
@@ -969,7 +978,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle mark 1 ... 6</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -984,7 +993,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Select mark 1 ... 6</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -994,7 +1003,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Select all images.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl + SHIFT +
@@ -1004,7 +1013,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Unselect all images.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl + SHIFT +
@@ -1014,7 +1023,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Invert selection.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Alt +
@@ -1024,33 +1033,33 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle rectangular selection mode in icon view.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">M</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Show marks.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td></td>
 <td></td>
 <td></td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-rowsep">
               <span class="emphasis emphasis-bold">View Menu</span>
             </td>
 <td class="td-rowsep"></td>
 <td class="td-rowsep"></td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">T</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle display of thumbnails when in list view.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1060,7 +1069,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Display file list as detailed list view.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1070,7 +1079,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Display file list as icon view.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1080,21 +1089,21 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle folder display between list and tree views.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">R</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Refresh file list.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">L</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle floating of file display.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1104,7 +1113,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle hiding of file display.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1114,7 +1123,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle EXIF sidebar.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Shift +
@@ -1124,7 +1133,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle Sort Manager sidebar.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1134,35 +1143,35 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle Keywords sidebar.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">V</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle full screen.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">I</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle information overlay.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">S</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Toggle slideshow.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">P</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Pause slideshow.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1172,7 +1181,7 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Slideshow faster.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">
                 Ctrl +
@@ -1182,49 +1191,49 @@ dd.answer div.label { float: left; }
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Slideshow slower.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">E</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Split panes horizontal.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="keycap">U</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Split panes vertical.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="keycap">Y</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Single pane.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">Alt + Right Arrow</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Next split pane.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">Alt + Left Arrow</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Previous split pane.</td>
 </tr>
-<tr class="tr-shade">
+<tr>
 <td class="td-colsep td-rowsep">
               <span class="code" dir="ltr">Alt + Up Arrow</span>
             </td>
 <td class="td-colsep td-rowsep"></td>
 <td class="td-rowsep">Up or previous split pane.</td>
 </tr>
-<tr>
+<tr class="tr-shade">
 <td class="td-colsep">
               <span class="code" dir="ltr">Alt + Down Arrow</span>
             </td>