Update icons and include dark theme versions
authorColin Clark <colin.clark@cclark.uk>
Mon, 18 Sep 2023 12:41:02 +0000 (13:41 +0100)
committerColin Clark <colin.clark@cclark.uk>
Mon, 18 Sep 2023 12:41:02 +0000 (13:41 +0100)
Use icons from flaticon.com - this gives a consistent look.
The icons used are black on transparent, so a dark theme version can be
created by inverting the color.
The script used to create the dark versions is included.
Credit to flaticon is in Help/About/Licence

75 files changed:
scripts/meson.build
scripts/modify-downloaded-icons.sh [new file with mode: 0755]
src/icons/gq-archive-file.png [deleted file]
src/icons/gq-icon-archive-file-dark.png [new file with mode: 0644]
src/icons/gq-icon-archive-file.png [new file with mode: 0644]
src/icons/gq-icon-broken-dark.png [new file with mode: 0644]
src/icons/gq-icon-broken.png [new file with mode: 0644]
src/icons/gq-icon-collection-dark.png [new file with mode: 0644]
src/icons/gq-icon-collection.png [new file with mode: 0644]
src/icons/gq-icon-draw-rectangle-dark.png [new file with mode: 0644]
src/icons/gq-icon-draw-rectangle.png
src/icons/gq-icon-exif-dark.png [new file with mode: 0644]
src/icons/gq-icon-exif.png
src/icons/gq-icon-exposure-dark.png [new file with mode: 0644]
src/icons/gq-icon-exposure.png
src/icons/gq-icon-float-dark.png [new file with mode: 0644]
src/icons/gq-icon-float.png
src/icons/gq-icon-grayscale-dark.png [new file with mode: 0644]
src/icons/gq-icon-grayscale.png
src/icons/gq-icon-heic-dark.png [new file with mode: 0644]
src/icons/gq-icon-heic.png
src/icons/gq-icon-hidetools-dark.png [new file with mode: 0644]
src/icons/gq-icon-hidetools.png
src/icons/gq-icon-maintenance-dark.png [new file with mode: 0644]
src/icons/gq-icon-maintenance.png
src/icons/gq-icon-marks-dark.png [new file with mode: 0644]
src/icons/gq-icon-marks.png
src/icons/gq-icon-metadata-dark.png [new file with mode: 0644]
src/icons/gq-icon-metadata.png [new file with mode: 0644]
src/icons/gq-icon-move-dark.png [new file with mode: 0644]
src/icons/gq-icon-move.png
src/icons/gq-icon-original-dark.png [new file with mode: 0644]
src/icons/gq-icon-original.png
src/icons/gq-icon-panorama-dark.png [new file with mode: 0644]
src/icons/gq-icon-panorama.png
src/icons/gq-icon-pdf-dark.png [new file with mode: 0644]
src/icons/gq-icon-pdf.png
src/icons/gq-icon-rename-dark.png [new file with mode: 0644]
src/icons/gq-icon-rename.png
src/icons/gq-icon-rotate-180-dark.png [new file with mode: 0644]
src/icons/gq-icon-rotate-180.png
src/icons/gq-icon-select-all-dark.png [new file with mode: 0644]
src/icons/gq-icon-select-all.png
src/icons/gq-icon-select-invert-dark.png [new file with mode: 0644]
src/icons/gq-icon-select-invert.png
src/icons/gq-icon-select-none-dark.png [new file with mode: 0644]
src/icons/gq-icon-select-none.png
src/icons/gq-icon-select-rectangle-dark.png [new file with mode: 0644]
src/icons/gq-icon-select-rectangle.png
src/icons/gq-icon-sort-dark.png [new file with mode: 0644]
src/icons/gq-icon-sort.png
src/icons/gq-icon-split-pane-sync-dark.png [new file with mode: 0644]
src/icons/gq-icon-split-pane-sync.png
src/icons/gq-icon-thumb-dark.png [new file with mode: 0644]
src/icons/gq-icon-thumb.png
src/icons/gq-icon-trash.png [deleted file]
src/icons/gq-icon-unknown-dark.png [new file with mode: 0644]
src/icons/gq-icon-unknown.png [new file with mode: 0644]
src/icons/gq-icon-video-dark.png [new file with mode: 0644]
src/icons/gq-icon-video.png [new file with mode: 0644]
src/icons/gq-icon-zoomfillhor-dark.png [new file with mode: 0644]
src/icons/gq-icon-zoomfillhor.png
src/icons/gq-icon-zoomfillvert-dark.png [new file with mode: 0644]
src/icons/gq-icon-zoomfillvert.png
src/icons/gq-sheet-broken.png [deleted file]
src/icons/gq-sheet-metadata.png [deleted file]
src/icons/gq-sheet-unknown.png [deleted file]
src/icons/gq-sheet-video.png [deleted file]
src/icons/icons.gresource.xml
src/layout-util.cc
src/main.h
src/pixbuf-util.cc
src/pixbuf-util.h
src/preferences.cc
src/ui-bookmark.cc

