From 6e9b137f5026a3dc709621e7ad606491322cca09 Mon Sep 17 00:00:00 2001 From: Jehan Date: Thu, 27 Jan 2022 16:18:55 +0100 Subject: [PATCH] icons, tools: allow newlines in the icon lists. This is nicer for icon organization, allowing to group them by categories (Freedesktop, GTK and GIMP namespace icons). --- icons/Color/icon-list.mk | 12 ++++++++++++ icons/Color/meson.build | 2 +- icons/Symbolic/icon-list.mk | 12 ++++++++++++ icons/Symbolic/meson.build | 6 +++--- icons/icon-lists/bitmap_128.list | 1 + icons/icon-lists/bitmap_16.list | 2 ++ icons/icon-lists/bitmap_22.list | 1 + icons/icon-lists/bitmap_24.list | 2 ++ icons/icon-lists/bitmap_256.list | 1 + icons/icon-lists/bitmap_48.list | 1 + icons/icon-lists/scalable.list | 2 ++ icons/icon-lists/vector_24.list | 2 ++ tools/generate-icon-makefiles.py | 22 ++++++++++++++++++---- 13 files changed, 58 insertions(+), 8 deletions(-) diff --git a/icons/Color/icon-list.mk b/icons/Color/icon-list.mk index 94cb8659d1..4c6d396688 100644 --- a/icons/Color/icon-list.mk +++ b/icons/Color/icon-list.mk @@ -68,6 +68,7 @@ scalable_images = \ scalable/zoom-in.svg \ scalable/zoom-original.svg \ scalable/zoom-out.svg \ + \ scalable/gtk-cancel.svg \ scalable/gtk-edit.svg \ scalable/gtk-no.svg \ @@ -75,6 +76,7 @@ scalable_images = \ scalable/gtk-select-color.svg \ scalable/gtk-select-font.svg \ scalable/gtk-yes.svg \ + \ scalable/gimp-anchor.svg \ scalable/gimp-attach.svg \ scalable/gimp-business-card.svg \ @@ -369,7 +371,9 @@ vector24_images = \ 24/document-print.svg \ 24/media-floppy.svg \ 24/media-optical.svg \ + \ 24/gtk-select-color.svg \ + \ 24/gimp-business-card.svg \ 24/gimp-center.svg \ 24/gimp-channel.svg \ @@ -607,6 +611,7 @@ icons16_images = \ 16/zoom-in.png \ 16/zoom-original.png \ 16/zoom-out.png \ + \ 16/gtk-cancel.png \ 16/gtk-edit.png \ 16/gtk-no.png \ @@ -614,6 +619,7 @@ icons16_images = \ 16/gtk-select-color.png \ 16/gtk-select-font.png \ 16/gtk-yes.png \ + \ 16/gimp-anchor.png \ 16/gimp-business-card.png \ 16/gimp-cap-butt.png \ @@ -846,6 +852,7 @@ icons22_images = \ 22/format-justify-fill.png \ 22/format-justify-left.png \ 22/format-justify-right.png \ + \ 22/gimp-char-picker.png \ 22/gimp-dynamics.png \ 22/gimp-histogram.png \ @@ -908,7 +915,9 @@ icons24_images = \ 24/format-text-direction-rtl.png \ 24/media-floppy.png \ 24/media-optical.png \ + \ 24/gtk-select-color.png \ + \ 24/gimp-attach.png \ 24/gimp-business-card.png \ 24/gimp-center.png \ @@ -1062,6 +1071,7 @@ icons32_images = \ icons48_images = \ 48/folder.png \ + \ 48/gimp-channel-alpha.png \ 48/gimp-channel-blue.png \ 48/gimp-channel-gray.png \ @@ -1136,6 +1146,7 @@ icons96_images = \ icons128_images = \ 128/folder.png \ + \ 128/gimp-wilber.png \ 128/gimp-wilber-outline.png @@ -1145,6 +1156,7 @@ icons192_images = \ icons256_images = \ 256/folder.png \ + \ 256/gimp-wilber.png \ 256/gimp-wilber-outline.png diff --git a/icons/Color/meson.build b/icons/Color/meson.build index defc9be77d..e2dcdf1ba7 100644 --- a/icons/Color/meson.build +++ b/icons/Color/meson.build @@ -53,7 +53,7 @@ foreach source, out : source_icons icon_list = '../icon-lists/@0@.list'.format(source) cmd = run_command('python3', '-c', - 'print(",".join(["@0@/" + line.strip() + "@1@" for line in open("@2@")]))'.format(indir, suffix, icon_list), + 'print(",".join(["@0@/" + line.strip() + "@1@" for line in open("@2@") if line.strip() != ""]))'.format(indir, suffix, icon_list), check: true) source_icons = cmd.stdout().strip().split(',') install_data(source_icons, install_dir: gimpiconsdir / theme / outdir / 'apps') diff --git a/icons/Symbolic/icon-list.mk b/icons/Symbolic/icon-list.mk index 24326a7a9a..d302c21030 100644 --- a/icons/Symbolic/icon-list.mk +++ b/icons/Symbolic/icon-list.mk @@ -68,6 +68,7 @@ scalable_images = \ scalable/zoom-in-symbolic.svg \ scalable/zoom-original-symbolic.svg \ scalable/zoom-out-symbolic.svg \ + \ scalable/gtk-cancel-symbolic.svg \ scalable/gtk-edit-symbolic.svg \ scalable/gtk-no-symbolic.svg \ @@ -75,6 +76,7 @@ scalable_images = \ scalable/gtk-select-color-symbolic.svg \ scalable/gtk-select-font-symbolic.svg \ scalable/gtk-yes-symbolic.svg \ + \ scalable/gimp-anchor-symbolic.svg \ scalable/gimp-attach-symbolic.svg \ scalable/gimp-business-card-symbolic.svg \ @@ -369,7 +371,9 @@ vector24_images = \ 24/document-print-symbolic.svg \ 24/media-floppy-symbolic.svg \ 24/media-optical-symbolic.svg \ + \ 24/gtk-select-color-symbolic.svg \ + \ 24/gimp-business-card-symbolic.svg \ 24/gimp-center-symbolic.svg \ 24/gimp-channel-symbolic.svg \ @@ -607,6 +611,7 @@ icons16_images = \ 16/zoom-in-symbolic.symbolic.png \ 16/zoom-original-symbolic.symbolic.png \ 16/zoom-out-symbolic.symbolic.png \ + \ 16/gtk-cancel-symbolic.symbolic.png \ 16/gtk-edit-symbolic.symbolic.png \ 16/gtk-no-symbolic.symbolic.png \ @@ -614,6 +619,7 @@ icons16_images = \ 16/gtk-select-color-symbolic.symbolic.png \ 16/gtk-select-font-symbolic.symbolic.png \ 16/gtk-yes-symbolic.symbolic.png \ + \ 16/gimp-anchor-symbolic.symbolic.png \ 16/gimp-business-card-symbolic.symbolic.png \ 16/gimp-cap-butt-symbolic.symbolic.png \ @@ -846,6 +852,7 @@ icons22_images = \ 22/format-justify-fill-symbolic.symbolic.png \ 22/format-justify-left-symbolic.symbolic.png \ 22/format-justify-right-symbolic.symbolic.png \ + \ 22/gimp-char-picker-symbolic.symbolic.png \ 22/gimp-dynamics-symbolic.symbolic.png \ 22/gimp-histogram-symbolic.symbolic.png \ @@ -908,7 +915,9 @@ icons24_images = \ 24/format-text-direction-rtl-symbolic.symbolic.png \ 24/media-floppy-symbolic.symbolic.png \ 24/media-optical-symbolic.symbolic.png \ + \ 24/gtk-select-color-symbolic.symbolic.png \ + \ 24/gimp-attach-symbolic.symbolic.png \ 24/gimp-business-card-symbolic.symbolic.png \ 24/gimp-center-symbolic.symbolic.png \ @@ -1062,6 +1071,7 @@ icons32_images = \ icons48_images = \ 48/folder-symbolic.symbolic.png \ + \ 48/gimp-channel-alpha-symbolic.symbolic.png \ 48/gimp-channel-blue-symbolic.symbolic.png \ 48/gimp-channel-gray-symbolic.symbolic.png \ @@ -1136,6 +1146,7 @@ icons96_images = \ icons128_images = \ 128/folder-symbolic.symbolic.png \ + \ 128/gimp-wilber-symbolic.symbolic.png \ 128/gimp-wilber-outline-symbolic.symbolic.png @@ -1145,6 +1156,7 @@ icons192_images = \ icons256_images = \ 256/folder-symbolic.symbolic.png \ + \ 256/gimp-wilber-symbolic.symbolic.png \ 256/gimp-wilber-outline-symbolic.symbolic.png diff --git a/icons/Symbolic/meson.build b/icons/Symbolic/meson.build index 5bdc4f0b48..bec1989c52 100644 --- a/icons/Symbolic/meson.build +++ b/icons/Symbolic/meson.build @@ -15,14 +15,14 @@ else foreach size : sizes icon_list = '../icon-lists/bitmap_@0@.list'.format(size) cmd = run_command('python3', '-c', - 'print(",".join([line.strip() for line in open("@0@")]))'.format(icon_list), + 'print(",".join([line.strip() for line in open("@0@") if line.strip() != ""]))'.format(icon_list), check: true) source_icons = cmd.stdout().strip().split(',') if size == '64' icon_list = '../icon-lists/bitmap_64-system.list' cmd = run_command('python3', '-c', - 'print(",".join([line.strip() for line in open("@0@")]))'.format(icon_list), + 'print(",".join([line.strip() for line in open("@0@") if line.strip() != ""]))'.format(icon_list), check: true) source_icons += cmd.stdout().strip().split(',') endif @@ -53,7 +53,7 @@ foreach source, out : source_icons icon_list = '../icon-lists/@0@.list'.format(source) cmd = run_command('python3', '-c', - 'print(",".join(["@0@/" + line.strip() + "@1@" for line in open("@2@")]))'.format(indir, suffix, icon_list), + 'print(",".join(["@0@/" + line.strip() + "@1@" for line in open("@2@") if line.strip() != ""]))'.format(indir, suffix, icon_list), check: true) source_icons = cmd.stdout().strip().split(',') install_data(source_icons, install_dir: gimpiconsdir / theme / outdir / 'apps') diff --git a/icons/icon-lists/bitmap_128.list b/icons/icon-lists/bitmap_128.list index 55459fe635..0f6dbdcb44 100644 --- a/icons/icon-lists/bitmap_128.list +++ b/icons/icon-lists/bitmap_128.list @@ -1,3 +1,4 @@ folder + gimp-wilber gimp-wilber-outline diff --git a/icons/icon-lists/bitmap_16.list b/icons/icon-lists/bitmap_16.list index 67576d9c59..b342d29ae2 100644 --- a/icons/icon-lists/bitmap_16.list +++ b/icons/icon-lists/bitmap_16.list @@ -52,6 +52,7 @@ zoom-fit-best zoom-in zoom-original zoom-out + gtk-cancel gtk-edit gtk-no @@ -59,6 +60,7 @@ gtk-ok gtk-select-color gtk-select-font gtk-yes + gimp-anchor gimp-business-card gimp-cap-butt diff --git a/icons/icon-lists/bitmap_22.list b/icons/icon-lists/bitmap_22.list index b06b8e5803..c04dd2bcd1 100644 --- a/icons/icon-lists/bitmap_22.list +++ b/icons/icon-lists/bitmap_22.list @@ -4,6 +4,7 @@ format-justify-center format-justify-fill format-justify-left format-justify-right + gimp-char-picker gimp-dynamics gimp-histogram diff --git a/icons/icon-lists/bitmap_24.list b/icons/icon-lists/bitmap_24.list index 9470775a1e..dce1b01e89 100644 --- a/icons/icon-lists/bitmap_24.list +++ b/icons/icon-lists/bitmap_24.list @@ -7,7 +7,9 @@ format-text-direction-ltr format-text-direction-rtl media-floppy media-optical + gtk-select-color + gimp-attach gimp-business-card gimp-center diff --git a/icons/icon-lists/bitmap_256.list b/icons/icon-lists/bitmap_256.list index 55459fe635..0f6dbdcb44 100644 --- a/icons/icon-lists/bitmap_256.list +++ b/icons/icon-lists/bitmap_256.list @@ -1,3 +1,4 @@ folder + gimp-wilber gimp-wilber-outline diff --git a/icons/icon-lists/bitmap_48.list b/icons/icon-lists/bitmap_48.list index 5e9a61c059..dae04897ec 100644 --- a/icons/icon-lists/bitmap_48.list +++ b/icons/icon-lists/bitmap_48.list @@ -1,4 +1,5 @@ folder + gimp-channel-alpha gimp-channel-blue gimp-channel-gray diff --git a/icons/icon-lists/scalable.list b/icons/icon-lists/scalable.list index cdfaa01096..ae2d38cdc9 100644 --- a/icons/icon-lists/scalable.list +++ b/icons/icon-lists/scalable.list @@ -59,6 +59,7 @@ zoom-fit-best zoom-in zoom-original zoom-out + gtk-cancel gtk-edit gtk-no @@ -66,6 +67,7 @@ gtk-ok gtk-select-color gtk-select-font gtk-yes + gimp-anchor gimp-attach gimp-business-card diff --git a/icons/icon-lists/vector_24.list b/icons/icon-lists/vector_24.list index 145cb9f248..13bea1cd8d 100644 --- a/icons/icon-lists/vector_24.list +++ b/icons/icon-lists/vector_24.list @@ -5,7 +5,9 @@ dialog-warning document-print media-floppy media-optical + gtk-select-color + gimp-business-card gimp-center gimp-channel diff --git a/tools/generate-icon-makefiles.py b/tools/generate-icon-makefiles.py index 7f5be9f493..344082b0be 100755 --- a/tools/generate-icon-makefiles.py +++ b/tools/generate-icon-makefiles.py @@ -37,18 +37,32 @@ def print_icons(indir, filenames, max_len, prefix, suffix, outfile, endlist=True icon_list = os.path.join(indir, filename) with open(icon_list, mode='r') as f: icons += [line.strip() for line in f] + # Strip empty lines in extremities. + while icons[-1] == '': + icons.pop() + while icons[0] == '': + icons.pop(0) if max_len is None: max_len = len(max(icons, key=len)) + len(prefix + suffix) + prev_empty = False + # Using tabs, displayed as 8 chars in our coding style. Computing # needed tabs for proper alignment. needed_tabs = int(max_len / 8) + (1 if max_len % 8 != 0 else 0) for icon in icons[:-1]: - icon_path = prefix + icon + suffix - tab_mult = needed_tabs - int(len(icon_path) / 8) + 1 - icon_path = "\t{}{}\\".format(icon_path, "\t" * tab_mult) - print(icon_path, file=outfile) + if icon == '': + # Only keep one empty line. + if not prev_empty: + print("\t\\", file=outfile) + prev_empty = True + else: + icon_path = prefix + icon + suffix + tab_mult = needed_tabs - int(len(icon_path) / 8) + 1 + icon_path = "\t{}{}\\".format(icon_path, "\t" * tab_mult) + print(icon_path, file=outfile) + prev_empty = False else: if endlist: icon_path = "\t{}".format(prefix) + icons[-1] + suffix