add "use-gegl" property but don't serialize it.
2008-01-04 Michael Natterer <mitch@gimp.org> * app/config/gimpcoreconfig.[ch]: add "use-gegl" property but don't serialize it. * app/widgets/gimptoolbox.c: add super ugly "Use GEGL" toggle to the toolbox so we don't need to have prefs open all the time when experimenting with gegl. * app/tools/gimpimagemaptool.[ch]: remove "Use GEGL" toggle from the tool dialogs and connect to the config property instead. * app/core/gimpdrawable-desaturate.c * app/core/gimpdrawable-invert.c: made them runtime-switchable by looking at the config property. svn path=/trunk/; revision=24530
This commit is contained in:

committed by
Michael Natterer

parent
d1719638db
commit
dd97e60591
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
|||||||
|
2008-01-04 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* app/config/gimpcoreconfig.[ch]: add "use-gegl" property but
|
||||||
|
don't serialize it.
|
||||||
|
|
||||||
|
* app/widgets/gimptoolbox.c: add super ugly "Use GEGL" toggle to
|
||||||
|
the toolbox so we don't need to have prefs open all the time when
|
||||||
|
experimenting with gegl.
|
||||||
|
|
||||||
|
* app/tools/gimpimagemaptool.[ch]: remove "Use GEGL" toggle from
|
||||||
|
the tool dialogs and connect to the config property instead.
|
||||||
|
|
||||||
|
* app/core/gimpdrawable-desaturate.c
|
||||||
|
* app/core/gimpdrawable-invert.c: made them runtime-switchable by
|
||||||
|
looking at the config property.
|
||||||
|
|
||||||
2008-01-04 Michael Natterer <mitch@gimp.org>
|
2008-01-04 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
* app/gegl/Makefile.am
|
* app/gegl/Makefile.am
|
||||||
|
@ -89,7 +89,8 @@ enum
|
|||||||
PROP_MIN_COLORS,
|
PROP_MIN_COLORS,
|
||||||
PROP_COLOR_MANAGEMENT,
|
PROP_COLOR_MANAGEMENT,
|
||||||
PROP_COLOR_PROFILE_POLICY,
|
PROP_COLOR_PROFILE_POLICY,
|
||||||
PROP_SAVE_DOCUMENT_HISTORY
|
PROP_SAVE_DOCUMENT_HISTORY,
|
||||||
|
PROP_USE_GEGL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -358,6 +359,15 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
|
|||||||
SAVE_DOCUMENT_HISTORY_BLURB,
|
SAVE_DOCUMENT_HISTORY_BLURB,
|
||||||
TRUE,
|
TRUE,
|
||||||
GIMP_PARAM_STATIC_STRINGS);
|
GIMP_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
|
/* not serialized */
|
||||||
|
g_object_class_install_property (object_class, PROP_USE_GEGL,
|
||||||
|
g_param_spec_boolean ("use-gegl",
|
||||||
|
"Use GEGL",
|
||||||
|
"Use GEGL",
|
||||||
|
TRUE,
|
||||||
|
GIMP_PARAM_READWRITE |
|
||||||
|
G_PARAM_CONSTRUCT));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -578,6 +588,9 @@ gimp_core_config_set_property (GObject *object,
|
|||||||
case PROP_SAVE_DOCUMENT_HISTORY:
|
case PROP_SAVE_DOCUMENT_HISTORY:
|
||||||
core_config->save_document_history = g_value_get_boolean (value);
|
core_config->save_document_history = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_USE_GEGL:
|
||||||
|
core_config->use_gegl = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
@ -718,6 +731,9 @@ gimp_core_config_get_property (GObject *object,
|
|||||||
case PROP_SAVE_DOCUMENT_HISTORY:
|
case PROP_SAVE_DOCUMENT_HISTORY:
|
||||||
g_value_set_boolean (value, core_config->save_document_history);
|
g_value_set_boolean (value, core_config->save_document_history);
|
||||||
break;
|
break;
|
||||||
|
case PROP_USE_GEGL:
|
||||||
|
g_value_set_boolean (value, core_config->use_gegl);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
|
@ -81,6 +81,7 @@ struct _GimpCoreConfig
|
|||||||
GimpColorConfig *color_management;
|
GimpColorConfig *color_management;
|
||||||
GimpColorProfilePolicy color_profile_policy;
|
GimpColorProfilePolicy color_profile_policy;
|
||||||
gboolean save_document_history;
|
gboolean save_document_history;
|
||||||
|
gboolean use_gegl;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GimpCoreConfigClass
|
struct _GimpCoreConfigClass
|
||||||
|
@ -27,6 +27,11 @@
|
|||||||
#include "base/pixel-processor.h"
|
#include "base/pixel-processor.h"
|
||||||
#include "base/pixel-region.h"
|
#include "base/pixel-region.h"
|
||||||
|
|
||||||
|
/* temp */
|
||||||
|
#include "config/gimpcoreconfig.h"
|
||||||
|
#include "gimp.h"
|
||||||
|
#include "gimpimage.h"
|
||||||
|
|
||||||
#include "gimpdrawable.h"
|
#include "gimpdrawable.h"
|
||||||
#include "gimpdrawable-desaturate.h"
|
#include "gimpdrawable-desaturate.h"
|
||||||
#include "gimpdrawable-operation.h"
|
#include "gimpdrawable-operation.h"
|
||||||
@ -34,9 +39,6 @@
|
|||||||
#include "gimp-intl.h"
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
static gboolean enable_gegl = TRUE;
|
|
||||||
|
|
||||||
|
|
||||||
static void desaturate_region_lightness (gpointer data,
|
static void desaturate_region_lightness (gpointer data,
|
||||||
PixelRegion *srcPR,
|
PixelRegion *srcPR,
|
||||||
PixelRegion *destPR);
|
PixelRegion *destPR);
|
||||||
@ -58,7 +60,7 @@ gimp_drawable_desaturate (GimpDrawable *drawable,
|
|||||||
g_return_if_fail (gimp_drawable_is_rgb (drawable));
|
g_return_if_fail (gimp_drawable_is_rgb (drawable));
|
||||||
g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)));
|
g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)));
|
||||||
|
|
||||||
if (enable_gegl)
|
if (GIMP_ITEM (drawable)->image->gimp->config->use_gegl)
|
||||||
{
|
{
|
||||||
GeglNode *desaturate;
|
GeglNode *desaturate;
|
||||||
|
|
||||||
|
@ -27,6 +27,11 @@
|
|||||||
#include "base/pixel-processor.h"
|
#include "base/pixel-processor.h"
|
||||||
#include "base/pixel-region.h"
|
#include "base/pixel-region.h"
|
||||||
|
|
||||||
|
/* temp */
|
||||||
|
#include "config/gimpcoreconfig.h"
|
||||||
|
#include "gimp.h"
|
||||||
|
#include "gimpimage.h"
|
||||||
|
|
||||||
#include "gimpdrawable.h"
|
#include "gimpdrawable.h"
|
||||||
#include "gimpdrawable-invert.h"
|
#include "gimpdrawable-invert.h"
|
||||||
#include "gimpdrawable-operation.h"
|
#include "gimpdrawable-operation.h"
|
||||||
@ -35,9 +40,6 @@
|
|||||||
#include "gimp-intl.h"
|
#include "gimp-intl.h"
|
||||||
|
|
||||||
|
|
||||||
static gboolean enable_gegl = TRUE;
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_drawable_invert (GimpDrawable *drawable,
|
gimp_drawable_invert (GimpDrawable *drawable,
|
||||||
GimpProgress *progress)
|
GimpProgress *progress)
|
||||||
@ -46,7 +48,7 @@ gimp_drawable_invert (GimpDrawable *drawable,
|
|||||||
g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)));
|
g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)));
|
||||||
g_return_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress));
|
g_return_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress));
|
||||||
|
|
||||||
if (enable_gegl)
|
if (GIMP_ITEM (drawable)->image->gimp->config->use_gegl)
|
||||||
{
|
{
|
||||||
GeglNode *invert;
|
GeglNode *invert;
|
||||||
|
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
|
|
||||||
#include "tools-types.h"
|
#include "tools-types.h"
|
||||||
|
|
||||||
|
/* temp */
|
||||||
|
#include "config/gimpcoreconfig.h"
|
||||||
|
|
||||||
#include "core/gimp.h"
|
#include "core/gimp.h"
|
||||||
#include "core/gimpcontext.h"
|
#include "core/gimpcontext.h"
|
||||||
#include "core/gimpdrawable.h"
|
#include "core/gimpdrawable.h"
|
||||||
@ -104,7 +107,8 @@ static void gimp_image_map_tool_settings_dialog (GimpImageMapTool *im_tool,
|
|||||||
static void gimp_image_map_tool_notify_preview (GObject *config,
|
static void gimp_image_map_tool_notify_preview (GObject *config,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
GimpImageMapTool *im_tool);
|
GimpImageMapTool *im_tool);
|
||||||
static void gimp_image_map_tool_gegl_toggled (GtkWidget *toggle,
|
static void gimp_image_map_tool_gegl_notify (GObject *config,
|
||||||
|
const GParamSpec *pspec,
|
||||||
GimpImageMapTool *im_tool);
|
GimpImageMapTool *im_tool);
|
||||||
|
|
||||||
|
|
||||||
@ -251,23 +255,6 @@ gimp_image_map_tool_initialize (GimpTool *tool,
|
|||||||
G_CALLBACK (gimp_image_map_tool_notify_preview),
|
G_CALLBACK (gimp_image_map_tool_notify_preview),
|
||||||
image_map_tool, 0);
|
image_map_tool, 0);
|
||||||
|
|
||||||
if (GIMP_IMAGE_MAP_TOOL_GET_CLASS (image_map_tool)->get_operation)
|
|
||||||
{
|
|
||||||
image_map_tool->use_gegl = TRUE;
|
|
||||||
|
|
||||||
toggle = gtk_check_button_new_with_label ("Use GEGL");
|
|
||||||
gtk_box_pack_end (GTK_BOX (image_map_tool->main_vbox), toggle,
|
|
||||||
FALSE, FALSE, 0);
|
|
||||||
gtk_widget_show (toggle);
|
|
||||||
|
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle),
|
|
||||||
image_map_tool->use_gegl);
|
|
||||||
|
|
||||||
g_signal_connect (toggle, "toggled",
|
|
||||||
G_CALLBACK (gimp_image_map_tool_gegl_toggled),
|
|
||||||
image_map_tool);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (klass->load_dialog_title)
|
if (klass->load_dialog_title)
|
||||||
{
|
{
|
||||||
image_map_tool->load_button =
|
image_map_tool->load_button =
|
||||||
@ -330,6 +317,11 @@ gimp_image_map_tool_initialize (GimpTool *tool,
|
|||||||
gimp_image_map_tool_dialog (image_map_tool);
|
gimp_image_map_tool_dialog (image_map_tool);
|
||||||
|
|
||||||
gtk_widget_show (vbox);
|
gtk_widget_show (vbox);
|
||||||
|
|
||||||
|
if (GIMP_IMAGE_MAP_TOOL_GET_CLASS (image_map_tool)->get_operation)
|
||||||
|
g_signal_connect_object (tool_info->gimp->config, "notify::use-gegl",
|
||||||
|
G_CALLBACK (gimp_image_map_tool_gegl_notify),
|
||||||
|
image_map_tool, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
drawable = gimp_image_get_active_drawable (display->image);
|
drawable = gimp_image_get_active_drawable (display->image);
|
||||||
@ -444,18 +436,21 @@ gimp_image_map_tool_reset (GimpImageMapTool *tool)
|
|||||||
static void
|
static void
|
||||||
gimp_image_map_tool_create_map (GimpImageMapTool *tool)
|
gimp_image_map_tool_create_map (GimpImageMapTool *tool)
|
||||||
{
|
{
|
||||||
|
GimpCoreConfig *config = GIMP_TOOL (tool)->tool_info->gimp->config;
|
||||||
|
|
||||||
if (tool->image_map)
|
if (tool->image_map)
|
||||||
{
|
{
|
||||||
gimp_image_map_clear (tool->image_map);
|
gimp_image_map_clear (tool->image_map);
|
||||||
g_object_unref (tool->image_map);
|
g_object_unref (tool->image_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tool->use_gegl && ! tool->operation)
|
if (config->use_gegl && ! tool->operation)
|
||||||
tool->operation = GIMP_IMAGE_MAP_TOOL_GET_CLASS (tool)->get_operation (tool);
|
tool->operation = GIMP_IMAGE_MAP_TOOL_GET_CLASS (tool)->get_operation (tool);
|
||||||
|
|
||||||
tool->image_map = gimp_image_map_new (tool->drawable,
|
tool->image_map = gimp_image_map_new (tool->drawable,
|
||||||
GIMP_TOOL (tool)->tool_info->blurb,
|
GIMP_TOOL (tool)->tool_info->blurb,
|
||||||
tool->use_gegl ? tool->operation : NULL);
|
config->use_gegl ?
|
||||||
|
tool->operation : NULL);
|
||||||
|
|
||||||
g_signal_connect (tool->image_map, "flush",
|
g_signal_connect (tool->image_map, "flush",
|
||||||
G_CALLBACK (gimp_image_map_tool_flush),
|
G_CALLBACK (gimp_image_map_tool_flush),
|
||||||
@ -844,11 +839,10 @@ gimp_image_map_tool_settings_dialog (GimpImageMapTool *tool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_image_map_tool_gegl_toggled (GtkWidget *toggle,
|
gimp_image_map_tool_gegl_notify (GObject *config,
|
||||||
GimpImageMapTool *im_tool)
|
const GParamSpec *pspec,
|
||||||
|
GimpImageMapTool *im_tool)
|
||||||
{
|
{
|
||||||
im_tool->use_gegl = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle));
|
|
||||||
|
|
||||||
gimp_tool_control_set_preserve (GIMP_TOOL (im_tool)->control, TRUE);
|
gimp_tool_control_set_preserve (GIMP_TOOL (im_tool)->control, TRUE);
|
||||||
|
|
||||||
gimp_image_map_tool_create_map (im_tool);
|
gimp_image_map_tool_create_map (im_tool);
|
||||||
|
@ -55,9 +55,6 @@ struct _GimpImageMapTool
|
|||||||
|
|
||||||
/* settings file dialog */
|
/* settings file dialog */
|
||||||
GtkWidget *settings_dialog;
|
GtkWidget *settings_dialog;
|
||||||
|
|
||||||
/* temp hack */
|
|
||||||
gboolean use_gegl;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GimpImageMapToolClass
|
struct _GimpImageMapToolClass
|
||||||
|
@ -286,6 +286,15 @@ gimp_toolbox_constructor (GType type,
|
|||||||
G_CALLBACK (toolbox_area_notify),
|
G_CALLBACK (toolbox_area_notify),
|
||||||
toolbox->image_area, 0);
|
toolbox->image_area, 0);
|
||||||
|
|
||||||
|
{
|
||||||
|
GtkWidget *button;
|
||||||
|
|
||||||
|
button = gimp_prop_check_button_new (G_OBJECT (config), "use-gegl",
|
||||||
|
"Use GEGL");
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (button);
|
||||||
|
}
|
||||||
|
|
||||||
g_signal_connect_object (context, "tool-changed",
|
g_signal_connect_object (context, "tool-changed",
|
||||||
G_CALLBACK (toolbox_tool_changed),
|
G_CALLBACK (toolbox_tool_changed),
|
||||||
toolbox->tool_wbox,
|
toolbox->tool_wbox,
|
||||||
|
Reference in New Issue
Block a user