[gimp] app: improve dynamics editor behavior on switching
- From: Alexia Death <alexiade src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: improve dynamics editor behavior on switching
- Date: Sun, 28 Feb 2010 17:02:21 +0000 (UTC)
commit 9e9ea6f33a902aa8bbbc83284cf2b6e0c871a13a
Author: Alexia Death <alexiadeath gmail com>
Date: Sun Feb 28 19:00:37 2010 +0200
app: improve dynamics editor behavior on switching
app/widgets/gimpdynamicsoutputeditor.c | 52 ++++++++++++++++++++++---------
1 files changed, 37 insertions(+), 15 deletions(-)
---
diff --git a/app/widgets/gimpdynamicsoutputeditor.c b/app/widgets/gimpdynamicsoutputeditor.c
index abb8a2f..fcce628 100644
--- a/app/widgets/gimpdynamicsoutputeditor.c
+++ b/app/widgets/gimpdynamicsoutputeditor.c
@@ -79,6 +79,8 @@ struct _GimpDynamicsOutputEditorPrivate
GtkListStore *input_list;
+ GtkWidget *input_view;
+
GimpCurve *active_curve;
};
@@ -118,9 +120,9 @@ static void gimp_dynamics_output_editor_use_input (gint
gboolean value,
GimpDynamicsOutputEditor *editor);
-static void gimp_dynamics_output_editor_notify_output (GimpDynamicsOutput *output,
- const GParamSpec *pspec,
- GtkListStore *list);
+static void gimp_dynamics_output_editor_notify_output (GimpDynamicsOutput *output,
+ const GParamSpec *pspec,
+ GimpDynamicsOutputEditor *editor);
G_DEFINE_TYPE (GimpDynamicsOutputEditor, gimp_dynamics_output_editor,
GTK_TYPE_VBOX)
@@ -211,35 +213,35 @@ gimp_dynamics_output_editor_constructor (GType type,
-1);
gtk_list_store_insert_with_values (private->input_list,
- &iter, INPUT_VELOCITY,
+ NULL, INPUT_VELOCITY,
INPUT_COLUMN_INDEX, INPUT_VELOCITY,
INPUT_COLUMN_USE_INPUT, private->output->use_velocity,
INPUT_COLUMN_NAME, _("Velocity"),
-1);
gtk_list_store_insert_with_values (private->input_list,
- &iter, INPUT_DIRECTION,
+ NULL, INPUT_DIRECTION,
INPUT_COLUMN_INDEX, INPUT_DIRECTION,
INPUT_COLUMN_USE_INPUT, private->output->use_direction,
INPUT_COLUMN_NAME, _("Direction"),
-1);
gtk_list_store_insert_with_values (private->input_list,
- &iter, INPUT_TILT,
+ NULL, INPUT_TILT,
INPUT_COLUMN_INDEX, INPUT_TILT,
INPUT_COLUMN_USE_INPUT, private->output->use_tilt,
INPUT_COLUMN_NAME, _("Tilt"),
-1);
gtk_list_store_insert_with_values (private->input_list,
- &iter, INPUT_RANDOM,
+ NULL, INPUT_RANDOM,
INPUT_COLUMN_INDEX, INPUT_RANDOM,
INPUT_COLUMN_USE_INPUT, private->output->use_random,
INPUT_COLUMN_NAME, _("Random"),
-1);
gtk_list_store_insert_with_values (private->input_list,
- &iter, INPUT_FADE,
+ NULL, INPUT_FADE,
INPUT_COLUMN_INDEX, INPUT_FADE,
INPUT_COLUMN_USE_INPUT, private->output->use_fade,
INPUT_COLUMN_NAME, _("Fade"),
@@ -278,10 +280,13 @@ gimp_dynamics_output_editor_constructor (GType type,
gtk_box_pack_start (GTK_BOX (editor), view, FALSE, FALSE, 0);
gtk_widget_show (view);
+ private->input_view = view;
+
tree_sel = gtk_tree_view_get_selection(GTK_TREE_VIEW (view));
gtk_tree_selection_set_mode(tree_sel,
GTK_SELECTION_BROWSE);
+ gtk_tree_selection_select_iter(tree_sel, &iter);
g_signal_connect(G_OBJECT(tree_sel),
"changed",
@@ -290,7 +295,7 @@ gimp_dynamics_output_editor_constructor (GType type,
g_signal_connect (private->output, "notify",
G_CALLBACK (gimp_dynamics_output_editor_notify_output),
- private->input_list);
+ editor);
return object;
}
@@ -558,16 +563,22 @@ gimp_dynamics_output_editor_use_input (gint input,
static void
gimp_dynamics_output_editor_notify_output (GimpDynamicsOutput *output,
const GParamSpec *pspec,
- GtkListStore *list)
+ GimpDynamicsOutputEditor *editor)
{
+ GimpDynamicsOutputEditorPrivate *private;
- GtkTreeModel *model;
- GtkTreeIter iter;
- gboolean iter_valid;
- gboolean value;
+ GtkTreeModel *model;
+ GtkTreeSelection *sel;
+ GtkTreeIter iter;
+ GtkTreeView *view;
+ gboolean iter_valid;
+ gboolean value;
- model = GTK_TREE_MODEL(list);
+ private = GIMP_DYNAMICS_OUTPUT_EDITOR_GET_PRIVATE (editor);
+ view = GTK_TREE_VIEW(private->input_view);
+ model = GTK_TREE_MODEL(gtk_tree_view_get_model(view));
+ sel = gtk_tree_view_get_selection(view);
for (iter_valid = gtk_tree_model_get_iter_first (model, &iter);
iter_valid;
iter_valid = gtk_tree_model_iter_next (model, &iter))
@@ -604,6 +615,17 @@ gimp_dynamics_output_editor_notify_output (GimpDynamicsOutput *output,
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
INPUT_COLUMN_USE_INPUT, value, -1);
+
+ if (gtk_tree_selection_iter_is_selected(sel, &iter))
+ {
+ gint input;
+
+ gtk_tree_model_get (model, &iter,
+ INPUT_COLUMN_INDEX, &input,
+ -1);
+
+ gimp_dynamics_output_editor_activate_input(input, editor);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]