[gimp] app: add a GimpColorConfig member to GimpViewRenderer
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add a GimpColorConfig member to GimpViewRenderer
- Date: Fri, 13 May 2016 22:32:17 +0000 (UTC)
commit 9bbc52c1be6dad046ee77f0e01ca5cd4a76481f6
Author: Michael Natterer <mitch gimp org>
Date: Sat May 14 00:28:15 2016 +0200
app: add a GimpColorConfig member to GimpViewRenderer
and use it if set to create the display transform, otherwise use the
global config from prefs.
app/widgets/gimpviewrenderer.c | 34 ++++++++++++++++++++++++++++++++--
app/widgets/gimpviewrenderer.h | 2 ++
2 files changed, 34 insertions(+), 2 deletions(-)
---
diff --git a/app/widgets/gimpviewrenderer.c b/app/widgets/gimpviewrenderer.c
index e6b793b..550060e 100644
--- a/app/widgets/gimpviewrenderer.c
+++ b/app/widgets/gimpviewrenderer.c
@@ -29,6 +29,7 @@
#include <gtk/gtk.h>
#include "libgimpcolor/gimpcolor.h"
+#include "libgimpconfig/gimpconfig.h"
#include "libgimpmath/gimpmath.h"
#include "libgimpbase/gimpbase.h"
#include "libgimpwidgets/gimpwidgets.h"
@@ -67,6 +68,7 @@ struct _GimpViewRendererPrivate
GdkPixbuf *pixbuf;
gchar *bg_icon_name;
+ GimpColorConfig *color_config;
GimpColorTransform profile_transform;
const Babl *profile_src_format;
const Babl *profile_dest_format;
@@ -198,6 +200,9 @@ gimp_view_renderer_dispose (GObject *object)
if (renderer->context)
gimp_view_renderer_set_context (renderer, NULL);
+ if (renderer->priv->color_config)
+ gimp_view_renderer_set_color_config (renderer, NULL);
+
gimp_view_renderer_remove_idle (renderer);
G_OBJECT_CLASS (parent_class)->dispose (object);
@@ -567,6 +572,28 @@ gimp_view_renderer_set_background (GimpViewRenderer *renderer,
}
void
+gimp_view_renderer_set_color_config (GimpViewRenderer *renderer,
+ GimpColorConfig *color_config)
+{
+ g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer));
+ g_return_if_fail (color_config == NULL || GIMP_IS_COLOR_CONFIG (color_config));
+
+ if (color_config != renderer->priv->color_config)
+ {
+ if (renderer->priv->color_config)
+ g_object_unref (renderer->priv->color_config);
+
+ renderer->priv->color_config = color_config;
+
+ if (renderer->priv->color_config)
+ g_object_ref (renderer->priv->color_config);
+
+ if (renderer->viewable)
+ gimp_view_renderer_profile_changed (renderer, renderer->viewable);
+ }
+}
+
+void
gimp_view_renderer_invalidate (GimpViewRenderer *renderer)
{
g_return_if_fail (GIMP_IS_VIEW_RENDERER (renderer));
@@ -1281,10 +1308,13 @@ gimp_view_renderer_transform_create (GimpViewRenderer *renderer,
if (profile)
{
- GimpContext *context = renderer->context;
- GimpColorConfig *config = context->gimp->config->color_management;
+ GimpColorConfig *config = renderer->priv->color_config;
+
+ if (! config)
+ config = renderer->context->gimp->config->color_management;
renderer->priv->profile_src_format = gegl_buffer_get_format (src_buffer);
+
renderer->priv->profile_dest_format = gegl_buffer_get_format (dest_buffer);
renderer->priv->profile_transform =
diff --git a/app/widgets/gimpviewrenderer.h b/app/widgets/gimpviewrenderer.h
index 830951a..90554df 100644
--- a/app/widgets/gimpviewrenderer.h
+++ b/app/widgets/gimpviewrenderer.h
@@ -123,6 +123,8 @@ void gimp_view_renderer_set_border_color (GimpViewRenderer *renderer,
const GimpRGB *border_color);
void gimp_view_renderer_set_background (GimpViewRenderer *renderer,
const gchar *icon_name);
+void gimp_view_renderer_set_color_config (GimpViewRenderer *renderer,
+ GimpColorConfig *color_config);
void gimp_view_renderer_invalidate (GimpViewRenderer *renderer);
void gimp_view_renderer_update (GimpViewRenderer *renderer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]