[gimp/gimp-2-10] app: in GimpFilterTool, consolidate drawable-filter option setup
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: in GimpFilterTool, consolidate drawable-filter option setup
- Date: Fri, 17 Jan 2020 10:16:30 +0000 (UTC)
commit 868a64c0f8d145646a2f0858b32a79497b6cb379
Author: Ell <ell_se yahoo com>
Date: Fri Jan 17 10:44:59 2020 +0200
app: in GimpFilterTool, consolidate drawable-filter option setup
In GimpFilterTool, move all the drawable-filter option setup to a
new gimp_filter_tool_update_filter() function, and call it whenever
the drawable-filter's options need to be updated. This avoids
duplicating logic in various places.
app/tools/gimpfiltertool.c | 97 ++++++++++++++++++----------------------------
1 file changed, 38 insertions(+), 59 deletions(-)
---
diff --git a/app/tools/gimpfiltertool.c b/app/tools/gimpfiltertool.c
index 9adfde08cc..24f91c0295 100644
--- a/app/tools/gimpfiltertool.c
+++ b/app/tools/gimpfiltertool.c
@@ -188,6 +188,8 @@ static void gimp_filter_tool_response (GimpToolGui *gui,
gint response_id,
GimpFilterTool *filter_tool);
+static void gimp_filter_tool_update_filter (GimpFilterTool *filter_tool);
+
static void gimp_filter_tool_set_has_settings (GimpFilterTool *filter_tool,
gboolean has_settings);
@@ -778,37 +780,27 @@ gimp_filter_tool_options_notify (GimpTool *tool,
}
}
- gimp_drawable_filter_set_preview (filter_tool->filter,
- filter_options->preview_split,
- filter_options->preview_alignment,
- filter_options->preview_position);
+ gimp_filter_tool_update_filter (filter_tool);
if (filter_options->preview_split)
gimp_filter_tool_add_guide (filter_tool);
else
gimp_filter_tool_remove_guide (filter_tool);
}
- else if (! strcmp (pspec->name, "preview-alignment") &&
- filter_tool->filter)
+ else if (! strcmp (pspec->name, "preview-alignment") ||
+ ! strcmp (pspec->name, "preview-position"))
{
- gimp_drawable_filter_set_preview (filter_tool->filter,
- filter_options->preview_split,
- filter_options->preview_alignment,
- filter_options->preview_position);
+ gimp_filter_tool_update_filter (filter_tool);
if (filter_options->preview_split)
gimp_filter_tool_move_guide (filter_tool);
}
- else if (! strcmp (pspec->name, "preview-position") &&
- filter_tool->filter)
+ else if (! strcmp (pspec->name, "clip") ||
+ ! strcmp (pspec->name, "region") ||
+ ! strcmp (pspec->name, "color-managed") ||
+ ! strcmp (pspec->name, "gamma-hack"))
{
- gimp_drawable_filter_set_preview (filter_tool->filter,
- filter_options->preview_split,
- filter_options->preview_alignment,
- filter_options->preview_position);
-
- if (filter_options->preview_split)
- gimp_filter_tool_move_guide (filter_tool);
+ gimp_filter_tool_update_filter (filter_tool);
}
else if (! strcmp (pspec->name, "controller") &&
filter_tool->widget)
@@ -816,35 +808,6 @@ gimp_filter_tool_options_notify (GimpTool *tool,
gimp_tool_widget_set_visible (filter_tool->widget,
filter_options->controller);
}
- else if (! strcmp (pspec->name, "clip") &&
- filter_tool->filter)
- {
- gimp_drawable_filter_set_clip (filter_tool->filter,
- filter_options->clip ==
- GIMP_TRANSFORM_RESIZE_CLIP ||
- ! gimp_drawable_has_alpha (
- tool->drawable));
- }
- else if (! strcmp (pspec->name, "region") &&
- filter_tool->filter)
- {
- gimp_drawable_filter_set_region (filter_tool->filter,
- filter_options->region);
-
- gimp_filter_tool_region_changed (filter_tool);
- }
- else if (! strcmp (pspec->name, "color-managed") &&
- filter_tool->filter)
- {
- gimp_drawable_filter_set_color_managed (filter_tool->filter,
- filter_options->color_managed);
- }
- else if (! strcmp (pspec->name, "gamma-hack") &&
- filter_tool->filter)
- {
- gimp_drawable_filter_set_gamma_hack (filter_tool->filter,
- filter_options->gamma_hack);
- }
}
static gboolean
@@ -1137,17 +1100,7 @@ gimp_filter_tool_create_filter (GimpFilterTool *filter_tool)
filter_tool->operation,
gimp_tool_get_icon_name (tool));
- gimp_drawable_filter_set_clip (filter_tool->filter,
- options->clip ==
- GIMP_TRANSFORM_RESIZE_CLIP ||
- ! gimp_drawable_has_alpha (
- tool->drawable));
- gimp_drawable_filter_set_region (filter_tool->filter,
- options->region);
- gimp_drawable_filter_set_color_managed (filter_tool->filter,
- options->color_managed);
- gimp_drawable_filter_set_gamma_hack (filter_tool->filter,
- options->gamma_hack);
+ gimp_filter_tool_update_filter (filter_tool);
g_signal_connect (filter_tool->filter, "flush",
G_CALLBACK (gimp_filter_tool_flush),
@@ -1438,6 +1391,32 @@ gimp_filter_tool_response (GimpToolGui *gui,
}
}
+static void
+gimp_filter_tool_update_filter (GimpFilterTool *filter_tool)
+{
+ GimpTool *tool = GIMP_TOOL (filter_tool);
+ GimpFilterOptions *options = GIMP_FILTER_TOOL_GET_OPTIONS (filter_tool);
+
+ if (! filter_tool->filter)
+ return;
+
+ gimp_drawable_filter_set_clip (filter_tool->filter,
+ options->clip ==
+ GIMP_TRANSFORM_RESIZE_CLIP ||
+ ! gimp_drawable_has_alpha (
+ tool->drawable));
+ gimp_drawable_filter_set_region (filter_tool->filter,
+ options->region);
+ gimp_drawable_filter_set_preview (filter_tool->filter,
+ options->preview_split,
+ options->preview_alignment,
+ options->preview_position);
+ gimp_drawable_filter_set_color_managed (filter_tool->filter,
+ options->color_managed);
+ gimp_drawable_filter_set_gamma_hack (filter_tool->filter,
+ options->gamma_hack);
+}
+
static void
gimp_filter_tool_set_has_settings (GimpFilterTool *filter_tool,
gboolean has_settings)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]