[gimp/soc-2011-seamless-clone2] Bug 397359 - Can't access color management parameters
- From: Clayton Walker <claytonw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/soc-2011-seamless-clone2] Bug 397359 - Can't access color management parameters
- Date: Wed, 8 May 2013 15:05:36 +0000 (UTC)
commit 19e0db18fe46da245d182428426f9b2c5c33afe4
Author: Michael Natterer <mitch gimp org>
Date: Wed Mar 13 10:37:25 2013 +0100
Bug 397359 - Can't access color management parameters
Create all display filters with "color-config" and "color-managed"
parameters set, not only the automatically added color management
display filter. This way we don't only support removing and adding the
filter again, but also support potential other color management
modules.
app/display/gimpdisplayshell-filter-dialog.c | 11 +++++++-
app/widgets/gimpcolordisplayeditor.c | 30 +++++++++++++++++++++++--
app/widgets/gimpcolordisplayeditor.h | 6 ++++-
3 files changed, 41 insertions(+), 6 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-filter-dialog.c b/app/display/gimpdisplayshell-filter-dialog.c
index b181d1b..bdaa9be 100644
--- a/app/display/gimpdisplayshell-filter-dialog.c
+++ b/app/display/gimpdisplayshell-filter-dialog.c
@@ -20,10 +20,13 @@
#include <gegl.h>
#include <gtk/gtk.h>
+#include "libgimpcolor/gimpcolor.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "display-types.h"
+#include "config/gimpcoreconfig.h"
+
#include "core/gimp.h"
#include "core/gimpimage.h"
@@ -62,13 +65,15 @@ static void gimp_display_shell_filter_dialog_free (ColorDisplayDialog *cdd);
GtkWidget *
gimp_display_shell_filter_dialog_new (GimpDisplayShell *shell)
{
+ GimpDisplayConfig *config;
GimpImage *image;
ColorDisplayDialog *cdd;
GtkWidget *editor;
g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), NULL);
- image = gimp_display_get_image (shell->display);
+ config = shell->display->config;
+ image = gimp_display_get_image (shell->display);
cdd = g_slice_new0 (ColorDisplayDialog);
@@ -117,7 +122,9 @@ gimp_display_shell_filter_dialog_new (GimpDisplayShell *shell)
g_object_unref (stack);
}
- editor = gimp_color_display_editor_new (shell->filter_stack);
+ editor = gimp_color_display_editor_new (shell->filter_stack,
+ GIMP_CORE_CONFIG (config)->color_management,
+ GIMP_COLOR_MANAGED (shell));
gtk_container_set_border_width (GTK_CONTAINER (editor), 12);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (cdd->dialog))),
editor, TRUE, TRUE, 0);
diff --git a/app/widgets/gimpcolordisplayeditor.c b/app/widgets/gimpcolordisplayeditor.c
index 3b8c875..9e842ea 100644
--- a/app/widgets/gimpcolordisplayeditor.c
+++ b/app/widgets/gimpcolordisplayeditor.c
@@ -20,8 +20,11 @@
#include "config.h"
+#include <gegl.h>
#include <gtk/gtk.h>
+#include "libgimpcolor/gimpcolor.h"
+#include "libgimpconfig/gimpconfig.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "widgets-types.h"
@@ -347,11 +350,25 @@ gimp_color_display_editor_dispose (GObject *object)
editor->stack = NULL;
}
+ if (editor->config)
+ {
+ g_object_unref (editor->config);
+ editor->config = NULL;
+ }
+
+ if (editor->managed)
+ {
+ g_object_unref (editor->managed);
+ editor->managed = NULL;
+ }
+
G_OBJECT_CLASS (parent_class)->dispose (object);
}
GtkWidget *
-gimp_color_display_editor_new (GimpColorDisplayStack *stack)
+gimp_color_display_editor_new (GimpColorDisplayStack *stack,
+ GimpColorConfig *config,
+ GimpColorManaged *managed)
{
GimpColorDisplayEditor *editor;
GType *display_types;
@@ -360,10 +377,14 @@ gimp_color_display_editor_new (GimpColorDisplayStack *stack)
GList *list;
g_return_val_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack), NULL);
+ g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
+ g_return_val_if_fail (GIMP_IS_COLOR_MANAGED (managed), NULL);
editor = g_object_new (GIMP_TYPE_COLOR_DISPLAY_EDITOR, NULL);
- editor->stack = g_object_ref (stack);
+ editor->stack = g_object_ref (stack);
+ editor->config = g_object_ref (config);
+ editor->managed = g_object_ref (managed);
display_types = g_type_children (GIMP_TYPE_COLOR_DISPLAY, &n_display_types);
@@ -441,7 +462,10 @@ gimp_color_display_editor_add_clicked (GtkWidget *widget,
gtk_tree_model_get (model, &iter, SRC_COLUMN_TYPE, &type, -1);
- display = g_object_new (type, NULL);
+ display = g_object_new (type,
+ "color-config", editor->config,
+ "color-managed", editor->managed,
+ NULL);
if (display)
{
diff --git a/app/widgets/gimpcolordisplayeditor.h b/app/widgets/gimpcolordisplayeditor.h
index 046b549..e81d8fe 100644
--- a/app/widgets/gimpcolordisplayeditor.h
+++ b/app/widgets/gimpcolordisplayeditor.h
@@ -37,6 +37,8 @@ struct _GimpColorDisplayEditor
GtkBox parent_instance;
GimpColorDisplayStack *stack;
+ GimpColorConfig *config;
+ GimpColorManaged *managed;
GtkListStore *src;
GtkListStore *dest;
@@ -67,7 +69,9 @@ struct _GimpColorDisplayEditorClass
GType gimp_color_display_editor_get_type (void) G_GNUC_CONST;
-GtkWidget * gimp_color_display_editor_new (GimpColorDisplayStack *stack);
+GtkWidget * gimp_color_display_editor_new (GimpColorDisplayStack *stack,
+ GimpColorConfig *config,
+ GimpColorManaged *managed);
#endif /* __GIMP_COLOR_DISPLAY_EDITOR_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]