mirror of https://github.com/GNOME/gimp.git
also apply the menu mapping on scripts that use script-fu-menu-register to
2008-09-19 Sven Neumann <sven@gimp.org> * plug-ins/script-fu/script-fu-scripts.c: also apply the menu mapping on scripts that use script-fu-menu-register to add themselves to the menus. svn path=/trunk/; revision=27015
This commit is contained in:
parent
d80d1fabe9
commit
a2b283645a
|
@ -1,3 +1,9 @@
|
||||||
|
2008-09-19 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* plug-ins/script-fu/script-fu-scripts.c: also apply the menu
|
||||||
|
mapping on scripts that use script-fu-menu-register to add
|
||||||
|
themselves to the menus.
|
||||||
|
|
||||||
2008-09-19 Michael Natterer <mitch@gimp.org>
|
2008-09-19 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
* plug-ins/script-fu/scheme-wrapper.c: move variables to local
|
* plug-ins/script-fu/scheme-wrapper.c: move variables to local
|
||||||
|
|
|
@ -73,7 +73,7 @@ static void script_fu_script_proc (const gchar *name,
|
||||||
|
|
||||||
static SFScript *script_fu_find_script (const gchar *name);
|
static SFScript *script_fu_find_script (const gchar *name);
|
||||||
|
|
||||||
static void script_fu_menu_map (SFScript *script);
|
static gchar * script_fu_menu_map (const gchar *menu_path);
|
||||||
static gint script_fu_menu_compare (gconstpointer a,
|
static gint script_fu_menu_compare (gconstpointer a,
|
||||||
gconstpointer b);
|
gconstpointer b);
|
||||||
|
|
||||||
|
@ -140,6 +140,7 @@ script_fu_add_script (scheme *sc,
|
||||||
const gchar *copyright;
|
const gchar *copyright;
|
||||||
const gchar *date;
|
const gchar *date;
|
||||||
const gchar *image_types;
|
const gchar *image_types;
|
||||||
|
gchar *mapped;
|
||||||
gint n_args;
|
gint n_args;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
|
@ -497,7 +498,13 @@ script_fu_add_script (scheme *sc,
|
||||||
/* fill all values from defaults */
|
/* fill all values from defaults */
|
||||||
script_fu_script_reset (script, TRUE);
|
script_fu_script_reset (script, TRUE);
|
||||||
|
|
||||||
script_fu_menu_map (script);
|
mapped = script_fu_menu_map (script->menu_path);
|
||||||
|
|
||||||
|
if (mapped)
|
||||||
|
{
|
||||||
|
g_free (script->menu_path);
|
||||||
|
script->menu_path = mapped;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const gchar *key = gettext (script->menu_path);
|
const gchar *key = gettext (script->menu_path);
|
||||||
|
@ -516,6 +523,7 @@ script_fu_add_menu (scheme *sc,
|
||||||
SFScript *script;
|
SFScript *script;
|
||||||
SFMenu *menu;
|
SFMenu *menu;
|
||||||
const gchar *name;
|
const gchar *name;
|
||||||
|
const gchar *path;
|
||||||
|
|
||||||
/* Check the length of a */
|
/* Check the length of a */
|
||||||
if (sc->vptr->list_length (sc, a) != 2)
|
if (sc->vptr->list_length (sc, a) != 2)
|
||||||
|
@ -529,7 +537,8 @@ script_fu_add_menu (scheme *sc,
|
||||||
|
|
||||||
if (! script)
|
if (! script)
|
||||||
{
|
{
|
||||||
g_message ("Procedure %s in script-fu-menu-register does not exist", name);
|
g_message ("Procedure %s in script-fu-menu-register does not exist",
|
||||||
|
name);
|
||||||
return sc->NIL;
|
return sc->NIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -539,7 +548,12 @@ script_fu_add_menu (scheme *sc,
|
||||||
menu->script = script;
|
menu->script = script;
|
||||||
|
|
||||||
/* Find the script menu path */
|
/* Find the script menu path */
|
||||||
menu->menu_path = g_strdup (sc->vptr->string_value (sc->vptr->pair_car (a)));
|
path = sc->vptr->string_value (sc->vptr->pair_car (a));
|
||||||
|
|
||||||
|
menu->menu_path = script_fu_menu_map (path);
|
||||||
|
|
||||||
|
if (! menu->menu_path)
|
||||||
|
menu->menu_path = g_strdup (path);
|
||||||
|
|
||||||
script_menu_list = g_list_prepend (script_menu_list, menu);
|
script_menu_list = g_list_prepend (script_menu_list, menu);
|
||||||
|
|
||||||
|
@ -816,8 +830,8 @@ script_fu_find_script (const gchar *name)
|
||||||
return (SFScript *) script;
|
return (SFScript *) script;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static gchar *
|
||||||
script_fu_menu_map (SFScript *script)
|
script_fu_menu_map (const gchar *menu_path)
|
||||||
{
|
{
|
||||||
/* for backward compatibility, we fiddle with some menu paths */
|
/* for backward compatibility, we fiddle with some menu paths */
|
||||||
const struct
|
const struct
|
||||||
|
@ -839,22 +853,18 @@ script_fu_menu_map (SFScript *script)
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (mapping); i++)
|
for (i = 0; i < G_N_ELEMENTS (mapping); i++)
|
||||||
{
|
{
|
||||||
if (g_str_has_prefix (script->menu_path, mapping[i].old))
|
if (g_str_has_prefix (menu_path, mapping[i].old))
|
||||||
{
|
{
|
||||||
const gchar *suffix = script->menu_path + strlen (mapping[i].old);
|
const gchar *suffix = menu_path + strlen (mapping[i].old);
|
||||||
gchar *tmp;
|
|
||||||
|
|
||||||
if (! *suffix == '/')
|
if (! *suffix == '/')
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
tmp = g_strconcat (mapping[i].new, suffix, NULL);
|
return g_strconcat (mapping[i].new, suffix, NULL);
|
||||||
|
|
||||||
g_free (script->menu_path);
|
|
||||||
script->menu_path = tmp;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
|
|
Loading…
Reference in New Issue