mirror of https://github.com/GNOME/gimp.git
app: Make the layer auto expand options shared between tools
Also added option in Edit->Preferences->"Tool Options"->"Paint Options Shared Between Tools" that decides weather the options should be shared between different tools.
This commit is contained in:
parent
5c2373a125
commit
41e0151478
|
@ -94,6 +94,7 @@ enum
|
|||
PROP_GLOBAL_PALETTE,
|
||||
PROP_GLOBAL_GRADIENT,
|
||||
PROP_GLOBAL_FONT,
|
||||
PROP_GLOBAL_EXPAND,
|
||||
PROP_DEFAULT_IMAGE,
|
||||
PROP_DEFAULT_GRID,
|
||||
PROP_UNDO_LEVELS,
|
||||
|
@ -536,6 +537,13 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
|
|||
TRUE,
|
||||
GIMP_PARAM_STATIC_STRINGS);
|
||||
|
||||
GIMP_CONFIG_PROP_BOOLEAN (object_class, PROP_GLOBAL_EXPAND,
|
||||
"global-expand",
|
||||
"Global expand",
|
||||
GLOBAL_EXPAND_BLURB,
|
||||
TRUE,
|
||||
GIMP_PARAM_STATIC_STRINGS);
|
||||
|
||||
GIMP_CONFIG_PROP_OBJECT (object_class, PROP_DEFAULT_IMAGE,
|
||||
"default-image",
|
||||
"Default image",
|
||||
|
@ -1057,6 +1065,9 @@ gimp_core_config_set_property (GObject *object,
|
|||
case PROP_GLOBAL_FONT:
|
||||
core_config->global_font = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_GLOBAL_EXPAND:
|
||||
core_config->global_expand = g_value_get_boolean (value);
|
||||
break;
|
||||
case PROP_DEFAULT_IMAGE:
|
||||
if (g_value_get_object (value))
|
||||
gimp_config_sync (g_value_get_object (value) ,
|
||||
|
@ -1333,6 +1344,9 @@ gimp_core_config_get_property (GObject *object,
|
|||
case PROP_GLOBAL_FONT:
|
||||
g_value_set_boolean (value, core_config->global_font);
|
||||
break;
|
||||
case PROP_GLOBAL_EXPAND:
|
||||
g_value_set_boolean (value, core_config->global_expand);
|
||||
break;
|
||||
case PROP_DEFAULT_IMAGE:
|
||||
g_value_set_object (value, core_config->default_image);
|
||||
break;
|
||||
|
|
|
@ -78,6 +78,7 @@ struct _GimpCoreConfig
|
|||
gboolean global_palette;
|
||||
gboolean global_gradient;
|
||||
gboolean global_font;
|
||||
gboolean global_expand;
|
||||
GimpTemplate *default_image;
|
||||
GimpGrid *default_grid;
|
||||
gint levels_of_undo;
|
||||
|
|
|
@ -181,6 +181,9 @@ _("When enabled, the selected pattern will be used for all tools.")
|
|||
#define GLOBAL_PALETTE_BLURB \
|
||||
"When enabled, the selected palette will be used for all tools."
|
||||
|
||||
#define GLOBAL_EXPAND_BLURB \
|
||||
"When enabled, the selected auto expand layer settings will be used for all tools."
|
||||
|
||||
#define GRADIENT_PATH_BLURB \
|
||||
"Sets the gradient search path."
|
||||
|
||||
|
|
|
@ -711,6 +711,7 @@ typedef enum /*< pdb-skip, skip >*/
|
|||
GIMP_CONTEXT_PROP_BUFFER = 18,
|
||||
GIMP_CONTEXT_PROP_IMAGEFILE = 19,
|
||||
GIMP_CONTEXT_PROP_TEMPLATE = 20,
|
||||
GIMP_CONTEXT_PROP_EXPAND = 21,
|
||||
|
||||
GIMP_CONTEXT_PROP_LAST = GIMP_CONTEXT_PROP_TEMPLATE
|
||||
} GimpContextPropType;
|
||||
|
@ -737,6 +738,7 @@ typedef enum /*< pdb-skip, skip >*/
|
|||
GIMP_CONTEXT_PROP_MASK_BUFFER = 1 << 18,
|
||||
GIMP_CONTEXT_PROP_MASK_IMAGEFILE = 1 << 19,
|
||||
GIMP_CONTEXT_PROP_MASK_TEMPLATE = 1 << 20,
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND = 1 << 21,
|
||||
|
||||
/* aliases */
|
||||
GIMP_CONTEXT_PROP_MASK_PAINT = (GIMP_CONTEXT_PROP_MASK_FOREGROUND |
|
||||
|
@ -746,7 +748,8 @@ typedef enum /*< pdb-skip, skip >*/
|
|||
GIMP_CONTEXT_PROP_MASK_BRUSH |
|
||||
GIMP_CONTEXT_PROP_MASK_DYNAMICS |
|
||||
GIMP_CONTEXT_PROP_MASK_PATTERN |
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT),
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND),
|
||||
|
||||
GIMP_CONTEXT_PROP_MASK_ALL = (GIMP_CONTEXT_PROP_MASK_IMAGE |
|
||||
GIMP_CONTEXT_PROP_MASK_DISPLAY |
|
||||
|
|
|
@ -1852,6 +1852,9 @@ prefs_dialog_new (Gimp *gimp,
|
|||
prefs_check_button_add_with_icon (object, "global-gradient",
|
||||
_("_Gradient"), GIMP_ICON_GRADIENT,
|
||||
GTK_BOX (vbox2), size_group);
|
||||
prefs_check_button_add_with_icon (object, "global-expand",
|
||||
_("E_xpand Layers"), GIMP_ICON_TOOL_SCALE,
|
||||
GTK_BOX (vbox2), size_group);
|
||||
|
||||
/* Move Tool */
|
||||
vbox2 = prefs_frame_new (_("Move Tool"),
|
||||
|
|
|
@ -1283,9 +1283,18 @@ static const gchar *gradient_props[] =
|
|||
"gradient-repeat"
|
||||
};
|
||||
|
||||
static const gchar *expand_props[] =
|
||||
{
|
||||
"expand-use",
|
||||
"expand-amount",
|
||||
"expand-fill-type",
|
||||
"expand-mask-fill-type",
|
||||
};
|
||||
|
||||
static const gint max_n_props = (G_N_ELEMENTS (brush_props) +
|
||||
G_N_ELEMENTS (dynamics_props) +
|
||||
G_N_ELEMENTS (gradient_props));
|
||||
G_N_ELEMENTS (gradient_props) +
|
||||
G_N_ELEMENTS (expand_props));
|
||||
|
||||
gboolean
|
||||
gimp_paint_options_is_prop (const gchar *prop_name,
|
||||
|
@ -1316,6 +1325,13 @@ gimp_paint_options_is_prop (const gchar *prop_name,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
if (prop_mask & GIMP_CONTEXT_PROP_MASK_EXPAND)
|
||||
{
|
||||
for (i = 0; i < G_N_ELEMENTS (expand_props); i++)
|
||||
if (! strcmp (prop_name, expand_props[i]))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1350,6 +1366,12 @@ gimp_paint_options_copy_props (GimpPaintOptions *src,
|
|||
names[n_props++] = gradient_props[i];
|
||||
}
|
||||
|
||||
if (prop_mask & GIMP_CONTEXT_PROP_MASK_EXPAND)
|
||||
{
|
||||
for (i = 0; i < G_N_ELEMENTS (expand_props); i++)
|
||||
names[n_props++] = expand_props[i];
|
||||
}
|
||||
|
||||
if (n_props > 0)
|
||||
{
|
||||
g_object_getv (G_OBJECT (src), n_props, names, values);
|
||||
|
|
|
@ -166,6 +166,9 @@ gimp_tool_options_manager_init (Gimp *gimp)
|
|||
g_signal_connect (gimp->config, "notify::global-font",
|
||||
G_CALLBACK (tool_options_manager_global_notify),
|
||||
manager);
|
||||
g_signal_connect (gimp->config, "notify::global-expand",
|
||||
G_CALLBACK (tool_options_manager_global_notify),
|
||||
manager);
|
||||
|
||||
g_signal_connect (user_context, "tool-changed",
|
||||
G_CALLBACK (tool_options_manager_tool_changed),
|
||||
|
@ -250,6 +253,8 @@ tool_options_manager_get_global_props (GimpCoreConfig *config)
|
|||
global_props |= GIMP_CONTEXT_PROP_MASK_GRADIENT;
|
||||
if (config->global_font)
|
||||
global_props |= GIMP_CONTEXT_PROP_MASK_FONT;
|
||||
if (config->global_expand)
|
||||
global_props |= GIMP_CONTEXT_PROP_MASK_EXPAND;
|
||||
|
||||
return global_props;
|
||||
}
|
||||
|
@ -354,6 +359,12 @@ tool_options_manager_paint_options_notify (GimpPaintOptions *src,
|
|||
prop_mask |= GIMP_CONTEXT_PROP_MASK_GRADIENT;
|
||||
}
|
||||
|
||||
if ((active || config->global_expand) &&
|
||||
tool_info->context_props & GIMP_CONTEXT_PROP_MASK_EXPAND)
|
||||
{
|
||||
prop_mask |= GIMP_CONTEXT_PROP_MASK_EXPAND;
|
||||
}
|
||||
|
||||
if (gimp_paint_options_is_prop (pspec->name, prop_mask))
|
||||
{
|
||||
GValue value = G_VALUE_INIT;
|
||||
|
|
|
@ -62,6 +62,7 @@ gimp_airbrush_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_TYPE_AIRBRUSH_OPTIONS,
|
||||
gimp_airbrush_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND |
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT,
|
||||
"gimp-airbrush-tool",
|
||||
_("Airbrush"),
|
||||
|
|
|
@ -57,6 +57,7 @@ gimp_clone_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_TYPE_CLONE_OPTIONS,
|
||||
gimp_clone_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND |
|
||||
GIMP_CONTEXT_PROP_MASK_PATTERN,
|
||||
"gimp-clone-tool",
|
||||
_("Clone"),
|
||||
|
|
|
@ -69,7 +69,8 @@ gimp_convolve_tool_register (GimpToolRegisterCallback callback,
|
|||
(* callback) (GIMP_TYPE_CONVOLVE_TOOL,
|
||||
GIMP_TYPE_CONVOLVE_OPTIONS,
|
||||
gimp_convolve_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND,
|
||||
"gimp-convolve-tool",
|
||||
_("Blur / Sharpen"),
|
||||
_("Blur / Sharpen Tool: Selective blurring or unblurring using a brush"),
|
||||
|
|
|
@ -48,7 +48,8 @@ gimp_heal_tool_register (GimpToolRegisterCallback callback,
|
|||
(* callback) (GIMP_TYPE_HEAL_TOOL,
|
||||
GIMP_TYPE_SOURCE_OPTIONS,
|
||||
gimp_heal_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND,
|
||||
"gimp-heal-tool",
|
||||
_("Healing"),
|
||||
_("Healing Tool: Heal image irregularities"),
|
||||
|
|
|
@ -64,7 +64,8 @@ gimp_ink_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_CONTEXT_PROP_MASK_FOREGROUND |
|
||||
GIMP_CONTEXT_PROP_MASK_BACKGROUND |
|
||||
GIMP_CONTEXT_PROP_MASK_OPACITY |
|
||||
GIMP_CONTEXT_PROP_MASK_PAINT_MODE,
|
||||
GIMP_CONTEXT_PROP_MASK_PAINT_MODE |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND,
|
||||
"gimp-ink-tool",
|
||||
_("Ink"),
|
||||
_("Ink Tool: Calligraphy-style painting"),
|
||||
|
|
|
@ -68,7 +68,8 @@ gimp_mybrush_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_CONTEXT_PROP_MASK_BACKGROUND |
|
||||
GIMP_CONTEXT_PROP_MASK_OPACITY |
|
||||
GIMP_CONTEXT_PROP_MASK_PAINT_MODE |
|
||||
GIMP_CONTEXT_PROP_MASK_MYBRUSH,
|
||||
GIMP_CONTEXT_PROP_MASK_MYBRUSH |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND,
|
||||
"gimp-mypaint-brush-tool",
|
||||
_("MyPaint Brush"),
|
||||
_("MyPaint Brush Tool: Use MyPaint brushes in GIMP"),
|
||||
|
|
|
@ -52,6 +52,7 @@ gimp_paintbrush_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_TYPE_PAINT_OPTIONS,
|
||||
gimp_paint_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND |
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT,
|
||||
"gimp-paintbrush-tool",
|
||||
_("Paintbrush"),
|
||||
|
|
|
@ -46,6 +46,7 @@ gimp_pencil_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_TYPE_PENCIL_OPTIONS,
|
||||
gimp_paint_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND |
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT,
|
||||
"gimp-pencil-tool",
|
||||
_("Pencil"),
|
||||
|
|
|
@ -50,6 +50,7 @@ gimp_smudge_tool_register (GimpToolRegisterCallback callback,
|
|||
GIMP_TYPE_SMUDGE_OPTIONS,
|
||||
gimp_smudge_options_gui,
|
||||
GIMP_PAINT_OPTIONS_CONTEXT_MASK |
|
||||
GIMP_CONTEXT_PROP_MASK_EXPAND |
|
||||
GIMP_CONTEXT_PROP_MASK_GRADIENT,
|
||||
"gimp-smudge-tool",
|
||||
_("Smudge"),
|
||||
|
|
Loading…
Reference in New Issue