app, icons, libgimpwidgets: merge Color and Symbolic icon themes into one.
The merged icon theme is simply named "Default" and contains a color and symbolic variant for all icons. While in 2.10, it made sense to have both icon themes because a theme had no concept of a "symbolic" variant back then, icon themes in 3.0 have this concept and we support this in GIMP through the "Use symbolic icons if available" option in Preferences. Until now, it was confusing to have both themes + this option, even more as you could use the Color icons with the "Use symbolic icons" option, which meant that if some icons were missing, you could end up with a mix of color and symbolic icons (and oppositely using the Symbolic theme with the option unchecked). The new state is much simpler and less confusing. Just 1 icon theme with both color and symbolic variants (the latter being used by default). Note that the identical meson.build in each size subfolder is still mandatory because of the inability of meson (still!) to generate files with custom_target() in a subfolder as output.
|
@ -25,7 +25,7 @@
|
|||
|
||||
|
||||
#define GIMP_CONFIG_DEFAULT_THEME "Default"
|
||||
#define GIMP_CONFIG_DEFAULT_ICON_THEME "Symbolic"
|
||||
#define GIMP_CONFIG_DEFAULT_ICON_THEME "Default"
|
||||
|
||||
|
||||
#define GIMP_TYPE_GUI_CONFIG (gimp_gui_config_get_type ())
|
||||
|
|
|
@ -40,16 +40,16 @@
|
|||
#include "gimp-intl.h"
|
||||
|
||||
|
||||
static void icons_apply_theme (Gimp *gimp,
|
||||
const gchar *icon_theme_name);
|
||||
static void icons_list_icons_foreach (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data);
|
||||
static gint icons_name_compare (const void *p1,
|
||||
const void *p2);
|
||||
static void icons_theme_change_notify (GimpGuiConfig *config,
|
||||
GParamSpec *pspec,
|
||||
Gimp *gimp);
|
||||
static gboolean icons_apply_theme (Gimp *gimp,
|
||||
const gchar *icon_theme_name);
|
||||
static void icons_list_icons_foreach (gpointer key,
|
||||
gpointer value,
|
||||
gpointer data);
|
||||
static gint icons_name_compare (const void *p1,
|
||||
const void *p2);
|
||||
static void icons_theme_change_notify (GimpGuiConfig *config,
|
||||
GParamSpec *pspec,
|
||||
Gimp *gimp);
|
||||
|
||||
|
||||
static GHashTable *icon_themes_hash = NULL;
|
||||
|
@ -207,11 +207,13 @@ icon_themes_get_theme_dir (Gimp *gimp,
|
|||
return g_hash_table_lookup (icon_themes_hash, icon_theme_name);
|
||||
}
|
||||
|
||||
static void
|
||||
static gboolean
|
||||
icons_apply_theme (Gimp *gimp,
|
||||
const gchar *icon_theme_name)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_GIMP (gimp));
|
||||
gboolean applied;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), FALSE);
|
||||
|
||||
if (! icon_theme_name)
|
||||
icon_theme_name = GIMP_CONFIG_DEFAULT_ICON_THEME;
|
||||
|
@ -228,15 +230,17 @@ icons_apply_theme (Gimp *gimp,
|
|||
"icons", icon_theme_name, NULL);
|
||||
file = g_file_new_for_path (path);
|
||||
|
||||
gimp_icons_set_icon_theme (file);
|
||||
applied = gimp_icons_set_icon_theme (file);
|
||||
|
||||
g_object_unref (file);
|
||||
g_free (path);
|
||||
}
|
||||
else
|
||||
{
|
||||
gimp_icons_set_icon_theme (icon_themes_get_theme_dir (gimp, icon_theme_name));
|
||||
applied = gimp_icons_set_icon_theme (icon_themes_get_theme_dir (gimp, icon_theme_name));
|
||||
}
|
||||
|
||||
return applied;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -263,5 +267,10 @@ icons_theme_change_notify (GimpGuiConfig *config,
|
|||
GParamSpec *pspec,
|
||||
Gimp *gimp)
|
||||
{
|
||||
icons_apply_theme (gimp, config->icon_theme);
|
||||
if (! icons_apply_theme (gimp, config->icon_theme))
|
||||
{
|
||||
g_return_if_fail (g_strcmp0 (config->icon_theme, GIMP_CONFIG_DEFAULT_ICON_THEME) != 0);
|
||||
|
||||
g_object_set (config, "icon-theme", GIMP_CONFIG_DEFAULT_ICON_THEME, NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
This work is licensed under the Creative Commons Attribution-ShareAlike
|
||||
4.0 International License. To view a copy of this license, visit
|
||||
http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
|
||||
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
||||
|
||||
This icon theme is more of an original work with inspiration from other
|
||||
FLOSS themes.
|
||||
|
||||
When attributing the artwork, "GIMP team" is enough.
|
||||
Please link to https://www.gimp.org/ where available.
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 198 B After Width: | Height: | Size: 198 B |
|
@ -19,6 +19,7 @@ if have_vector_icons
|
|||
)
|
||||
else
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
|
@ -37,5 +38,19 @@ else
|
|||
elif icon == 'gimp-wilber-eek'
|
||||
icon_wilber_eek = icon_tgt
|
||||
endif
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
||||
endif
|
|
@ -0,0 +1,31 @@
|
|||
icons_dir = size + 'x' + size
|
||||
|
||||
foreach icon : source_icons
|
||||
# Install the color variant.
|
||||
icon_name = icon + '.png'
|
||||
input_path = '../scalable/' + icon + '.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
colorsvg2png, '@INPUT@', '@OUTPUT@', size,
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
|
||||
# Install the symbolic variant.
|
||||
icon_name = icon + '-symbolic.symbolic.png'
|
||||
input_path = '../scalable/' + icon + '-symbolic.svg'
|
||||
|
||||
custom_target(icon_name,
|
||||
input : [ input_path ],
|
||||
output: [ icon_name ],
|
||||
command: [
|
||||
gtk_encode_symbolic_svg, '-o', '@OUTDIR@', '@INPUT@', icons_dir
|
||||
],
|
||||
install: true,
|
||||
install_dir: gimpiconsdir / theme / icons_dir / 'apps',
|
||||
)
|
||||
endforeach
|
|
@ -0,0 +1,26 @@
|
|||
A major part of the Symbolic variant icons are a derived work from the
|
||||
art-libre-symbolic theme made by the GNOME design team, taken in its 2015 form
|
||||
and modified since (including new icons, modified ones, possibly removed ones):
|
||||
https://github.com/gnome-design-team/gnome-icons/blob/master/art-libre-symbolic/src/art-libre.svg
|
||||
All icons (modified or not) taken from the art-libre-symbolic theme are licensed
|
||||
under the Creative Commons Attribution-Share Alike 3.0 United States License.
|
||||
|
||||
A few more Symbolic icons are taken (e.g. gimp-lock) or derived (gimp-lock-*)
|
||||
from the Adwaita icon theme as Creative Commons Attribution-Share Alike 3.0
|
||||
United States License as well.
|
||||
|
||||
The Color icons are more of an original work with inspiration from other FLOSS
|
||||
themes. These icons, as well as all new icons (both in Symbolic or Color
|
||||
variants) are licensed under the Creative Commons Attribution-ShareAlike 4.0
|
||||
International License.
|
||||
|
||||
To view a copy of these licenses, visit either:
|
||||
http://creativecommons.org/licenses/by-sa/3.0/ or
|
||||
http://creativecommons.org/licenses/by-sa/4.0/ respectively or send a letter to
|
||||
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
||||
|
||||
When attributing the artwork, "GIMP team" is enough for icons which were fully
|
||||
created for GIMP. For icons taken and modified from the GNOME design team,
|
||||
attribute them to "GNOME Project" and "GIMP team".
|
||||
|
||||
Please link to https://www.gimp.org/ where available.
|
Before Width: | Height: | Size: 3.4 MiB After Width: | Height: | Size: 3.4 MiB |
|
@ -2,7 +2,14 @@ if have_vector_icons
|
|||
# Only process the 64x64 icons for the 2 resource icons.
|
||||
subdir('64')
|
||||
else
|
||||
gtk_encode_symbolic_svg = find_program('gtk-encode-symbolic-svg', native: true)
|
||||
foreach size, source_icons : build_icons
|
||||
# Note: I originally wanted to implement it here in a loop but
|
||||
# custom_target() doesn't accept an output path with a folder! So I
|
||||
# end up creating as many empty directories as generated sizes and
|
||||
# copying the same meson.build everywhere (which is really stupid,
|
||||
# let's admit it). Only the 64x64 size has a slightly different
|
||||
# meson.build as it also installs some non-symbolic images.
|
||||
subdir(size)
|
||||
endforeach
|
||||
endif
|
||||
|
@ -17,32 +24,39 @@ foreach install : install_icons
|
|||
inputs = install['files']
|
||||
outdir = install['outdir']
|
||||
indir = install['indir']
|
||||
suffix = install['suffix']
|
||||
|
||||
py_cmd = 'print(",".join(["@0@/" + line.strip() + "@1@" for line in open("@2@") if line.strip() != "" and line.strip()[0] != "#"]))'
|
||||
dup_icons = []
|
||||
foreach input : inputs
|
||||
input = '../icon-lists/@0@.list'.format(input)
|
||||
cmd = run_command(python, '-c',
|
||||
py_cmd.format(indir, suffix, input),
|
||||
check: true)
|
||||
dup_icons += cmd.stdout().strip().split(',')
|
||||
endforeach
|
||||
foreach icon : dup_icons
|
||||
if not icons.contains(icon)
|
||||
# remove duplicates.
|
||||
icons += [icon]
|
||||
|
||||
foreach suffix : install['suffixes']
|
||||
foreach input : inputs
|
||||
input = '../icon-lists/@0@.list'.format(input)
|
||||
cmd = run_command(python, '-c',
|
||||
py_cmd.format(indir, suffix, input),
|
||||
check: true)
|
||||
dup_icons += cmd.stdout().strip().split(',')
|
||||
endforeach
|
||||
foreach icon : dup_icons
|
||||
if not icons.contains(icon)
|
||||
# remove duplicates.
|
||||
icons += [icon]
|
||||
endif
|
||||
endforeach
|
||||
|
||||
install_data(icons, install_dir: gimpiconsdir / theme / outdir / 'apps')
|
||||
|
||||
wilber_eek = '@0@/gimp-wilber-eek@1@'.format(indir, suffix)
|
||||
if wilber_eek in icons
|
||||
# Note: since this is just a copy of gimp-wilber-week, we could just do a
|
||||
# symlink with install_symlink(), but this is only available in meson 0.61.0
|
||||
# and looking at its code, it would apparently fail if symlinks are not
|
||||
# available in the target OS (instead of silently and intelligently falling
|
||||
# back to doing a copy).
|
||||
install_data(wilber_eek,
|
||||
rename: 'image-missing@0@'.format(suffix),
|
||||
install_dir: gimpiconsdir / theme / outdir / 'apps')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
install_data(icons, install_dir: gimpiconsdir / theme / outdir / 'apps')
|
||||
|
||||
wilber_eek = '@0@/gimp-wilber-eek@1@'.format(indir, suffix)
|
||||
if wilber_eek in icons
|
||||
install_data(wilber_eek,
|
||||
rename: 'image-missing@0@'.format(suffix),
|
||||
install_dir: gimpiconsdir / theme / outdir / 'apps')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
icons_core = [ '64/dialog-question.png', ]
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |