[gimp] Bug 558795 - Using same quick mask color across sessions



commit 082d758a34b04781226d593189e6baf2522f4efe
Author: Ville Sokk <embassyhill gmail com>
Date:   Mon Feb 27 19:24:09 2012 +0200

    Bug 558795 - Using same quick mask color across sessions
    
    Add configuration option for quick mask color.

 app/config/gimpcoreconfig.c      |   14 ++++++++++++++
 app/config/gimpcoreconfig.h      |    1 +
 app/config/gimprc-blurbs.h       |    3 +++
 app/core/gimpimage.c             |    2 ++
 app/dialogs/preferences-dialog.c |   14 ++++++++++++++
 5 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/app/config/gimpcoreconfig.c b/app/config/gimpcoreconfig.c
index 200b0c4..d954f8c 100644
--- a/app/config/gimpcoreconfig.c
+++ b/app/config/gimpcoreconfig.c
@@ -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;
diff --git a/app/config/gimpcoreconfig.h b/app/config/gimpcoreconfig.h
index 3502e9c..1b03c8f 100644
--- a/app/config/gimpcoreconfig.h
+++ b/app/config/gimpcoreconfig.h
@@ -87,6 +87,7 @@ struct _GimpCoreConfig
   GimpColorConfig        *color_management;
   GimpColorProfilePolicy  color_profile_policy;
   gboolean                save_document_history;
+  GimpRGB                 quick_mask_color;
   gboolean                use_gegl;
 };
 
diff --git a/app/config/gimprc-blurbs.h b/app/config/gimprc-blurbs.h
index a1afdd0..d8f6e44 100644
--- a/app/config/gimprc-blurbs.h
+++ b/app/config/gimprc-blurbs.h
@@ -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.")
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 0c36071..47f31c3 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -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);
 
diff --git a/app/dialogs/preferences-dialog.c b/app/dialogs/preferences-dialog.c
index e9bf982..a8e6d5b 100644
--- a/app/dialogs/preferences-dialog.c
+++ b/app/dialogs/preferences-dialog.c
@@ -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);
+
 
 
   /******************/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]