[gimp/soc-2009-dynamics] Fixed loading for dynamics and made them actually accessible
- From: Alexia Death <alexiade src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp/soc-2009-dynamics] Fixed loading for dynamics and made them actually accessible
- Date: Sat, 3 Oct 2009 09:59:19 +0000 (UTC)
commit cd36753f17f96e88e95a18f114e5ae70370a0fee
Author: Alexia Death <alexiadeath gmail com>
Date: Sat Oct 3 12:59:45 2009 +0300
Fixed loading for dynamics and made them actually accessible
app/core/gimp.c | 21 ++++--
app/core/gimpcontext.c | 30 ++++++---
app/core/gimpdynamics.c | 25 +------
app/paint/gimpbrushcore.c | 7 +--
app/paint/gimppaintoptions.c | 8 --
app/widgets/gimpdynamicseditor.c | 137 +++++++++-----------------------------
6 files changed, 70 insertions(+), 158 deletions(-)
---
diff --git a/app/core/gimp.c b/app/core/gimp.c
index ab28202..be35791 100644
--- a/app/core/gimp.c
+++ b/app/core/gimp.c
@@ -593,7 +593,7 @@ gimp_real_initialize (Gimp *gimp,
gimp->dynamics_factory =
gimp_data_factory_new (gimp,
GIMP_TYPE_DYNAMICS,
- "dynamics-path", "dynamics-path-writable",
+ "brush-path", "brush-path-writable",
dynamics_loader_entries,
G_N_ELEMENTS (dynamics_loader_entries),
gimp_dynamics_new,
@@ -700,6 +700,7 @@ gimp_real_exit (Gimp *gimp,
gimp_tag_cache_save (gimp->tag_cache);
gimp_data_factory_data_save (gimp->brush_factory);
+ gimp_data_factory_data_save (gimp->dynamics_factory);
gimp_data_factory_data_save (gimp->pattern_factory);
gimp_data_factory_data_save (gimp->gradient_factory);
gimp_data_factory_data_save (gimp->palette_factory);
@@ -921,33 +922,37 @@ gimp_restore (Gimp *gimp,
status_callback (NULL, _("Brushes"), 0.1);
gimp_data_factory_data_init (gimp->brush_factory, gimp->no_data);
+ /* initialize the list of gimp dynamics */
+ status_callback (NULL, _("Dynamics"), 0.2);
+ gimp_data_factory_data_init (gimp->dynamics_factory, gimp->no_data);
+
/* initialize the list of gimp patterns */
- status_callback (NULL, _("Patterns"), 0.2);
+ status_callback (NULL, _("Patterns"), 0.3);
gimp_data_factory_data_init (gimp->pattern_factory, gimp->no_data);
/* initialize the list of gimp palettes */
- status_callback (NULL, _("Palettes"), 0.3);
+ status_callback (NULL, _("Palettes"), 0.4);
gimp_data_factory_data_init (gimp->palette_factory, gimp->no_data);
/* initialize the list of gimp gradients */
- status_callback (NULL, _("Gradients"), 0.4);
+ status_callback (NULL, _("Gradients"), 0.5);
gimp_data_factory_data_init (gimp->gradient_factory, gimp->no_data);
/* initialize the list of fonts */
- status_callback (NULL, _("Fonts (this may take a while)"), 0.5);
+ status_callback (NULL, _("Fonts (this may take a while)"), 0.6);
if (! gimp->no_fonts)
gimp_fonts_load (gimp);
/* initialize the template list */
- status_callback (NULL, _("Templates"), 0.6);
+ status_callback (NULL, _("Templates"), 0.7);
gimp_templates_load (gimp);
/* initialize the module list */
- status_callback (NULL, _("Modules"), 0.7);
+ status_callback (NULL, _("Modules"), 0.8);
gimp_modules_load (gimp);
/* update tag cache */
- status_callback (NULL, _("Updating tag cache"), 0.8);
+ status_callback (NULL, _("Updating tag cache"), 0.9);
gimp_tag_cache_load (gimp->tag_cache);
gimp_tag_cache_add_container (gimp->tag_cache,
gimp_data_factory_get_container (gimp->brush_factory));
diff --git a/app/core/gimpcontext.c b/app/core/gimpcontext.c
index 6eaf684..06b24c0 100644
--- a/app/core/gimpcontext.c
+++ b/app/core/gimpcontext.c
@@ -164,10 +164,10 @@ static void gimp_context_real_set_brush (GimpContext *context,
/* dynamics */
-static void gimp_context_dynamics_dirty (GimpDynamicsOptions *dynamics,
- GimpContext *context);
+static void gimp_context_dynamics_dirty (GimpDynamics *dynamics,
+ GimpContext *context);
static void gimp_context_dynamics_removed (GimpContainer *container,
- GimpDynamicsOptions *dynamics,
+ GimpDynamics *dynamics,
GimpContext *context);
static void gimp_context_dynamics_list_thaw (GimpContainer *container,
GimpContext *context);
@@ -351,7 +351,7 @@ static guint gimp_context_signals[LAST_SIGNAL] = { 0 };
static GimpToolInfo *standard_tool_info = NULL;
static GimpPaintInfo *standard_paint_info = NULL;
static GimpBrush *standard_brush = NULL;
-static GimpDynamicsOptions *standard_dynamics = NULL;
+static GimpDynamics *standard_dynamics = NULL;
static GimpPattern *standard_pattern = NULL;
static GimpGradient *standard_gradient = NULL;
static GimpPalette *standard_palette = NULL;
@@ -2491,6 +2491,7 @@ GimpDynamics *
gimp_context_get_dynamics (GimpContext *context)
{
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
+ g_return_val_if_fail (GIMP_IS_DYNAMICS (context->dynamics), NULL);
return context->dynamics;
}
@@ -2503,6 +2504,7 @@ gimp_context_set_dynamics (GimpContext *context,
g_return_if_fail (! dynamics || GIMP_IS_DYNAMICS (dynamics));
context_find_defined (context, GIMP_CONTEXT_PROP_DYNAMICS);
+ printf("setting&OK\n");
gimp_context_real_set_dynamics (context, dynamics);
}
@@ -2517,7 +2519,7 @@ gimp_context_dynamics_changed (GimpContext *context)
}
static void
-gimp_context_dynamics_dirty (GimpDynamicsOptions *dynamics,
+gimp_context_dynamics_dirty (GimpDynamics *dynamics,
GimpContext *context)
{
g_free (context->dynamics_name);
@@ -2525,7 +2527,7 @@ gimp_context_dynamics_dirty (GimpDynamicsOptions *dynamics,
}
static void gimp_context_dynamics_removed (GimpContainer *container,
- GimpDynamicsOptions *dynamics,
+ GimpDynamics *dynamics,
GimpContext *context)
{
if (dynamics == context->dynamics)
@@ -2546,7 +2548,7 @@ static void gimp_context_dynamics_removed (GimpContainer *container,
static void gimp_context_dynamics_list_thaw (GimpContainer *container,
GimpContext *context)
{
- GimpDynamicsOptions *dynamics;
+ GimpDynamics *dynamics;
/*
if (! context->dynamics_name)
context->dynamics_name = g_strdup (context->gimp->config->default_dynamics);
@@ -2563,11 +2565,18 @@ static void
gimp_context_real_set_dynamics (GimpContext *context,
GimpDynamics *dynamics)
{
+ g_return_val_if_fail (GIMP_IS_DYNAMICS (dynamics), NULL);
+
if (! standard_dynamics)
- standard_dynamics = GIMP_DYNAMICS (gimp_dynamics_get_standard ());
+ {
+ standard_dynamics = GIMP_DYNAMICS (gimp_dynamics_get_standard ());
+ }
if (context->dynamics == dynamics)
- return;
+ {
+ return;
+ }
+
if (context->dynamics_name && dynamics != standard_dynamics)
{
@@ -2575,7 +2584,7 @@ gimp_context_real_set_dynamics (GimpContext *context,
context->dynamics_name = NULL;
}
- /* disconnect from the old brush's signals */
+ /* disconnect from the old 's signals */
if (context->dynamics)
{
g_signal_handlers_disconnect_by_func (context->dynamics,
@@ -2586,6 +2595,7 @@ gimp_context_real_set_dynamics (GimpContext *context,
context->dynamics = dynamics;
+
if (dynamics)
{
g_object_ref (dynamics);
diff --git a/app/core/gimpdynamics.c b/app/core/gimpdynamics.c
index 0a62891..c2637f3 100644
--- a/app/core/gimpdynamics.c
+++ b/app/core/gimpdynamics.c
@@ -26,7 +26,6 @@
#include "paint/paint-types.h"
-
#include "gimp.h"
#include "gimpimage.h"
#include "gimpcurve.h"
@@ -146,7 +145,7 @@ static void gimp_dynamics_finalize (GObject *object);
static void gimp_dynamics_notify (GObject *object,
- GParamSpec *pspec);
+ GParamSpec *pspec);
static void gimp_dynamics_set_property (GObject *object,
guint property_id,
@@ -840,29 +839,11 @@ gimp_dynamics_get_property (GObject *object,
static void
gimp_dynamics_notify (GObject *object,
- GParamSpec *pspec)
+ GParamSpec *pspec)
{
-/*
- GimpDynamics *options = GIMP_DYNAMICS (object);
- if (pspec->param_id == PROP_USE_GRADIENT)
- {
- if (options->gradient_options->use_gradient)
- {
- options->application_mode_save = options->application_mode;
- options->application_mode = GIMP_PAINT_INCREMENTAL;
- }
- else
- {
- options->application_mode = options->application_mode_save;
- }
-
- g_object_notify (object, "application-mode");
- }
+ GimpDynamics *options = GIMP_DYNAMICS (object);
- if (G_OBJECT_CLASS (parent_class)->notify)
- G_OBJECT_CLASS (parent_class)->notify (object, pspec);
- */
}
diff --git a/app/paint/gimpbrushcore.c b/app/paint/gimpbrushcore.c
index a415250..5856396 100644
--- a/app/paint/gimpbrushcore.c
+++ b/app/paint/gimpbrushcore.c
@@ -378,12 +378,7 @@ gimp_brush_core_start (GimpPaintCore *paint_core,
GimpBrush *brush;
core->dynamics = gimp_context_get_dynamics (GIMP_CONTEXT (paint_options));
- /* If context does not have dynamics object for us, lets get standard*/
- if (!core->dynamics)
- {
- core->dynamics = GIMP_DYNAMICS(gimp_dynamics_get_standard());
- gimp_context_set_dynamics (GIMP_CONTEXT (paint_options), core->dynamics);
- }
+ printf("PC: %d\n", GIMP_CONTEXT (paint_options));
brush = gimp_context_get_brush (GIMP_CONTEXT (paint_options));
diff --git a/app/paint/gimppaintoptions.c b/app/paint/gimppaintoptions.c
index 2ced440..1b02acc 100644
--- a/app/paint/gimppaintoptions.c
+++ b/app/paint/gimppaintoptions.c
@@ -172,14 +172,6 @@ gimp_paint_options_class_init (GimpPaintOptionsClass *klass)
"jitter-amount", NULL,
0.0, 50.0, DEFAULT_JITTER_AMOUNT,
GIMP_PARAM_STATIC_STRINGS);
-/*(object_class, PROP_RANDOM_ASPECT_RATIO,
- "random-aspect-ratio", NULL,
- DEFAULT_RANDOM_ASPECT_RATIO,
- GIMP_PARAM_STATIC_STRINGS);
- GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_FADING_ASPECT_RATIO,
- "fading-aspect-ratio", NULL,
- DEFAULT_FADING_ASPECT_RATIO,
- GIMP_PARAM_STATIC_STRINGS);*/
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_GRADIENT,
"use-gradient", NULL,
DEFAULT_USE_GRADIENT,
diff --git a/app/widgets/gimpdynamicseditor.c b/app/widgets/gimpdynamicseditor.c
index dfbb3ca..8cd0daf 100644
--- a/app/widgets/gimpdynamicseditor.c
+++ b/app/widgets/gimpdynamicseditor.c
@@ -37,6 +37,8 @@
#include "core/gimp.h"
#include "core/gimpcontext.h"
+#include "libgimpconfig/gimpconfig.h"
+
#include "gimpdocked.h"
#include "gimpview.h"
#include "gimpviewrenderer.h"
@@ -90,9 +92,9 @@ static void gimp_dynamics_editor_set_data (GimpDataEditor *editor,
static void gimp_dynamics_editor_set_context (GimpDocked *docked,
GimpContext *context);
-
+/*
static void gimp_dynamics_editor_update_dynamics(GtkAdjustment *adjustment,
- GimpDynamicsEditor *editor);
+ GimpDynamicsEditor *editor);*/
static void gimp_dynamics_editor_notify_dynamics (GimpDynamics *options,
GParamSpec *pspec,
@@ -152,10 +154,7 @@ gimp_dynamics_editor_set_data (GimpDataEditor *editor,
GimpData *data)
{
GimpDynamicsEditor *dynamics_editor = GIMP_DYNAMICS_EDITOR (editor);
- //GimpBrushGeneratedShape shape = GIMP_BRUSH_GENERATED_CIRCLE;
- //gdouble radius = 0.0;
- gboolean pressure_hardness = DEFAULT_PRESSURE_HARDNESS;
if (editor->data)
g_signal_handlers_disconnect_by_func (editor->data,
@@ -174,111 +173,26 @@ gimp_dynamics_editor_set_data (GimpDataEditor *editor,
if (editor->data && GIMP_IS_DYNAMICS (editor->data))
{
GimpDynamics *options = GIMP_DYNAMICS (editor->data);
- // dynamics_editor->pressure_hardness_data = options->hardness_dynamics->pressure;
}
- //gtk_adjustment_set_value (dynamics_editor->pressure_hardness_data, pressure_hardness );
-
}
static void
gimp_dynamics_editor_notify_dynamics (GimpDynamics *options,
- GParamSpec *pspec,
- GimpDynamicsEditor *editor)
+ GParamSpec *pspec,
+ GimpDynamicsEditor *editor)
{
- GtkAdjustment *adj = NULL;
- gdouble value = 0.0;
-/*
- if (! strcmp (pspec->name, "pressure-hardness"))
- {
- g_signal_handlers_block_by_func (editor->pressure_hardness_data,
- gimp_brush_editor_update_shape,
- editor);
+ GimpDataEditor *data_editor = GIMP_DATA_EDITOR (editor);
- gimp_int_radio_group_set_active (GTK_RADIO_BUTTON (editor->shape_group),
- brush->shape);
+ g_return_val_if_fail (GIMP_IS_CONTEXT (data_editor->context), NULL);
- g_signal_handlers_unblock_by_func (editor->shape_group,
- gimp_brush_editor_update_shape,
- editor);
+ GimpDynamics *context_dyn = gimp_get_user_context(data_editor->context->gimp)->dynamics;
- adj = editor->radius_data;
- value = brush->radius;
- }
- else if (! strcmp (pspec->name, "radius"))
- {
- adj = editor->radius_data;
- value = brush->radius;
- }
- */
- if (adj)
- {
- g_signal_handlers_block_by_func (adj,
- gimp_dynamics_editor_update_dynamics,
- editor);
+ g_return_val_if_fail (GIMP_IS_DYNAMICS (context_dyn), NULL);
- gtk_adjustment_set_value (adj, value);
+ gimp_config_copy(options, context_dyn, 0);
+ printf("SET to context %d\n", gimp_get_user_context(data_editor->context->gimp));
- g_signal_handlers_unblock_by_func (adj,
- gimp_dynamics_editor_update_dynamics,
- editor);
- }
-}
-
-
-static void
-gimp_dynamics_editor_update_dynamics (GtkAdjustment *adjustment,
- GimpDynamicsEditor *editor)
-{
- GimpDynamics *dynamics;
- gboolean pressure_hardness;
- /*gint spikes;
- gdouble hardness;
- gdouble ratio;
- gdouble angle;
- gdouble spacing;
-*/
- if (! GIMP_IS_DYNAMICS (GIMP_DATA_EDITOR (editor)->data))
- return;
-
- dynamics = GIMP_DYNAMICS (GIMP_DATA_EDITOR (editor)->data);
-
- //pressure_hardness = gtk_adjustment_get_value (editor->pressure_hardness_data);
- /*spikes = ROUND (gtk_adjustment_get_value (editor->spikes_data));
- hardness = gtk_adjustment_get_value (editor->hardness_data);
- ratio = gtk_adjustment_get_value (editor->aspect_ratio_data);
- angle = gtk_adjustment_get_value (editor->angle_data);
- spacing = gtk_adjustment_get_value (editor->spacing_data);
-*/
- if (pressure_hardness != DEFAULT_PRESSURE_HARDNESS)
- /*||
- spikes != gimp_brush_generated_get_spikes (brush) ||
- hardness != gimp_brush_generated_get_hardness (brush) ||
- ratio != gimp_brush_generated_get_aspect_ratio (brush) ||
- angle != gimp_brush_generated_get_angle (brush) ||
- spacing != gimp_brush_get_spacing (GIMP_BRUSH (brush)))
- */{
- g_signal_handlers_block_by_func (dynamics,
- gimp_dynamics_editor_notify_dynamics,
- editor);
-
- gimp_data_freeze (GIMP_DATA (dynamics));
- g_object_freeze_notify (G_OBJECT (dynamics));
-/*
- gimp_brush_generated_set_radius (brush, radius);
- gimp_brush_generated_set_spikes (brush, spikes);
- gimp_brush_generated_set_hardness (brush, hardness);
- gimp_brush_generated_set_aspect_ratio (brush, ratio);
- gimp_brush_generated_set_angle (brush, angle);
- gimp_brush_set_spacing (GIMP_BRUSH (brush), spacing);
-*/
- g_object_thaw_notify (G_OBJECT (dynamics));
- gimp_data_thaw (GIMP_DATA (dynamics));
-
- g_signal_handlers_unblock_by_func (dynamics,
- gimp_dynamics_editor_notify_dynamics,
- editor);
- }
}
@@ -316,6 +230,11 @@ gimp_dynamics_editor_new (GimpContext *context,
"data", gimp_context_get_dynamics (context),
NULL);
+
+ g_signal_connect (editor->dynamics_model, "notify",
+ G_CALLBACK (gimp_dynamics_editor_notify_dynamics),
+ editor);
+
return editor;
}
@@ -342,18 +261,20 @@ gimp_dynamics_editor_init (GimpDynamicsEditor *editor)
GimpDynamics *dynamics = editor->dynamics_model;
+ GtkWidget *frame;
+ GtkWidget *box;
+
GtkWidget *vbox;
GtkWidget *table;
GtkWidget *label;
gint n_dynamics = 0;
GtkWidget *dynamics_labels[7];
- //GObject *config = get_config_value (editor);
- //GObject *config = G_OBJECT(editor->data);
GObject *config = G_OBJECT(dynamics);
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (data_editor), vbox, TRUE, TRUE, 0);
- gtk_widget_show (vbox);
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (editor), frame, TRUE, TRUE, 0);
+ gtk_widget_show (frame);
data_editor->view = gimp_view_new_full_by_types (NULL,
GIMP_TYPE_VIEW,
@@ -361,11 +282,19 @@ gimp_dynamics_editor_init (GimpDynamicsEditor *editor)
DYNAMICS_VIEW_SIZE,
DYNAMICS_VIEW_SIZE, 0,
FALSE, FALSE, TRUE);
+
gtk_widget_set_size_request (data_editor->view, -1, DYNAMICS_VIEW_SIZE);
gimp_view_set_expand (GIMP_VIEW (data_editor->view), TRUE);
- gtk_container_add (GTK_CONTAINER (vbox), data_editor->view);
+ gtk_container_add (GTK_CONTAINER (frame), data_editor->view);
gtk_widget_show (data_editor->view);
+
+
+ vbox = gtk_vbox_new (FALSE, 6);
+ gtk_container_add (GTK_CONTAINER (data_editor->view), vbox);
+ //gtk_box_pack_start (GTK_BOX (data_editor), vbox, TRUE, TRUE, 0);
+ gtk_widget_show (vbox);
+
//n_dynamics = 5;
dynamics_labels[n_dynamics] = gtk_label_new (_("Opacity"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]