mirror of https://github.com/GNOME/gimp.git
Bug 791934 - gimpressionist contains 2 identical brushes.
paintbrush.pgm and paintbrush01.pgm are binary identical. If they were brushes we ship as data, that would be more annoying because they could be used in scripts or in various other places. But here it looks they are used for gimpressionist plug-in only, which means they are probably not used in some random script. All it takes is probably only to properly migrate gimpressionist presets. Presets using "paintbrush.pgm" will be migrated to use "paintbrush01.pgm" instead.
This commit is contained in:
parent
cf67441782
commit
88f33dc0b3
|
@ -138,7 +138,9 @@ static gboolean user_install_file_copy (GimpUserInstall *install,
|
|||
GRegexEvalCallback update_callback);
|
||||
static gboolean user_install_dir_copy (GimpUserInstall *install,
|
||||
const gchar *source,
|
||||
const gchar *base);
|
||||
const gchar *base,
|
||||
const gchar *update_pattern,
|
||||
GRegexEvalCallback update_callback);
|
||||
|
||||
static gboolean user_install_create_files (GimpUserInstall *install);
|
||||
static gboolean user_install_migrate_files (GimpUserInstall *install);
|
||||
|
@ -617,10 +619,36 @@ user_update_gimprc (const GMatchInfo *matched_value,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#define GIMPRESSIONIST_UPDATE_PATTERN \
|
||||
"selectedbrush=Brushes/paintbrush.pgm"
|
||||
|
||||
static gboolean
|
||||
user_install_dir_copy (GimpUserInstall *install,
|
||||
const gchar *source,
|
||||
const gchar *base)
|
||||
user_update_gimpressionist (const GMatchInfo *matched_value,
|
||||
GString *new_value,
|
||||
gpointer data)
|
||||
{
|
||||
gchar *match = g_match_info_fetch (matched_value, 0);
|
||||
|
||||
/* See bug 791934: both brushes are identical. */
|
||||
if (g_strcmp0 (match, "selectedbrush=Brushes/paintbrush.pgm") == 0)
|
||||
{
|
||||
g_string_append (new_value, "selectedbrush=Brushes/paintbrush01.pgm");
|
||||
}
|
||||
else
|
||||
{
|
||||
g_string_append (new_value, match);
|
||||
}
|
||||
|
||||
g_free (match);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
user_install_dir_copy (GimpUserInstall *install,
|
||||
const gchar *source,
|
||||
const gchar *base,
|
||||
const gchar *update_pattern,
|
||||
GRegexEvalCallback update_callback)
|
||||
{
|
||||
GDir *source_dir = NULL;
|
||||
GDir *dest_dir = NULL;
|
||||
|
@ -658,7 +686,9 @@ user_install_dir_copy (GimpUserInstall *install,
|
|||
g_snprintf (dest, sizeof (dest), "%s%c%s",
|
||||
dirname, G_DIR_SEPARATOR, basename);
|
||||
|
||||
if (! user_install_file_copy (install, name, dest, NULL, NULL))
|
||||
if (! user_install_file_copy (install, name, dest,
|
||||
update_pattern,
|
||||
update_callback))
|
||||
{
|
||||
g_free (name);
|
||||
goto error;
|
||||
|
@ -666,7 +696,8 @@ user_install_dir_copy (GimpUserInstall *install,
|
|||
}
|
||||
else
|
||||
{
|
||||
user_install_dir_copy (install, name, dirname);
|
||||
user_install_dir_copy (install, name, dirname,
|
||||
update_pattern, update_callback);
|
||||
}
|
||||
|
||||
g_free (name);
|
||||
|
@ -805,6 +836,9 @@ user_install_migrate_files (GimpUserInstall *install)
|
|||
}
|
||||
else if (g_file_test (source, G_FILE_TEST_IS_DIR))
|
||||
{
|
||||
const gchar *update_pattern = NULL;
|
||||
GRegexEvalCallback update_callback = NULL;
|
||||
|
||||
/* skip these directories for all old versions */
|
||||
if (strcmp (basename, "tmp") == 0 ||
|
||||
strcmp (basename, "tool-options") == 0 ||
|
||||
|
@ -813,7 +847,13 @@ user_install_migrate_files (GimpUserInstall *install)
|
|||
goto next_file;
|
||||
}
|
||||
|
||||
user_install_dir_copy (install, source, gimp_directory ());
|
||||
if (strcmp (basename, "gimpressionist") == 0)
|
||||
{
|
||||
update_pattern = GIMPRESSIONIST_UPDATE_PATTERN;
|
||||
update_callback = user_update_gimpressionist;
|
||||
}
|
||||
user_install_dir_copy (install, source, gimp_directory (),
|
||||
update_pattern, update_callback);
|
||||
}
|
||||
|
||||
next_file:
|
||||
|
|
Loading…
Reference in New Issue