Bug 558795 - Using same quick mask color across sessions

Add configuration option for quick mask color.
This commit is contained in:
Ville Sokk 2012-02-27 19:24:09 +02:00 committed by Michael Natterer
parent 72d60103e5
commit 082d758a34
5 changed files with 34 additions and 0 deletions

View File

@ -20,9 +20,11 @@
#include "config.h"
#include <cairo.h>
#include <glib-object.h>
#include "libgimpbase/gimpbase.h"
#include "libgimpcolor/gimpcolor.h"
#include "libgimpconfig/gimpconfig.h"
#include "config-types.h"
@ -98,6 +100,7 @@ enum
PROP_COLOR_MANAGEMENT,
PROP_COLOR_PROFILE_POLICY,
PROP_SAVE_DOCUMENT_HISTORY,
PROP_QUICK_MASK_COLOR,
PROP_USE_GEGL,
/* ignored, only for backward compatibility: */
@ -136,6 +139,7 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
gchar *path;
GimpRGB red = { 1.0, 0, 0, 0.5 };
object_class->finalize = gimp_core_config_finalize;
object_class->set_property = gimp_core_config_set_property;
@ -430,6 +434,10 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
SAVE_DOCUMENT_HISTORY_BLURB,
TRUE,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_RGB (object_class, PROP_QUICK_MASK_COLOR,
"quick-mask-color", QUICK_MASK_COLOR_BLURB,
TRUE, &red,
GIMP_PARAM_STATIC_STRINGS);
/* not serialized */
g_object_class_install_property (object_class, PROP_USE_GEGL,
@ -708,6 +716,9 @@ gimp_core_config_set_property (GObject *object,
case PROP_SAVE_DOCUMENT_HISTORY:
core_config->save_document_history = g_value_get_boolean (value);
break;
case PROP_QUICK_MASK_COLOR:
gimp_value_get_rgb (value, &core_config->quick_mask_color);
break;
case PROP_USE_GEGL:
core_config->use_gegl = g_value_get_boolean (value);
break;
@ -877,6 +888,9 @@ gimp_core_config_get_property (GObject *object,
case PROP_SAVE_DOCUMENT_HISTORY:
g_value_set_boolean (value, core_config->save_document_history);
break;
case PROP_QUICK_MASK_COLOR:
gimp_value_set_rgb (value, &core_config->quick_mask_color);
break;
case PROP_USE_GEGL:
g_value_set_boolean (value, core_config->use_gegl);
break;

View File

@ -87,6 +87,7 @@ struct _GimpCoreConfig
GimpColorConfig *color_management;
GimpColorProfilePolicy color_profile_policy;
gboolean save_document_history;
GimpRGB quick_mask_color;
gboolean use_gegl;
};

View File

@ -283,6 +283,9 @@ N_("Sets whether GIMP should create previews of layers and channels. " \
N_("Sets the preview size used for layers and channel previews in newly " \
"created dialogs.")
#define QUICK_MASK_COLOR_BLURB \
N_("Sets the default quick mask color.")
#define RESIZE_WINDOWS_ON_RESIZE_BLURB \
N_("When enabled, the image window will automatically resize itself " \
"whenever the physical image size changes.")

View File

@ -760,6 +760,8 @@ gimp_image_constructed (GObject *object)
private->grid = gimp_config_duplicate (GIMP_CONFIG (config->default_grid));
private->quick_mask_color = config->quick_mask_color;
if (private->base_type == GIMP_INDEXED)
gimp_image_colormap_init (image);

View File

@ -1923,6 +1923,7 @@ prefs_dialog_new (Gimp *gimp,
_("_Gradient"), GIMP_STOCK_GRADIENT,
GTK_BOX (vbox2), size_group);
/* Move Tool */
vbox2 = prefs_frame_new (_("Move Tool"),
GTK_CONTAINER (vbox), FALSE);
@ -2020,6 +2021,19 @@ prefs_dialog_new (Gimp *gimp,
gtk_box_pack_start (GTK_BOX (vbox), editor, FALSE, FALSE, 0);
gtk_widget_show (editor);
/* Quick Mask Color */
vbox2 = prefs_frame_new (_("Quick Mask"), GTK_CONTAINER (vbox), FALSE);
table = prefs_table_new (1, GTK_CONTAINER (vbox2));
button = gimp_prop_color_button_new (object, "quick-mask-color",
_("Set the default Quick Mask color"),
COLOR_BUTTON_WIDTH,
COLOR_BUTTON_HEIGHT,
GIMP_COLOR_AREA_SMALL_CHECKS);
gimp_color_panel_set_context (GIMP_COLOR_PANEL (button),
gimp_get_user_context (gimp));
prefs_widget_add_aligned (button, _("Quick Mask color:"),
GTK_TABLE (table), 0, TRUE, NULL);
/******************/