[gimp/soc-2009-dynamics] Make sure changes dynamics are properly saved to disk
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp/soc-2009-dynamics] Make sure changes dynamics are properly saved to disk
- Date: Sun, 11 Oct 2009 19:41:02 +0000 (UTC)
commit c8db73493240b14213c826c2056ab61f86b4d44e
Author: Michael Natterer <mitch gimp org>
Date: Sun Oct 11 21:39:46 2009 +0200
Make sure changes dynamics are properly saved to disk
Implement GObject::dispatch_properties_changed() and call
gimp_data_dirty() if a serializable property changed.
app/core/gimpdynamics.c | 35 ++++++++++++++++++++++++++++++-----
1 files changed, 30 insertions(+), 5 deletions(-)
---
diff --git a/app/core/gimpdynamics.c b/app/core/gimpdynamics.c
index d67c444..ceb38e3 100644
--- a/app/core/gimpdynamics.c
+++ b/app/core/gimpdynamics.c
@@ -61,6 +61,10 @@ static void gimp_dynamics_get_property (GObject *object,
guint property_id,
GValue *value,
GParamSpec *pspec);
+static void
+ gimp_dynamics_dispatch_properties_changed (GObject *object,
+ guint n_pspecs,
+ GParamSpec **pspecs);
static const gchar * gimp_dynamics_get_extension (GimpData *data);
@@ -84,12 +88,13 @@ gimp_dynamics_class_init (GimpDynamicsClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GimpDataClass *data_class = GIMP_DATA_CLASS (klass);
- object_class->finalize = gimp_dynamics_finalize;
- object_class->set_property = gimp_dynamics_set_property;
- object_class->get_property = gimp_dynamics_get_property;
+ object_class->finalize = gimp_dynamics_finalize;
+ object_class->set_property = gimp_dynamics_set_property;
+ object_class->get_property = gimp_dynamics_get_property;
+ object_class->dispatch_properties_changed = gimp_dynamics_dispatch_properties_changed;
- data_class->save = gimp_dynamics_save;
- data_class->get_extension = gimp_dynamics_get_extension;
+ data_class->save = gimp_dynamics_save;
+ data_class->get_extension = gimp_dynamics_get_extension;
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_NAME,
"name", NULL,
@@ -296,6 +301,26 @@ gimp_dynamics_get_property (GObject *object,
}
}
+static void
+gimp_dynamics_dispatch_properties_changed (GObject *object,
+ guint n_pspecs,
+ GParamSpec **pspecs)
+{
+ gint i;
+
+ G_OBJECT_CLASS (parent_class)->dispatch_properties_changed (object,
+ n_pspecs, pspecs);
+
+ for (i = 0; i < n_pspecs; i++)
+ {
+ if (pspecs[i]->flags & GIMP_CONFIG_PARAM_SERIALIZE)
+ {
+ gimp_data_dirty (GIMP_DATA (object));
+ break;
+ }
+ }
+}
+
static const gchar *
gimp_dynamics_get_extension (GimpData *data)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]