[gimp/gimp-2-10] app: more GimpGradientEditor cleanup
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: more GimpGradientEditor cleanup
- Date: Sun, 24 Jun 2018 16:19:52 +0000 (UTC)
commit 5feabfd1e044ff3223d38a75484692922da03cf9
Author: Michael Natterer <mitch gimp org>
Date: Sun Jun 24 16:24:16 2018 +0200
app: more GimpGradientEditor cleanup
Let the split and replicate segments dialogs keep their own data and
don't use GimpGradientEditor struct members. Remove redundant members
and indent the struct.
(cherry picked from commit b8e75a0201ac55b95d97518c2d72e65d67d13c0f)
app/actions/gradient-editor-commands.c | 81 +++++++++++++++++++---------------
app/widgets/gimpgradienteditor.c | 41 +++++------------
app/widgets/gimpgradienteditor.h | 45 +++++++------------
3 files changed, 73 insertions(+), 94 deletions(-)
---
diff --git a/app/actions/gradient-editor-commands.c b/app/actions/gradient-editor-commands.c
index 38d838218e..31a5904c65 100644
--- a/app/actions/gradient-editor-commands.c
+++ b/app/actions/gradient-editor-commands.c
@@ -20,6 +20,7 @@
#include <gegl.h>
#include <gtk/gtk.h>
+#include "libgimpmath/gimpmath.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "actions-types.h"
@@ -364,6 +365,7 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
{
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
+ GimpGradient *gradient;
GimpGradientSegment *left;
GimpGradientSegment *right;
GtkWidget *dialog;
@@ -374,7 +376,7 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
const gchar *title;
const gchar *desc;
- gimp_gradient_editor_get_selection (editor, NULL, &left, &right);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
if (left == right)
{
@@ -387,19 +389,19 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
desc = _("Replicate Gradient Selection");
}
- dialog =
- gimp_viewable_dialog_new (GIMP_VIEWABLE (data_editor->data),
- data_editor->context,
- title, "gimp-gradient-segment-replicate",
- GIMP_ICON_GRADIENT, desc,
- GTK_WIDGET (editor),
- gimp_standard_help_func,
- GIMP_HELP_GRADIENT_EDITOR_REPLICATE,
+ dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (gradient),
+ data_editor->context,
+ title,
+ "gimp-gradient-segment-replicate",
+ GIMP_ICON_GRADIENT, desc,
+ GTK_WIDGET (editor),
+ gimp_standard_help_func,
+ GIMP_HELP_GRADIENT_EDITOR_REPLICATE,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_Replicate"), GTK_RESPONSE_OK,
+ _("_Cancel"), GTK_RESPONSE_CANCEL,
+ _("_Replicate"), GTK_RESPONSE_OK,
- NULL);
+ NULL);
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
GTK_RESPONSE_OK,
@@ -428,8 +430,7 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
gtk_widget_show (label);
/* Scale */
- editor->replicate_times = 2;
- scale_data = GTK_ADJUSTMENT (gtk_adjustment_new (2.0, 2.0, 21.0, 1.0, 1.0, 1.0));
+ scale_data = GTK_ADJUSTMENT (gtk_adjustment_new (2.0, 2.0, 21.0, 1.0, 1.0, 1.0));
scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, scale_data);
gtk_scale_set_digits (GTK_SCALE (scale), 0);
@@ -437,9 +438,7 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, TRUE, 4);
gtk_widget_show (scale);
- g_signal_connect (scale_data, "value-changed",
- G_CALLBACK (gimp_int_adjustment_update),
- &editor->replicate_times);
+ g_object_set_data (G_OBJECT (dialog), "adjustment", scale_data);
gtk_widget_set_sensitive (GTK_WIDGET (editor), FALSE);
gimp_ui_manager_update (gimp_editor_get_ui_manager (GIMP_EDITOR (editor)),
@@ -475,6 +474,7 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
{
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
+ GimpGradient *gradient;
GimpGradientSegment *left;
GimpGradientSegment *right;
GtkWidget *dialog;
@@ -485,7 +485,7 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
const gchar *title;
const gchar *desc;
- gimp_gradient_editor_get_selection (editor, NULL, &left, &right);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
if (left == right)
{
@@ -498,19 +498,19 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
desc = _("Split Gradient Segments Uniformly");
}
- dialog =
- gimp_viewable_dialog_new (GIMP_VIEWABLE (data_editor->data),
- data_editor->context,
- title, "gimp-gradient-segment-split-uniformly",
- GIMP_ICON_GRADIENT, desc,
- GTK_WIDGET (editor),
- gimp_standard_help_func,
- GIMP_HELP_GRADIENT_EDITOR_SPLIT_UNIFORM,
+ dialog = gimp_viewable_dialog_new (GIMP_VIEWABLE (gradient),
+ data_editor->context,
+ title,
+ "gimp-gradient-segment-split-uniformly",
+ GIMP_ICON_GRADIENT, desc,
+ GTK_WIDGET (editor),
+ gimp_standard_help_func,
+ GIMP_HELP_GRADIENT_EDITOR_SPLIT_UNIFORM,
- _("_Cancel"), GTK_RESPONSE_CANCEL,
- _("_Split"), GTK_RESPONSE_OK,
+ _("_Cancel"), GTK_RESPONSE_CANCEL,
+ _("_Split"), GTK_RESPONSE_OK,
- NULL);
+ NULL);
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
GTK_RESPONSE_OK,
@@ -540,7 +540,6 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
gtk_widget_show (label);
/* Scale */
- editor->split_parts = 2;
scale_data = GTK_ADJUSTMENT (gtk_adjustment_new (2.0, 2.0, 21.0, 1.0, 1.0, 1.0));
scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, scale_data);
@@ -549,9 +548,7 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 4);
gtk_widget_show (scale);
- g_signal_connect (scale_data, "value-changed",
- G_CALLBACK (gimp_int_adjustment_update),
- &editor->split_parts);
+ g_object_set_data (G_OBJECT (dialog), "adjustment", scale_data);
gtk_widget_set_sensitive (GTK_WIDGET (editor), FALSE);
gimp_ui_manager_update (gimp_editor_get_ui_manager (GIMP_EDITOR (editor)),
@@ -658,6 +655,13 @@ gradient_editor_split_uniform_response (GtkWidget *widget,
gint response_id,
GimpGradientEditor *editor)
{
+ GtkAdjustment *adjustment;
+ gint split_parts;
+
+ adjustment = g_object_get_data (G_OBJECT (widget), "adjustment");
+
+ split_parts = RINT (gtk_adjustment_get_value (adjustment));
+
gtk_widget_destroy (widget);
gtk_widget_set_sensitive (GTK_WIDGET (editor), TRUE);
gimp_ui_manager_update (gimp_editor_get_ui_manager (GIMP_EDITOR (editor)),
@@ -675,7 +679,7 @@ gradient_editor_split_uniform_response (GtkWidget *widget,
gimp_gradient_segment_range_split_uniform (gradient,
data_editor->context,
left, right,
- editor->split_parts,
+ split_parts,
editor->blend_color_space,
&left, &right);
@@ -688,6 +692,13 @@ gradient_editor_replicate_response (GtkWidget *widget,
gint response_id,
GimpGradientEditor *editor)
{
+ GtkAdjustment *adjustment;
+ gint replicate_times;
+
+ adjustment = g_object_get_data (G_OBJECT (widget), "adjustment");
+
+ replicate_times = RINT (gtk_adjustment_get_value (adjustment));
+
gtk_widget_destroy (widget);
gtk_widget_set_sensitive (GTK_WIDGET (editor), TRUE);
gimp_ui_manager_update (gimp_editor_get_ui_manager (GIMP_EDITOR (editor)),
@@ -703,7 +714,7 @@ gradient_editor_replicate_response (GtkWidget *widget,
gimp_gradient_segment_range_replicate (gradient,
left, right,
- editor->replicate_times,
+ replicate_times,
&left, &right);
gimp_gradient_editor_set_selection (editor, left, right);
diff --git a/app/widgets/gimpgradienteditor.c b/app/widgets/gimpgradienteditor.c
index b2f721d114..fe14b43ec2 100644
--- a/app/widgets/gimpgradienteditor.c
+++ b/app/widgets/gimpgradienteditor.c
@@ -322,10 +322,6 @@ gimp_gradient_editor_init (GimpGradientEditor *editor)
gtk_container_add (GTK_CONTAINER (frame), vbox);
gtk_widget_show (vbox);
- /* Gradient view */
- editor->view_last_x = 0;
- editor->view_button_down = FALSE;
-
data_editor->view = gimp_view_new_full_by_types (NULL,
GIMP_TYPE_VIEW,
GIMP_TYPE_GRADIENT,
@@ -352,16 +348,6 @@ gimp_gradient_editor_init (GimpGradientEditor *editor)
editor);
/* Gradient control */
- editor->control_drag_segment = NULL;
- editor->control_sel_l = NULL;
- editor->control_sel_r = NULL;
- editor->control_drag_mode = GRAD_DRAG_NONE;
- editor->control_click_time = 0;
- editor->control_compress = FALSE;
- editor->control_last_x = 0;
- editor->control_last_gx = 0.0;
- editor->control_orig_pos = 0.0;
-
editor->control = gtk_drawing_area_new ();
gtk_widget_set_size_request (editor->control, -1, GRAD_CONTROL_HEIGHT);
gtk_widget_set_events (editor->control, GRAD_CONTROL_EVENT_MASK);
@@ -430,13 +416,6 @@ gimp_gradient_editor_init (GimpGradientEditor *editor)
editor->hint_label3 = gradient_hint_label_add (GTK_BOX (hint_vbox));
editor->hint_label4 = gradient_hint_label_add (GTK_BOX (hint_vbox));
- /* Initialize other data */
- editor->left_saved_segments = NULL;
- editor->left_saved_dirty = FALSE;
-
- editor->right_saved_segments = NULL;
- editor->right_saved_dirty = FALSE;
-
/* Black, 50% Gray, White, Clear */
gimp_rgba_set (&editor->saved_colors[0], 0.0, 0.0, 0.0, GIMP_OPACITY_OPAQUE);
gimp_rgba_set (&editor->saved_colors[1], 0.5, 0.5, 0.5, GIMP_OPACITY_OPAQUE);
@@ -600,8 +579,8 @@ gimp_gradient_editor_edit_left_color (GimpGradientEditor *editor)
editor->control_sel_l->left_color_type != GIMP_GRADIENT_COLOR_FIXED)
return;
- editor->left_saved_dirty = gimp_data_is_dirty (GIMP_DATA (gradient));
- editor->left_saved_segments = gradient_editor_save_selection (editor);
+ editor->saved_dirty = gimp_data_is_dirty (GIMP_DATA (gradient));
+ editor->saved_segments = gradient_editor_save_selection (editor);
editor->color_dialog =
gimp_color_dialog_new (GIMP_VIEWABLE (gradient),
@@ -644,8 +623,8 @@ gimp_gradient_editor_edit_right_color (GimpGradientEditor *editor)
editor->control_sel_r->right_color_type != GIMP_GRADIENT_COLOR_FIXED)
return;
- editor->right_saved_dirty = gimp_data_is_dirty (GIMP_DATA (gradient));
- editor->right_saved_segments = gradient_editor_save_selection (editor);
+ editor->saved_dirty = gimp_data_is_dirty (GIMP_DATA (gradient));
+ editor->saved_segments = gradient_editor_save_selection (editor);
editor->color_dialog =
gimp_color_dialog_new (GIMP_VIEWABLE (gradient),
@@ -1022,7 +1001,7 @@ gradient_editor_left_color_update (GimpColorDialog *dialog,
color,
&editor->control_sel_r->right_color,
TRUE, TRUE);
- gimp_gradient_segments_free (editor->left_saved_segments);
+ gimp_gradient_segments_free (editor->saved_segments);
gtk_widget_destroy (editor->color_dialog);
editor->color_dialog = NULL;
gtk_widget_set_sensitive (GTK_WIDGET (editor), TRUE);
@@ -1031,8 +1010,8 @@ gradient_editor_left_color_update (GimpColorDialog *dialog,
break;
case GIMP_COLOR_DIALOG_CANCEL:
- gradient_editor_replace_selection (editor, editor->left_saved_segments);
- if (! editor->left_saved_dirty)
+ gradient_editor_replace_selection (editor, editor->saved_segments);
+ if (! editor->saved_dirty)
gimp_data_clean (GIMP_DATA (gradient));
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (gradient));
gtk_widget_destroy (editor->color_dialog);
@@ -1070,7 +1049,7 @@ gradient_editor_right_color_update (GimpColorDialog *dialog,
&editor->control_sel_l->left_color,
color,
TRUE, TRUE);
- gimp_gradient_segments_free (editor->right_saved_segments);
+ gimp_gradient_segments_free (editor->saved_segments);
gtk_widget_destroy (editor->color_dialog);
editor->color_dialog = NULL;
gtk_widget_set_sensitive (GTK_WIDGET (editor), TRUE);
@@ -1079,8 +1058,8 @@ gradient_editor_right_color_update (GimpColorDialog *dialog,
break;
case GIMP_COLOR_DIALOG_CANCEL:
- gradient_editor_replace_selection (editor, editor->right_saved_segments);
- if (! editor->right_saved_dirty)
+ gradient_editor_replace_selection (editor, editor->saved_segments);
+ if (! editor->saved_dirty)
gimp_data_clean (GIMP_DATA (gradient));
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (gradient));
gtk_widget_destroy (editor->color_dialog);
diff --git a/app/widgets/gimpgradienteditor.h b/app/widgets/gimpgradienteditor.h
index 9a58a9d15b..ad71f82824 100644
--- a/app/widgets/gimpgradienteditor.h
+++ b/app/widgets/gimpgradienteditor.h
@@ -49,26 +49,23 @@ typedef struct _GimpGradientEditorClass GimpGradientEditorClass;
struct _GimpGradientEditor
{
- GimpDataEditor parent_instance;
+ GimpDataEditor parent_instance;
- GtkWidget *current_color;
- GtkWidget *hint_label1;
- GtkWidget *hint_label2;
- GtkWidget *hint_label3;
- GtkWidget *hint_label4;
- GtkWidget *scrollbar;
- GtkWidget *control;
+ GtkWidget *current_color;
+ GtkWidget *hint_label1;
+ GtkWidget *hint_label2;
+ GtkWidget *hint_label3;
+ GtkWidget *hint_label4;
+ GtkWidget *scrollbar;
+ GtkWidget *control;
/* Zoom and scrollbar */
- guint zoom_factor;
- GtkAdjustment *scroll_data;
-
- /* Color dialog */
- GtkWidget *color_dialog;
+ guint zoom_factor;
+ GtkAdjustment *scroll_data;
/* Gradient view */
- gint view_last_x;
- gboolean view_button_down;
+ gint view_last_x;
+ gboolean view_button_down;
/* Gradient control */
GimpGradientSegment *control_drag_segment; /* Segment which is being dragged */
@@ -83,21 +80,13 @@ struct _GimpGradientEditor
GimpGradientBlendColorSpace blend_color_space;
- /* Split uniformly dialog */
- gint split_parts;
-
- /* Replicate dialog */
- gint replicate_times;
-
/* Saved colors */
- GimpRGB saved_colors[GRAD_NUM_COLORS];
-
- /* Color dialogs */
- GimpGradientSegment *left_saved_segments;
- gboolean left_saved_dirty;
+ GimpRGB saved_colors[GRAD_NUM_COLORS];
- GimpGradientSegment *right_saved_segments;
- gboolean right_saved_dirty;
+ /* Color dialog */
+ GtkWidget *color_dialog;
+ GimpGradientSegment *saved_segments;
+ gboolean saved_dirty;
};
struct _GimpGradientEditorClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]