app: add a GimpColorConfig to GimpDisplayShell
Use the shell's color config for color managing the display and various auxiliary widgets attached to it, like the notebook tab widget and navigation popup. The config is currently just a reference to the global prefs config, so no behavior changed.
This commit is contained in:
@ -25,10 +25,8 @@
|
||||
|
||||
#include "display-types.h"
|
||||
|
||||
#include "config/gimpcoreconfig.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpviewable.h"
|
||||
|
||||
#include "widgets/gimpcolordisplayeditor.h"
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
@ -65,15 +63,13 @@ 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);
|
||||
|
||||
config = shell->display->config;
|
||||
image = gimp_display_get_image (shell->display);
|
||||
image = gimp_display_get_image (shell->display);
|
||||
|
||||
cdd = g_slice_new0 (ColorDisplayDialog);
|
||||
|
||||
@ -123,7 +119,7 @@ gimp_display_shell_filter_dialog_new (GimpDisplayShell *shell)
|
||||
}
|
||||
|
||||
editor = gimp_color_display_editor_new (shell->filter_stack,
|
||||
GIMP_CORE_CONFIG (config)->color_management,
|
||||
gimp_display_shell_get_color_config (shell),
|
||||
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))),
|
||||
|
@ -20,13 +20,10 @@
|
||||
#include <gegl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpconfig/gimpconfig.h"
|
||||
#include "libgimpwidgets/gimpwidgets.h"
|
||||
|
||||
#include "display-types.h"
|
||||
|
||||
#include "config/gimpcoreconfig.h"
|
||||
|
||||
#include "gimpdisplayshell.h"
|
||||
#include "gimpdisplayshell-expose.h"
|
||||
#include "gimpdisplayshell-filter.h"
|
||||
@ -83,11 +80,9 @@ gimp_display_shell_has_filter (GimpDisplayShell *shell)
|
||||
}
|
||||
|
||||
GimpColorDisplayStack *
|
||||
gimp_display_shell_filter_new (GimpDisplayShell *shell,
|
||||
GimpColorConfig *config)
|
||||
gimp_display_shell_filter_new (GimpDisplayShell *shell)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), NULL);
|
||||
g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
|
||||
|
||||
#if 0
|
||||
/* disabled because we use gimpdisplayshell-profile now, keep
|
||||
|
@ -25,8 +25,7 @@ void gimp_display_shell_filter_set (GimpDisplayShell *shell,
|
||||
gboolean gimp_display_shell_has_filter (GimpDisplayShell *shell);
|
||||
|
||||
GimpColorDisplayStack *
|
||||
gimp_display_shell_filter_new (GimpDisplayShell *shell,
|
||||
GimpColorConfig *config);
|
||||
gimp_display_shell_filter_new (GimpDisplayShell *shell);
|
||||
|
||||
|
||||
#endif /* __GIMP_DISPLAY_SHELL_FILTER_H__ */
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "core/gimplayer.h"
|
||||
|
||||
#include "widgets/gimpview.h"
|
||||
#include "widgets/gimpviewrenderer.h"
|
||||
|
||||
#include "gimpdisplay.h"
|
||||
#include "gimpdisplayshell.h"
|
||||
@ -54,16 +55,17 @@ typedef struct
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
static LayerSelect * layer_select_new (GimpImage *image,
|
||||
GimpLayer *layer,
|
||||
gint view_size);
|
||||
static void layer_select_destroy (LayerSelect *layer_select,
|
||||
guint32 time);
|
||||
static void layer_select_advance (LayerSelect *layer_select,
|
||||
gint move);
|
||||
static gboolean layer_select_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
LayerSelect *layer_select);
|
||||
static LayerSelect * layer_select_new (GimpDisplayShell *shell,
|
||||
GimpImage *image,
|
||||
GimpLayer *layer,
|
||||
gint view_size);
|
||||
static void layer_select_destroy (LayerSelect *layer_select,
|
||||
guint32 time);
|
||||
static void layer_select_advance (LayerSelect *layer_select,
|
||||
gint move);
|
||||
static gboolean layer_select_events (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
LayerSelect *layer_select);
|
||||
|
||||
|
||||
/* public functions */
|
||||
@ -86,7 +88,7 @@ gimp_display_shell_layer_select_init (GimpDisplayShell *shell,
|
||||
if (! layer)
|
||||
return;
|
||||
|
||||
layer_select = layer_select_new (image, layer,
|
||||
layer_select = layer_select_new (shell, image, layer,
|
||||
image->gimp->config->layer_preview_size);
|
||||
layer_select_advance (layer_select, move);
|
||||
|
||||
@ -102,9 +104,10 @@ gimp_display_shell_layer_select_init (GimpDisplayShell *shell,
|
||||
/* private functions */
|
||||
|
||||
static LayerSelect *
|
||||
layer_select_new (GimpImage *image,
|
||||
GimpLayer *layer,
|
||||
gint view_size)
|
||||
layer_select_new (GimpDisplayShell *shell,
|
||||
GimpImage *image,
|
||||
GimpLayer *layer,
|
||||
gint view_size)
|
||||
{
|
||||
LayerSelect *layer_select;
|
||||
GtkWidget *frame1;
|
||||
@ -155,6 +158,8 @@ layer_select_new (GimpImage *image,
|
||||
GIMP_TYPE_VIEW,
|
||||
GIMP_TYPE_LAYER,
|
||||
view_size, 1, FALSE);
|
||||
gimp_view_renderer_set_color_config (GIMP_VIEW (layer_select->view)->renderer,
|
||||
gimp_display_shell_get_color_config (shell));
|
||||
gimp_view_set_viewable (GIMP_VIEW (layer_select->view),
|
||||
GIMP_VIEWABLE (layer));
|
||||
gtk_container_add (GTK_CONTAINER (alignment), layer_select->view);
|
||||
|
@ -30,8 +30,6 @@
|
||||
|
||||
#include "display-types.h"
|
||||
|
||||
#include "config/gimpcoreconfig.h"
|
||||
|
||||
#include "gegl/gimp-babl.h"
|
||||
|
||||
#include "core/gimpimage.h"
|
||||
@ -70,7 +68,6 @@ void
|
||||
gimp_display_shell_profile_update (GimpDisplayShell *shell)
|
||||
{
|
||||
GimpImage *image;
|
||||
GimpColorConfig *config;
|
||||
GimpColorProfile *src_profile;
|
||||
const Babl *src_format;
|
||||
const Babl *dest_format;
|
||||
@ -84,8 +81,6 @@ gimp_display_shell_profile_update (GimpDisplayShell *shell)
|
||||
if (! image)
|
||||
return;
|
||||
|
||||
config = GIMP_CORE_CONFIG (shell->display->config)->color_management;
|
||||
|
||||
src_profile = gimp_color_managed_get_color_profile (GIMP_COLOR_MANAGED (shell));
|
||||
|
||||
if (! src_profile)
|
||||
@ -112,7 +107,7 @@ gimp_display_shell_profile_update (GimpDisplayShell *shell)
|
||||
|
||||
shell->profile_transform =
|
||||
gimp_widget_get_color_transform (gtk_widget_get_toplevel (GTK_WIDGET (shell)),
|
||||
config,
|
||||
gimp_display_shell_get_color_config (shell),
|
||||
src_profile,
|
||||
&src_format,
|
||||
&dest_format);
|
||||
|
@ -405,6 +405,8 @@ gimp_display_shell_constructed (GObject *object)
|
||||
config = shell->display->config;
|
||||
image = gimp_display_get_image (shell->display);
|
||||
|
||||
shell->color_config = g_object_ref (GIMP_CORE_CONFIG (config)->color_management);
|
||||
|
||||
if (image)
|
||||
{
|
||||
image_width = gimp_image_get_width (image);
|
||||
@ -745,10 +747,9 @@ gimp_display_shell_constructed (GObject *object)
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (shell->canvas));
|
||||
|
||||
/* add display filter for color management */
|
||||
/* add display filters */
|
||||
|
||||
filter = gimp_display_shell_filter_new (shell,
|
||||
GIMP_CORE_CONFIG (config)->color_management);
|
||||
filter = gimp_display_shell_filter_new (shell);
|
||||
|
||||
if (filter)
|
||||
{
|
||||
@ -816,6 +817,12 @@ gimp_display_shell_dispose (GObject *object)
|
||||
shell->checkerboard = NULL;
|
||||
}
|
||||
|
||||
if (shell->color_config)
|
||||
{
|
||||
g_object_unref (shell->color_config);
|
||||
shell->color_config = NULL;
|
||||
}
|
||||
|
||||
gimp_display_shell_profile_dispose (shell);
|
||||
|
||||
if (shell->filter_buffer)
|
||||
@ -1377,6 +1384,14 @@ gimp_display_shell_get_statusbar (GimpDisplayShell *shell)
|
||||
return GIMP_STATUSBAR (shell->statusbar);
|
||||
}
|
||||
|
||||
GimpColorConfig *
|
||||
gimp_display_shell_get_color_config (GimpDisplayShell *shell)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), NULL);
|
||||
|
||||
return shell->color_config;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_display_shell_present (GimpDisplayShell *shell)
|
||||
{
|
||||
|
@ -150,6 +150,8 @@ struct _GimpDisplayShell
|
||||
GtkWidget *nav_popup; /* navigation popup */
|
||||
GtkWidget *grid_dialog; /* grid configuration dialog */
|
||||
|
||||
GimpColorConfig *color_config; /* color management settings */
|
||||
|
||||
GimpColorTransform profile_transform;
|
||||
const Babl *profile_src_format;
|
||||
const Babl *profile_dest_format;
|
||||
@ -253,6 +255,9 @@ void gimp_display_shell_move_overlay (GimpDisplayShell *shell,
|
||||
GimpImageWindow * gimp_display_shell_get_window (GimpDisplayShell *shell);
|
||||
GimpStatusbar * gimp_display_shell_get_statusbar (GimpDisplayShell *shell);
|
||||
|
||||
GimpColorConfig * gimp_display_shell_get_color_config
|
||||
(GimpDisplayShell *shell);
|
||||
|
||||
void gimp_display_shell_present (GimpDisplayShell *shell);
|
||||
|
||||
void gimp_display_shell_reconnect (GimpDisplayShell *shell);
|
||||
|
@ -54,6 +54,7 @@
|
||||
#include "widgets/gimptoolbox.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
#include "widgets/gimpview.h"
|
||||
#include "widgets/gimpviewrenderer.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "gimpdisplay.h"
|
||||
@ -2297,6 +2298,8 @@ gimp_image_window_create_tab_label (GimpImageWindow *window,
|
||||
GIMP_TYPE_VIEW, GIMP_TYPE_IMAGE,
|
||||
GIMP_VIEW_SIZE_LARGE, 0, FALSE);
|
||||
gtk_widget_set_size_request (view, GIMP_VIEW_SIZE_LARGE, -1);
|
||||
gimp_view_renderer_set_color_config (GIMP_VIEW (view)->renderer,
|
||||
gimp_display_shell_get_color_config (shell));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), view, FALSE, FALSE, 0);
|
||||
gtk_widget_show (view);
|
||||
|
||||
|
@ -365,6 +365,8 @@ gimp_navigation_editor_new_private (GimpMenuFactory *menu_factory,
|
||||
view->renderer->border_width);
|
||||
gimp_view_renderer_set_context (view->renderer,
|
||||
gimp_get_user_context (gimp));
|
||||
gimp_view_renderer_set_color_config (view->renderer,
|
||||
gimp_display_shell_get_color_config (shell));
|
||||
|
||||
gimp_navigation_editor_set_shell (editor, shell);
|
||||
|
||||
|
Reference in New Issue
Block a user