[gimp] icons, tools: allow newlines in the icon lists.



commit 6e9b137f5026a3dc709621e7ad606491322cca09
Author: Jehan <jehan girinstud io>
Date:   Thu Jan 27 16:18:55 2022 +0100

    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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]