index 59b34de..305ba36 100644 (file)
@@ -23,6 +23,7 @@ script_sources += files('authors.sh',
 'image-test.sh',
 'keyword_merge.sh',
 'lua-test.sh',
+'modify-downloaded-icons.sh',
 'new-release.sh',
 'template-desktop.sh',
 'translators.sh',
diff --git a/scripts/modify-downloaded-icons.sh b/scripts/modify-downloaded-icons.sh
new file mode 100755 (executable)
index 0000000..f1b7cbc
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/sh
+#**********************************************************************
+# Copyright (C) 2023 - The Geeqie Team
+#
+# Author: Colin Clark
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#**********************************************************************
+
+## @file
+## @brief Convert downloaded icons
+##
+## Rename downloaded icons to Geeqie name
+## Invert colors for dark theme and save with "-dark" filename
+##
+##
+
+
+input_array="
+arrows.png  gq-icon-zoomfillhor https://www.flaticon.com/free-icon/arrows_9847398
+black-and-white.png gq-icon-grayscale https://www.flaticon.com/free-icon/black-and-white_3099713
+bookmark.png gq-icon-marks https://www.flaticon.com/free-icon/bookmark_2099170
+checkbox.png gq-icon-select-invert https://www.flaticon.com/free-icon/checkbox_6948194
+database-management.png gq-icon-maintenance https://www.flaticon.com/free-icon/database-management_9292424
+data-synchronization.png gq-icon-split-pane-sync https://www.flaticon.com/free-icon/data-synchronization_4882652
+double-arrow-vertical-symbol.png  gq-icon-zoomfillvert https://www.flaticon.com/free-icon/double-arrow-vertical-symbol_54668
+edit.png gq-icon-rename https://www.flaticon.com/free-icon/edit_1159633
+error.png  gq-icon-broken https://www.flaticon.com/free-icon/error_3152157
+exif.png gq-icon-exif https://www.flaticon.com/free-icon/exif_6393981
+exposure.png gq-icon-exposure https://www.flaticon.com/free-icon/exposure_2214025
+frame.png gq-icon-select-rectangle https://www.flaticon.com/free-icon/frame_4864813
+heic.png gq-icon-heic https://www.flaticon.com/free-icon/heic_6393991
+move-right.png gq-icon-move https://www.flaticon.com/free-icon/move-right_10515829
+panorama.png gq-icon-panorama https://www.flaticon.com/free-icon/panorama_8207268
+paper-pin.png gq-icon-float https://www.flaticon.com/free-icon/paper-pin_3378283
+paper.png gq-icon-hidetools https://www.flaticon.com/free-icon/paper_11028332
+pdf.png gq-icon-pdf https://www.flaticon.com/free-icon/pdf_201153
+restore-down.png gq-icon-select-none https://www.flaticon.com/free-icon/restore-down_4903563
+rotate.png gq-icon-original https://www.flaticon.com/free-icon/rotate_764623
+select.png  gq-icon-select-all https://www.flaticon.com/free-icon/select_7043937
+thumbnails-1.png gq-icon-collection https://www.flaticon.com/free-icon/thumbnails_204593
+thumbnails.png gq-icon-thumb https://www.flaticon.com/free-icon/thumbnails_204592
+transform.png gq-icon-draw-rectangle https://www.flaticon.com/free-icon/rectangle_3496559
+two-clockwise-circular-rotating-arrows-circle.png gq-icon-rotate-180 https://www.flaticon.com/free-icon/two-clockwise-circular-rotating-arrows-circle_54529
+unknown.png gq-icon-unknown https://www.flaticon.com/free-icon/unknown_9166172
+video.png gq-icon-video https://www.flaticon.com/free-icon/video_10260807
+workflow.png gq-icon-sort https://www.flaticon.com/free-icon/workflow_3748469
+xmp.png gq-icon-metadata https://www.flaticon.com/free-icon/xmp_10260892
+zip.png gq-icon-archive-file https://www.flaticon.com/free-icon/zip_201199
+"
+
+i=0
+for file in $input_array
+do
+       if [ "$i" -eq 0 ]
+       then
+               input="$HOME/Downloads/$file"
+               i=$((i + 1))
+       else
+               if [ "$i" -eq 1 ]
+               then
+                       output="$file"
+                       cp "$input" "./src/icons/$output.png"
+                       convert "$input" -fill '#ffffff' -opaque black "./src/icons/$output-dark.png"
+                       i=$((i + 1))
+               else
+                       i=0
+               fi
+       fi
+done
diff --git a/src/icons/gq-archive-file.png b/src/icons/gq-archive-file.png
deleted file mode 100644 (file)
index 8ee49f4..0000000
Binary files a/src/icons/gq-archive-file.png and /dev/null differ
diff --git a/src/icons/gq-icon-archive-file-dark.png b/src/icons/gq-icon-archive-file-dark.png
new file mode 100644 (file)
index 0000000..e5048f1
Binary files /dev/null and b/src/icons/gq-icon-archive-file-dark.png differ
diff --git a/src/icons/gq-icon-archive-file.png b/src/icons/gq-icon-archive-file.png
new file mode 100644 (file)
index 0000000..e02a549
Binary files /dev/null and b/src/icons/gq-icon-archive-file.png differ
diff --git a/src/icons/gq-icon-broken-dark.png b/src/icons/gq-icon-broken-dark.png
new file mode 100644 (file)
index 0000000..632fba9
Binary files /dev/null and b/src/icons/gq-icon-broken-dark.png differ
diff --git a/src/icons/gq-icon-broken.png b/src/icons/gq-icon-broken.png
new file mode 100644 (file)
index 0000000..aadb8ea
Binary files /dev/null and b/src/icons/gq-icon-broken.png differ
diff --git a/src/icons/gq-icon-collection-dark.png b/src/icons/gq-icon-collection-dark.png
new file mode 100644 (file)
index 0000000..9a134c2
Binary files /dev/null and b/src/icons/gq-icon-collection-dark.png differ
diff --git a/src/icons/gq-icon-collection.png b/src/icons/gq-icon-collection.png
new file mode 100644 (file)
index 0000000..63cf535
Binary files /dev/null and b/src/icons/gq-icon-collection.png differ
diff --git a/src/icons/gq-icon-draw-rectangle-dark.png b/src/icons/gq-icon-draw-rectangle-dark.png
new file mode 100644 (file)
index 0000000..8296b93
Binary files /dev/null and b/src/icons/gq-icon-draw-rectangle-dark.png differ
index d7da8f3..438ae7f 100644 (file)
Binary files a/src/icons/gq-icon-draw-rectangle.png and b/src/icons/gq-icon-draw-rectangle.png differ
diff --git a/src/icons/gq-icon-exif-dark.png b/src/icons/gq-icon-exif-dark.png
new file mode 100644 (file)
index 0000000..0f6ccc4
Binary files /dev/null and b/src/icons/gq-icon-exif-dark.png differ
index 4f4a8dc..82ddfa7 100644 (file)
Binary files a/src/icons/gq-icon-exif.png and b/src/icons/gq-icon-exif.png differ
diff --git a/src/icons/gq-icon-exposure-dark.png b/src/icons/gq-icon-exposure-dark.png
new file mode 100644 (file)
index 0000000..7d810c2
Binary files /dev/null and b/src/icons/gq-icon-exposure-dark.png differ
index 05d55a1..aa724f2 100644 (file)
Binary files a/src/icons/gq-icon-exposure.png and b/src/icons/gq-icon-exposure.png differ
diff --git a/src/icons/gq-icon-float-dark.png b/src/icons/gq-icon-float-dark.png
new file mode 100644 (file)
index 0000000..b9d7cf6
Binary files /dev/null and b/src/icons/gq-icon-float-dark.png differ
index f09f5ea..fed813a 100644 (file)
Binary files a/src/icons/gq-icon-float.png and b/src/icons/gq-icon-float.png differ
diff --git a/src/icons/gq-icon-grayscale-dark.png b/src/icons/gq-icon-grayscale-dark.png
new file mode 100644 (file)
index 0000000..3ad1d59
Binary files /dev/null and b/src/icons/gq-icon-grayscale-dark.png differ
index 1fef4a0..8d87f14 100644 (file)
Binary files a/src/icons/gq-icon-grayscale.png and b/src/icons/gq-icon-grayscale.png differ
diff --git a/src/icons/gq-icon-heic-dark.png b/src/icons/gq-icon-heic-dark.png
new file mode 100644 (file)
index 0000000..1afefed
Binary files /dev/null and b/src/icons/gq-icon-heic-dark.png differ
index c562f7f..609ffce 100644 (file)
Binary files a/src/icons/gq-icon-heic.png and b/src/icons/gq-icon-heic.png differ
diff --git a/src/icons/gq-icon-hidetools-dark.png b/src/icons/gq-icon-hidetools-dark.png
new file mode 100644 (file)
index 0000000..1df92b1
Binary files /dev/null and b/src/icons/gq-icon-hidetools-dark.png differ
index b94c69b..0fd2755 100644 (file)
Binary files a/src/icons/gq-icon-hidetools.png and b/src/icons/gq-icon-hidetools.png differ
diff --git a/src/icons/gq-icon-maintenance-dark.png b/src/icons/gq-icon-maintenance-dark.png
new file mode 100644 (file)
index 0000000..427b9a8
Binary files /dev/null and b/src/icons/gq-icon-maintenance-dark.png differ
index 7ae936d..20881bd 100644 (file)
Binary files a/src/icons/gq-icon-maintenance.png and b/src/icons/gq-icon-maintenance.png differ
diff --git a/src/icons/gq-icon-marks-dark.png b/src/icons/gq-icon-marks-dark.png
new file mode 100644 (file)
index 0000000..aab4fe6
Binary files /dev/null and b/src/icons/gq-icon-marks-dark.png differ
index 57cf239..4472466 100644 (file)
Binary files a/src/icons/gq-icon-marks.png and b/src/icons/gq-icon-marks.png differ
diff --git a/src/icons/gq-icon-metadata-dark.png b/src/icons/gq-icon-metadata-dark.png
new file mode 100644 (file)
index 0000000..b6f41ad
Binary files /dev/null and b/src/icons/gq-icon-metadata-dark.png differ
diff --git a/src/icons/gq-icon-metadata.png b/src/icons/gq-icon-metadata.png
new file mode 100644 (file)
index 0000000..c2a8a7e
Binary files /dev/null and b/src/icons/gq-icon-metadata.png differ
diff --git a/src/icons/gq-icon-move-dark.png b/src/icons/gq-icon-move-dark.png
new file mode 100644 (file)
index 0000000..79f77c3
Binary files /dev/null and b/src/icons/gq-icon-move-dark.png differ
index de4551a..6d3f909 100644 (file)
Binary files a/src/icons/gq-icon-move.png and b/src/icons/gq-icon-move.png differ
diff --git a/src/icons/gq-icon-original-dark.png b/src/icons/gq-icon-original-dark.png
new file mode 100644 (file)
index 0000000..5fafecc
Binary files /dev/null and b/src/icons/gq-icon-original-dark.png differ
index c26abf4..b93a112 100644 (file)
Binary files a/src/icons/gq-icon-original.png and b/src/icons/gq-icon-original.png differ
diff --git a/src/icons/gq-icon-panorama-dark.png b/src/icons/gq-icon-panorama-dark.png
new file mode 100644 (file)
index 0000000..8e092da
Binary files /dev/null and b/src/icons/gq-icon-panorama-dark.png differ
index 4d3c725..6a8353c 100644 (file)
Binary files a/src/icons/gq-icon-panorama.png and b/src/icons/gq-icon-panorama.png differ
diff --git a/src/icons/gq-icon-pdf-dark.png b/src/icons/gq-icon-pdf-dark.png
new file mode 100644 (file)
index 0000000..026eb4c
Binary files /dev/null and b/src/icons/gq-icon-pdf-dark.png differ
index 31fc959..e689a4d 100644 (file)
Binary files a/src/icons/gq-icon-pdf.png and b/src/icons/gq-icon-pdf.png differ
diff --git a/src/icons/gq-icon-rename-dark.png b/src/icons/gq-icon-rename-dark.png
new file mode 100644 (file)
index 0000000..e369a65
Binary files /dev/null and b/src/icons/gq-icon-rename-dark.png differ
index 2c20090..53c3cf6 100644 (file)
Binary files a/src/icons/gq-icon-rename.png and b/src/icons/gq-icon-rename.png differ
diff --git a/src/icons/gq-icon-rotate-180-dark.png b/src/icons/gq-icon-rotate-180-dark.png
new file mode 100644 (file)
index 0000000..2376f6c
Binary files /dev/null and b/src/icons/gq-icon-rotate-180-dark.png differ
index 944ee24..97bafc4 100644 (file)
Binary files a/src/icons/gq-icon-rotate-180.png and b/src/icons/gq-icon-rotate-180.png differ
diff --git a/src/icons/gq-icon-select-all-dark.png b/src/icons/gq-icon-select-all-dark.png
new file mode 100644 (file)
index 0000000..830972d
Binary files /dev/null and b/src/icons/gq-icon-select-all-dark.png differ
index a9aee9e..c140b79 100644 (file)
Binary files a/src/icons/gq-icon-select-all.png and b/src/icons/gq-icon-select-all.png differ
diff --git a/src/icons/gq-icon-select-invert-dark.png b/src/icons/gq-icon-select-invert-dark.png
new file mode 100644 (file)
index 0000000..e05fc32
Binary files /dev/null and b/src/icons/gq-icon-select-invert-dark.png differ
index bc37f04..3a571ef 100644 (file)
Binary files a/src/icons/gq-icon-select-invert.png and b/src/icons/gq-icon-select-invert.png differ
diff --git a/src/icons/gq-icon-select-none-dark.png b/src/icons/gq-icon-select-none-dark.png
new file mode 100644 (file)
index 0000000..acd0af1
Binary files /dev/null and b/src/icons/gq-icon-select-none-dark.png differ
index 14140b3..8a3cfee 100644 (file)
Binary files a/src/icons/gq-icon-select-none.png and b/src/icons/gq-icon-select-none.png differ
diff --git a/src/icons/gq-icon-select-rectangle-dark.png b/src/icons/gq-icon-select-rectangle-dark.png
new file mode 100644 (file)
index 0000000..96d090b
Binary files /dev/null and b/src/icons/gq-icon-select-rectangle-dark.png differ
index e6d51ec..c18c42c 100644 (file)
Binary files a/src/icons/gq-icon-select-rectangle.png and b/src/icons/gq-icon-select-rectangle.png differ
diff --git a/src/icons/gq-icon-sort-dark.png b/src/icons/gq-icon-sort-dark.png
new file mode 100644 (file)
index 0000000..08b27a2
Binary files /dev/null and b/src/icons/gq-icon-sort-dark.png differ
index 20c216d..04cb6c9 100644 (file)
Binary files a/src/icons/gq-icon-sort.png and b/src/icons/gq-icon-sort.png differ
diff --git a/src/icons/gq-icon-split-pane-sync-dark.png b/src/icons/gq-icon-split-pane-sync-dark.png
new file mode 100644 (file)
index 0000000..978a7d4
Binary files /dev/null and b/src/icons/gq-icon-split-pane-sync-dark.png differ
index e9049bc..b55553d 100644 (file)
Binary files a/src/icons/gq-icon-split-pane-sync.png and b/src/icons/gq-icon-split-pane-sync.png differ
diff --git a/src/icons/gq-icon-thumb-dark.png b/src/icons/gq-icon-thumb-dark.png
new file mode 100644 (file)
index 0000000..01057a4
Binary files /dev/null and b/src/icons/gq-icon-thumb-dark.png differ
index 27d6b2e..021527e 100644 (file)
Binary files a/src/icons/gq-icon-thumb.png and b/src/icons/gq-icon-thumb.png differ
diff --git a/src/icons/gq-icon-trash.png b/src/icons/gq-icon-trash.png
deleted file mode 100644 (file)
index 5ef2657..0000000
Binary files a/src/icons/gq-icon-trash.png and /dev/null differ
diff --git a/src/icons/gq-icon-unknown-dark.png b/src/icons/gq-icon-unknown-dark.png
new file mode 100644 (file)
index 0000000..0f04f04
Binary files /dev/null and b/src/icons/gq-icon-unknown-dark.png differ
diff --git a/src/icons/gq-icon-unknown.png b/src/icons/gq-icon-unknown.png
new file mode 100644 (file)
index 0000000..11dc700
Binary files /dev/null and b/src/icons/gq-icon-unknown.png differ
diff --git a/src/icons/gq-icon-video-dark.png b/src/icons/gq-icon-video-dark.png
new file mode 100644 (file)
index 0000000..d00b2cc
Binary files /dev/null and b/src/icons/gq-icon-video-dark.png differ
diff --git a/src/icons/gq-icon-video.png b/src/icons/gq-icon-video.png
new file mode 100644 (file)
index 0000000..47b3e12
Binary files /dev/null and b/src/icons/gq-icon-video.png differ
diff --git a/src/icons/gq-icon-zoomfillhor-dark.png b/src/icons/gq-icon-zoomfillhor-dark.png
new file mode 100644 (file)
index 0000000..8e3b20d
Binary files /dev/null and b/src/icons/gq-icon-zoomfillhor-dark.png differ
index 466f4a8..10a7608 100644 (file)
Binary files a/src/icons/gq-icon-zoomfillhor.png and b/src/icons/gq-icon-zoomfillhor.png differ
diff --git a/src/icons/gq-icon-zoomfillvert-dark.png b/src/icons/gq-icon-zoomfillvert-dark.png
new file mode 100644 (file)
index 0000000..7074c70
Binary files /dev/null and b/src/icons/gq-icon-zoomfillvert-dark.png differ
index 682d80e..c53a58b 100644 (file)
Binary files a/src/icons/gq-icon-zoomfillvert.png and b/src/icons/gq-icon-zoomfillvert.png differ
diff --git a/src/icons/gq-sheet-broken.png b/src/icons/gq-sheet-broken.png
deleted file mode 100644 (file)
index 8bd2bfe..0000000
Binary files a/src/icons/gq-sheet-broken.png and /dev/null differ
diff --git a/src/icons/gq-sheet-metadata.png b/src/icons/gq-sheet-metadata.png
deleted file mode 100644 (file)
index 846b53c..0000000
Binary files a/src/icons/gq-sheet-metadata.png and /dev/null differ
diff --git a/src/icons/gq-sheet-unknown.png b/src/icons/gq-sheet-unknown.png
deleted file mode 100644 (file)
index be51861..0000000
Binary files a/src/icons/gq-sheet-unknown.png and /dev/null differ
diff --git a/src/icons/gq-sheet-video.png b/src/icons/gq-sheet-video.png
deleted file mode 100644 (file)
index 732dcab..0000000
Binary files a/src/icons/gq-sheet-video.png and /dev/null differ
index 5eda519..447eeb3 100644 (file)
 <gresources>
   <gresource prefix="/org/geeqie/icons">
     <file>geeqie-logo.png</file>
-    <file>gq-archive-file.png</file>
-    <file>gq-collection.png</file>
+    <file>gq-icon-archive-file-dark.png</file>
+    <file>gq-icon-archive-file.png</file>
     <file>gq-icon-book.png</file>
+    <file>gq-icon-broken-dark.png</file>
+    <file>gq-icon-broken.png</file>
+    <file>gq-icon-collection-dark.png</file>
+    <file>gq-icon-collection.png</file>
     <file>gq-icon-config.png</file>
+    <file>gq-icon-draw-rectangle-dark.png</file>
     <file>gq-icon-draw-rectangle.png</file>
+    <file>gq-icon-exif-dark.png</file>
     <file>gq-icon-exif.png</file>
+    <file>gq-icon-exposure-dark.png</file>
     <file>gq-icon-exposure.png</file>
+    <file>gq-icon-float-dark.png</file>
     <file>gq-icon-float.png</file>
+    <file>gq-icon-grayscale-dark.png</file>
     <file>gq-icon-grayscale.png</file>
+    <file>gq-icon-heic-dark.png</file>
     <file>gq-icon-heic.png</file>
+    <file>gq-icon-hidetools-dark.png</file>
     <file>gq-icon-hidetools.png</file>
+    <file>gq-icon-maintenance-dark.png</file>
     <file>gq-icon-maintenance.png</file>
+    <file>gq-icon-marks-dark.png</file>
     <file>gq-icon-marks.png</file>
+    <file>gq-icon-metadata-dark.png</file>
+    <file>gq-icon-metadata.png</file>
+    <file>gq-icon-move-dark.png</file>
     <file>gq-icon-move.png</file>
+    <file>gq-icon-original-dark.png</file>
     <file>gq-icon-original.png</file>
+    <file>gq-icon-panorama-dark.png</file>
     <file>gq-icon-panorama.png</file>
+    <file>gq-icon-pdf-dark.png</file>
     <file>gq-icon-pdf.png</file>
+    <file>gq-icon-rename-dark.png</file>
     <file>gq-icon-rename.png</file>
+    <file>gq-icon-rotate-180-dark.png</file>
     <file>gq-icon-rotate-180.png</file>
+    <file>gq-icon-select-all-dark.png</file>
     <file>gq-icon-select-all.png</file>
+    <file>gq-icon-select-invert-dark.png</file>
     <file>gq-icon-select-invert.png</file>
+    <file>gq-icon-select-none-dark.png</file>
     <file>gq-icon-select-none.png</file>
+    <file>gq-icon-select-rectangle-dark.png</file>
     <file>gq-icon-select-rectangle.png</file>
+    <file>gq-icon-sort-dark.png</file>
     <file>gq-icon-sort.png</file>
+    <file>gq-icon-split-pane-sync-dark.png</file>
     <file>gq-icon-split-pane-sync.png</file>
+    <file>gq-icon-thumb-dark.png</file>
     <file>gq-icon-thumb.png</file>
     <file>gq-icon-tools.png</file>
-    <file>gq-icon-trash.png</file>
+    <file>gq-icon-unknown-dark.png</file>
+    <file>gq-icon-unknown.png</file>
+    <file>gq-icon-video-dark.png</file>
+    <file>gq-icon-video.png</file>
     <file>gq-icon-view.png</file>
+    <file>gq-icon-zoomfillhor-dark.png</file>
     <file>gq-icon-zoomfillhor.png</file>
+    <file>gq-icon-zoomfillvert-dark.png</file>
     <file>gq-icon-zoomfillvert.png</file>
+    <file>gq-marker.xpm</file>
     <file>gq-scroller.png</file>
-    <file>gq-sheet-broken.png</file>
-    <file>gq-sheet-metadata.png</file>
-    <file>gq-sheet-unknown.png</file>
-    <file>gq-sheet-video.png</file>
     <file>gqview-icon.png</file>
-    <file>gq-marker.xpm</file>
   </gresource>
 </gresources>
index 97caa3a..f065e8b 100644 (file)
@@ -2549,9 +2549,9 @@ static GtkActionEntry menu_entries[] = {
   { "Copy",            GQ_ICON_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",  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) },
+  { "Delete",  GQ_ICON_USER_TRASH,     N_("Move to Trash..."),         "<control>D",   N_("Move to Trash..."),         CB(layout_menu_move_to_trash_cb) },
+  { "DeleteAlt1",      GQ_ICON_USER_TRASH,N_("Move to Trash..."),      "Delete",               N_("Move to Trash..."),         CB(layout_menu_move_to_trash_key_cb) },
+  { "DeleteAlt2",      GQ_ICON_USER_TRASH,N_("Move to Trash..."),      "KP_Delete",    N_("Move to Trash..."),         CB(layout_menu_move_to_trash_key_cb) },
   { "PermanentDelete", GQ_ICON_DELETE, N_("Delete..."),                        "<shift>Delete",N_("Delete..."),                        CB(layout_menu_delete_cb) }, 
   { "SelectAll",       PIXBUF_INLINE_ICON_SELECT_ALL,                  N_("Select _all"),                      "<control>A",           N_("Select all"),                       CB(layout_menu_select_all_cb) },
   { "SelectNone",      PIXBUF_INLINE_ICON_SELECT_NONE,                 N_("Select _none"),                     "<control><shift>A",    N_("Select none"),                      CB(layout_menu_unselect_all_cb) },
index ccf7a7c..7cfc5c6 100644 (file)
 #define GQ_ICON_REPLACE "edit-find-replace"
 #define GQ_ICON_PRINT "document-print"
 #define GQ_ICON_FILE_FILTER "preview-file"
+#define GQ_ICON_USER_TRASH "user-trash"
 
 #define GQ_ICON_GO_TOP "go-top"
 #define GQ_ICON_GO_BOTTOM "go-bottom"
index 64a8525..979475a 100644 (file)
@@ -104,67 +104,90 @@ struct PixbufInline
 };
 
 static PixbufInline inline_pixbuf_data[] = {
-       { PIXBUF_INLINE_ARCHIVE,        "gq-archive-file.png" },
-       { PIXBUF_INLINE_BROKEN, "gq-sheet-broken.png" },
-       { PIXBUF_INLINE_COLLECTION,     "gq-collection.png" },
-       { PIXBUF_INLINE_ICON,   "gqview-icon.png" },
-       { PIXBUF_INLINE_ICON_180,       "gq-icon-rotate-180.png" },
-       { PIXBUF_INLINE_ICON_BOOK,      "gq-icon-book.png" },
-       { PIXBUF_INLINE_ICON_CONFIG,    "gq-icon-config.png" },
-       { PIXBUF_INLINE_ICON_DRAW_RECTANGLE,    "gq-icon-draw-rectangle.png" },
-       { PIXBUF_INLINE_ICON_EXIF,      "gq-icon-exif.png" },
-       { PIXBUF_INLINE_ICON_EXPOSURE,  "gq-icon-exposure.png" },
-       { PIXBUF_INLINE_ICON_FLOAT,     "gq-icon-float.png" },
-       { PIXBUF_INLINE_ICON_GRAYSCALE, "gq-icon-grayscale.png" },
-       { PIXBUF_INLINE_ICON_HEIF,      "gq-icon-heic.png" },
-       { PIXBUF_INLINE_ICON_HIDETOOLS,         "gq-icon-hidetools.png" },
-       { PIXBUF_INLINE_ICON_MAINTENANCE,       "gq-icon-maintenance.png" },
-       { PIXBUF_INLINE_ICON_MARKS,     "gq-icon-marks.png" },
-       { PIXBUF_INLINE_ICON_MOVE,      "gq-icon-move.png" },
-       { PIXBUF_INLINE_ICON_ORIGINAL,  "gq-icon-original.png" },
-       { PIXBUF_INLINE_ICON_PANORAMA,  "gq-icon-panorama.png" },
-       { PIXBUF_INLINE_ICON_PDF,       "gq-icon-pdf.png" },
-       { PIXBUF_INLINE_ICON_RENAME,    "gq-icon-rename.png" },
-       { PIXBUF_INLINE_ICON_SELECT_ALL,        "gq-icon-select-all.png" },
-       { PIXBUF_INLINE_ICON_SELECT_INVERT,     "gq-icon-select-invert.png" },
-       { PIXBUF_INLINE_ICON_SELECT_NONE,       "gq-icon-select-none.png" },
-       { PIXBUF_INLINE_ICON_SELECT_RECTANGLE,  "gq-icon-select-rectangle.png" },
-       { PIXBUF_INLINE_ICON_SORT,      "gq-icon-sort.png" },
-       { PIXBUF_INLINE_ICON_THUMB,     "gq-icon-thumb.png" },
-       { PIXBUF_INLINE_ICON_TOOLS,             "gq-icon-tools.png" },
-       { PIXBUF_INLINE_ICON_TRASH,     "gq-icon-trash.png" },
-       { PIXBUF_INLINE_ICON_VIEW,      "gq-icon-view.png" },
-       { PIXBUF_INLINE_ICON_ZOOMFILLHOR,       "gq-icon-zoomfillhor.png" },
-       { PIXBUF_INLINE_ICON_ZOOMFILLVERT,      "gq-icon-zoomfillvert.png" },
-       { PIXBUF_INLINE_LOGO,   "geeqie-logo.png" },
-       { PIXBUF_INLINE_METADATA,       "gq-sheet-metadata.png" },
-       { PIXBUF_INLINE_SCROLLER,       "gq-scroller.png" },
-       { PIXBUF_INLINE_SPLIT_PANE_SYNC, "gq-icon-split-pane-sync.png" },
-       { PIXBUF_INLINE_UNKNOWN,        "gq-sheet-unknown.png" },
-       { PIXBUF_INLINE_VIDEO,  "gq-sheet-video.png" },
-       { nullptr, nullptr }
+       {  PIXBUF_INLINE_ARCHIVE,                "gq-icon-archive-file" },
+       {  PIXBUF_INLINE_BROKEN,                 "gq-icon-broken" },
+       {  PIXBUF_INLINE_COLLECTION,             "gq-icon-collection" },
+       {  PIXBUF_INLINE_ICON_180,               "gq-icon-rotate-180" },
+       {  PIXBUF_INLINE_ICON_BOOK,              "gq-icon-book" },
+       {  PIXBUF_INLINE_ICON_CONFIG,            "gq-icon-config" },
+       {  PIXBUF_INLINE_ICON_DRAW_RECTANGLE,    "gq-icon-draw-rectangle" },
+       {  PIXBUF_INLINE_ICON_EXIF,              "gq-icon-exif" },
+       {  PIXBUF_INLINE_ICON_EXPOSURE,          "gq-icon-exposure" },
+       {  PIXBUF_INLINE_ICON_FLOAT,             "gq-icon-float" },
+       {  PIXBUF_INLINE_ICON,                   "gqview-icon" },
+       {  PIXBUF_INLINE_ICON_GRAYSCALE,         "gq-icon-grayscale" },
+       {  PIXBUF_INLINE_ICON_HEIF,              "gq-icon-heic" },
+       {  PIXBUF_INLINE_ICON_HIDETOOLS,         "gq-icon-hidetools" },
+       {  PIXBUF_INLINE_ICON_MAINTENANCE,       "gq-icon-maintenance" },
+       {  PIXBUF_INLINE_ICON_MARKS,             "gq-icon-marks" },
+       {  PIXBUF_INLINE_ICON_MOVE,              "gq-icon-move" },
+       {  PIXBUF_INLINE_ICON_ORIGINAL,          "gq-icon-original" },
+       {  PIXBUF_INLINE_ICON_PANORAMA,          "gq-icon-panorama" },
+       {  PIXBUF_INLINE_ICON_PDF,               "gq-icon-pdf" },
+       {  PIXBUF_INLINE_ICON_RENAME,            "gq-icon-rename" },
+       {  PIXBUF_INLINE_ICON_SELECT_ALL,        "gq-icon-select-all" },
+       {  PIXBUF_INLINE_ICON_SELECT_INVERT,     "gq-icon-select-invert" },
+       {  PIXBUF_INLINE_ICON_SELECT_NONE,       "gq-icon-select-none" },
+       {  PIXBUF_INLINE_ICON_SELECT_RECTANGLE,  "gq-icon-select-rectangle" },
+       {  PIXBUF_INLINE_ICON_SORT,              "gq-icon-sort" },
+       {  PIXBUF_INLINE_ICON_THUMB,             "gq-icon-thumb" },
+       {  PIXBUF_INLINE_ICON_TOOLS,             "gq-icon-tools" },
+       {  PIXBUF_INLINE_ICON_VIEW,              "gq-icon-view" },
+       {  PIXBUF_INLINE_ICON_ZOOMFILLHOR,       "gq-icon-zoomfillhor" },
+       {  PIXBUF_INLINE_ICON_ZOOMFILLVERT,      "gq-icon-zoomfillvert" },
+       {  PIXBUF_INLINE_LOGO,                   "geeqie-logo" },
+       {  PIXBUF_INLINE_METADATA,               "gq-icon-metadata" },
+       {  PIXBUF_INLINE_SCROLLER,               "gq-scroller" },
+       {  PIXBUF_INLINE_SPLIT_PANE_SYNC,        "gq-icon-split-pane-sync" },
+       {  PIXBUF_INLINE_UNKNOWN,                "gq-icon-unknown" },
+       {  PIXBUF_INLINE_VIDEO,                  "gq-icon-video" },
+       {  nullptr,                              nullptr }
 };
 
 GdkPixbuf *pixbuf_inline(const gchar *key)
 {
+       gboolean dark = FALSE;
+       gchar *file_name = nullptr;
+       gchar *path;
+       gchar *theme_name;
+       GdkPixbuf *icon_pixbuf;
        GError *error = nullptr;
        GInputStream *in_stream;
-       GdkPixbuf *icon_pixbuf;
-       gchar *path;
        gint i;
+       GtkSettings *settings;
 
        if (!key) return nullptr;
 
+       settings = gtk_settings_get_default();
+       g_object_get(settings, "gtk-theme-name", &theme_name, nullptr);
+       dark = g_str_has_suffix(theme_name, "dark");
+       g_free(theme_name);
+
        i = 0;
        while (inline_pixbuf_data[i].key)
                {
                if (strcmp(inline_pixbuf_data[i].key, key) == 0)
                        {
-                       path = g_build_filename(GQ_RESOURCE_PATH_ICONS, inline_pixbuf_data[i].data, NULL);
+                       file_name = g_strconcat(inline_pixbuf_data[i].data, dark ? "-dark" : "", ".png", nullptr);
+                       path = g_build_filename(GQ_RESOURCE_PATH_ICONS, file_name, nullptr);
+                       g_free(file_name);
 
                        in_stream = g_resources_open_stream(path, G_RESOURCE_LOOKUP_FLAGS_NONE, &error);
                        g_free(path);
 
+                       if (error)
+                               {
+                               g_error_free(error);
+                               error = nullptr;
+
+                               file_name = g_strconcat(inline_pixbuf_data[i].data, ".png", nullptr);
+                               path = g_build_filename(GQ_RESOURCE_PATH_ICONS, file_name, nullptr);
+                               g_free(file_name);
+
+                               in_stream = g_resources_open_stream(path, G_RESOURCE_LOOKUP_FLAGS_NONE, &error);
+                               g_free(path);
+                               }
+
                        if (error)
                                {
                                log_printf("warning: inline pixbuf error: %s", error->message);
index 54af971..3f66015 100644 (file)
@@ -34,44 +34,43 @@ GdkPixbuf *pixbuf_fallback(FileData *fd, gint requested_width, gint requested_he
 
 gboolean pixbuf_scale_aspect(gint req_w, gint req_h, gint old_w, gint old_h, gint *new_w, gint *new_h);
 
-#define PIXBUF_INLINE_ARCHIVE          "gq-archive-file"
-#define PIXBUF_INLINE_BROKEN           "gq-sheet-broken"
-#define PIXBUF_INLINE_COLLECTION       "gq-collection"
-#define PIXBUF_INLINE_ICON             "gqview-icon"
-#define PIXBUF_INLINE_ICON_180 "gq-icon-rotate-180"
-#define PIXBUF_INLINE_ICON_BOOK                "gq-icon-book"
-#define PIXBUF_INLINE_ICON_CONFIG      "gq-icon-config"
-#define PIXBUF_INLINE_ICON_DRAW_RECTANGLE      "gq-icon-draw-rectangle"
-#define PIXBUF_INLINE_ICON_EXIF                "gq-icon-exif"
-#define PIXBUF_INLINE_ICON_EXPOSURE            "gq-icon-exposure"
-#define PIXBUF_INLINE_ICON_FLOAT       "gq-icon-float"
-#define PIXBUF_INLINE_ICON_GRAYSCALE   "gq-icon-grayscale"
-#define PIXBUF_INLINE_ICON_HEIF                "gq-icon-heic"
-#define PIXBUF_INLINE_ICON_HIDETOOLS   "gq-icon-hidetools"
-#define PIXBUF_INLINE_ICON_MAINTENANCE "gq-icon-maintenance"
-#define PIXBUF_INLINE_ICON_MARKS       "gq-icon-marks"
-#define PIXBUF_INLINE_ICON_MOVE                "gq-icon-move"
-#define PIXBUF_INLINE_ICON_ORIGINAL    "gq-icon-original"
-#define PIXBUF_INLINE_ICON_PANORAMA            "gq-icon-panorama"
-#define PIXBUF_INLINE_ICON_PDF         "gq-icon-pdf"
-#define PIXBUF_INLINE_ICON_RENAME      "gq-icon-rename"
-#define PIXBUF_INLINE_ICON_SELECT_ALL  "gq-icon-select-all"
-#define PIXBUF_INLINE_ICON_SELECT_INVERT       "gq-icon-select-invert"
-#define PIXBUF_INLINE_ICON_SELECT_NONE "gq-icon-select-none"
-#define PIXBUF_INLINE_ICON_SELECT_RECTANGLE    "gq-icon-select-rectangle"
-#define PIXBUF_INLINE_ICON_SORT                "gq-icon-sort"
-#define PIXBUF_INLINE_ICON_THUMB       "gq-icon-thumb"
-#define PIXBUF_INLINE_ICON_TOOLS       "gq-icon-tools"
-#define PIXBUF_INLINE_ICON_TRASH       "gq-icon-trash"
-#define PIXBUF_INLINE_ICON_VIEW                "gq-icon-view"
-#define PIXBUF_INLINE_ICON_ZOOMFILLHOR "gq-icon-zoomfillhor"
-#define PIXBUF_INLINE_ICON_ZOOMFILLVERT        "gq-icon-zoomfillvert"
-#define PIXBUF_INLINE_LOGO             "geeqie-logo"
-#define PIXBUF_INLINE_METADATA         "gq-sheet-metadata"
-#define PIXBUF_INLINE_SCROLLER         "gq-scroller"
-#define PIXBUF_INLINE_SPLIT_PANE_SYNC  "gq-icon-split-pane-sync"
-#define PIXBUF_INLINE_UNKNOWN          "gq-sheet-unknown"
-#define PIXBUF_INLINE_VIDEO                    "gq-sheet-video"
+#define PIXBUF_INLINE_ARCHIVE               "gq-icon-archive-file"
+#define PIXBUF_INLINE_BROKEN                "gq-icon-broken"
+#define PIXBUF_INLINE_COLLECTION            "gq-icon-collection"
+#define PIXBUF_INLINE_ICON_180              "gq-icon-rotate-180"
+#define PIXBUF_INLINE_ICON_BOOK             "gq-icon-book"
+#define PIXBUF_INLINE_ICON_CONFIG           "gq-icon-config"
+#define PIXBUF_INLINE_ICON_DRAW_RECTANGLE   "gq-icon-draw-rectangle"
+#define PIXBUF_INLINE_ICON_EXIF             "gq-icon-exif"
+#define PIXBUF_INLINE_ICON_EXPOSURE         "gq-icon-exposure"
+#define PIXBUF_INLINE_ICON_FLOAT            "gq-icon-float"
+#define PIXBUF_INLINE_ICON                  "gqview-icon"
+#define PIXBUF_INLINE_ICON_GRAYSCALE        "gq-icon-grayscale"
+#define PIXBUF_INLINE_ICON_HEIF             "gq-icon-heic"
+#define PIXBUF_INLINE_ICON_HIDETOOLS        "gq-icon-hidetools"
+#define PIXBUF_INLINE_ICON_MAINTENANCE      "gq-icon-maintenance"
+#define PIXBUF_INLINE_ICON_MARKS            "gq-icon-marks"
+#define PIXBUF_INLINE_ICON_MOVE             "gq-icon-move"
+#define PIXBUF_INLINE_ICON_ORIGINAL         "gq-icon-original"
+#define PIXBUF_INLINE_ICON_PANORAMA         "gq-icon-panorama"
+#define PIXBUF_INLINE_ICON_PDF              "gq-icon-pdf"
+#define PIXBUF_INLINE_ICON_RENAME           "gq-icon-rename"
+#define PIXBUF_INLINE_ICON_SELECT_ALL       "gq-icon-select-all"
+#define PIXBUF_INLINE_ICON_SELECT_INVERT    "gq-icon-select-invert"
+#define PIXBUF_INLINE_ICON_SELECT_NONE      "gq-icon-select-none"
+#define PIXBUF_INLINE_ICON_SELECT_RECTANGLE "gq-icon-select-rectangle"
+#define PIXBUF_INLINE_ICON_SORT             "gq-icon-sort"
+#define PIXBUF_INLINE_ICON_THUMB            "gq-icon-thumb"
+#define PIXBUF_INLINE_ICON_TOOLS            "gq-icon-tools"
+#define PIXBUF_INLINE_ICON_VIEW             "gq-icon-view"
+#define PIXBUF_INLINE_ICON_ZOOMFILLHOR      "gq-icon-zoomfillhor"
+#define PIXBUF_INLINE_ICON_ZOOMFILLVERT     "gq-icon-zoomfillvert"
+#define PIXBUF_INLINE_LOGO                  "geeqie-logo"
+#define PIXBUF_INLINE_METADATA              "gq-icon-metadata"
+#define PIXBUF_INLINE_SCROLLER              "gq-scroller"
+#define PIXBUF_INLINE_SPLIT_PANE_SYNC       "gq-icon-split-pane-sync"
+#define PIXBUF_INLINE_UNKNOWN               "gq-icon-unknown"
+#define PIXBUF_INLINE_VIDEO                 "gq-icon-video"
 
 GdkPixbuf *pixbuf_copy_rotate_90(GdkPixbuf *src, gboolean counter_clockwise);
 GdkPixbuf *pixbuf_copy_mirror(GdkPixbuf *src, gboolean mirror, gboolean flip);
index bdc7040..d89a8d6 100644 (file)
@@ -4097,6 +4097,8 @@ void show_about_window(LayoutWindow *lw)
                }
        g_free(timezone_path);
 
+       copyright = g_string_append(copyright, "\n\nSome icons by https://www.flaticon.com");
+
        in_stream_authors = g_resources_open_stream(GQ_RESOURCE_PATH_CREDITS "/authors", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
 
        data_stream = g_data_input_stream_new(in_stream_authors);
index 30b7c9d..abeaabd 100644 (file)
@@ -752,7 +752,7 @@ static void bookmark_dnd_get_data(GtkWidget *, GdkDragContext *,
 
                        if (strstr(real_path, get_collections_dir()) && isfile(path))
                                {
-                               buf = bookmark_string(filename_from_path(path), path, "gq-collection");
+                               buf = bookmark_string(filename_from_path(path), path, "gq-icon-collection");
                                }
                        else if (isfile(path))
                                {
@@ -897,7 +897,7 @@ void bookmark_list_add(GtkWidget *list, const gchar *name, const gchar *path)
 
        if (strstr(real_path, get_collections_dir()) && isfile(path))
                {
-               buf.reset(bookmark_string(name, path, "gq-collection"));
+               buf.reset(bookmark_string(name, path, "gq-icon-collection"));
                }
        else
                {