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).
This commit is contained in:
Jehan 2022-01-27 16:18:55 +01:00
parent 8a5120e021
commit 6e9b137f50
13 changed files with 58 additions and 8 deletions

View File

@ -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

View File

@ -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')

View File

@ -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

View File

@ -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')

View File

@ -1,3 +1,4 @@
folder
gimp-wilber
gimp-wilber-outline

View File

@ -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

View File

@ -4,6 +4,7 @@ format-justify-center
format-justify-fill
format-justify-left
format-justify-right
gimp-char-picker
gimp-dynamics
gimp-histogram

View File

@ -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

View File

@ -1,3 +1,4 @@
folder
gimp-wilber
gimp-wilber-outline

View File

@ -1,4 +1,5 @@
folder
gimp-channel-alpha
gimp-channel-blue
gimp-channel-gray

View File

@ -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

View File

@ -5,7 +5,9 @@ dialog-warning
document-print
media-floppy
media-optical
gtk-select-color
gimp-business-card
gimp-center
gimp-channel

View File

@ -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