[gimp] app: make the MyPaint brush path configurable in Prefs -> Folders
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: make the MyPaint brush path configurable in Prefs -> Folders
- Date: Sun, 26 Apr 2015 01:14:42 +0000 (UTC)
commit 9d510d8ffff471dc77d1b694224bf704446284e1
Author: Michael Natterer <mitch gimp org>
Date: Sat Apr 25 21:12:19 2015 -0400
app: make the MyPaint brush path configurable in Prefs -> Folders
Keep the config values around even if compiled without MyPaint brush
support, so we remember the values between sessions of differently
compiled GIMP versions.
app/config/Makefile.am | 1 +
app/config/gimpcoreconfig.c | 80 ++++++++++++++++++++++++++++++++----
app/config/gimpcoreconfig.h | 3 +
app/config/gimprc-blurbs.h | 8 ++++
app/dialogs/preferences-dialog.c | 16 +++++++
app/tools/gimpmybrushoptions-gui.c | 6 ++-
app/widgets/gimphelp-ids.h | 1 +
7 files changed, 106 insertions(+), 9 deletions(-)
---
diff --git a/app/config/Makefile.am b/app/config/Makefile.am
index 60521e7..127723d 100644
--- a/app/config/Makefile.am
+++ b/app/config/Makefile.am
@@ -10,6 +10,7 @@ libgimpthumb = $(top_builddir)/libgimpthumb/libgimpthumb-$(GIMP_API_VERSION).la
AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Gimp-Config\" \
-DGIMP_APP_VERSION_STRING=\"$(GIMP_APP_VERSION)\" \
+ -DDATADIR=\""$(datadir)"\" \
-I$(top_builddir) \
-I$(top_srcdir) \
-I$(top_builddir)/app \
diff --git a/app/config/gimpcoreconfig.c b/app/config/gimpcoreconfig.c
index 394bab1..361989e 100644
--- a/app/config/gimpcoreconfig.c
+++ b/app/config/gimpcoreconfig.c
@@ -41,14 +41,15 @@
#include "gimp-intl.h"
-#define DEFAULT_BRUSH "Round Fuzzy"
-#define DEFAULT_DYNAMICS "Dynamics Off"
-#define DEFAULT_PATTERN "Pine"
-#define DEFAULT_PALETTE "Default"
-#define DEFAULT_GRADIENT "FG to BG (RGB)"
-#define DEFAULT_TOOL_PRESET "Current Options"
-#define DEFAULT_FONT "Sans"
-#define DEFAULT_COMMENT "Created with GIMP"
+#define DEFAULT_BRUSH "Round Fuzzy"
+#define DEFAULT_DYNAMICS "Dynamics Off"
+#define DEFAULT_PATTERN "Pine"
+#define DEFAULT_PALETTE "Default"
+#define DEFAULT_GRADIENT "FG to BG (RGB)"
+#define DEFAULT_TOOL_PRESET "Current Options"
+#define DEFAULT_FONT "Sans"
+#define DEFAULT_MYPAINT_BRUSH "Fixme"
+#define DEFAULT_COMMENT "Created with GIMP"
enum
@@ -75,6 +76,8 @@ enum
PROP_TOOL_PRESET_PATH_WRITABLE,
PROP_FONT_PATH,
PROP_FONT_PATH_WRITABLE,
+ PROP_MYPAINT_BRUSH_PATH,
+ PROP_MYPAINT_BRUSH_PATH_WRITABLE,
PROP_DEFAULT_BRUSH,
PROP_DEFAULT_DYNAMICS,
PROP_DEFAULT_PATTERN,
@@ -82,6 +85,7 @@ enum
PROP_DEFAULT_GRADIENT,
PROP_DEFAULT_TOOL_PRESET,
PROP_DEFAULT_FONT,
+ PROP_DEFAULT_MYPAINT_BRUSH,
PROP_GLOBAL_BRUSH,
PROP_GLOBAL_DYNAMICS,
PROP_GLOBAL_PATTERN,
@@ -140,6 +144,8 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
gchar *path;
+ gchar *dir1;
+ gchar *dir2;
GimpRGB red = { 1.0, 0, 0, 0.5 };
guint64 undo_size;
@@ -310,6 +316,38 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
GIMP_CONFIG_PATH_DIR_LIST, NULL,
GIMP_PARAM_STATIC_STRINGS |
GIMP_CONFIG_PARAM_IGNORE);
+
+ /* FIXME */
+ dir1 = g_build_filename (DATADIR, "mypaint", "brushes", NULL);
+ dir2 = g_build_filename (g_get_user_data_dir (), "mypaint", "brushes", NULL);
+ path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+ "/usr/share/mypaint/brushes",
+ "/usr/local/share/mypaint/brushes",
+ dir1,
+ dir2,
+ "~/.mypaint/brushes",
+ NULL);
+ GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_MYPAINT_BRUSH_PATH,
+ "mypaint-brush-path", MYPAINT_BRUSH_PATH_BLURB,
+ GIMP_CONFIG_PATH_DIR_LIST, path,
+ GIMP_PARAM_STATIC_STRINGS |
+ GIMP_CONFIG_PARAM_RESTART);
+ g_free (path);
+ g_free (dir1);
+
+ /* FIXME */
+ path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+ dir2,
+ "~/.mypaint/brushes",
+ NULL);
+ GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_MYPAINT_BRUSH_PATH_WRITABLE,
+ "mypaint-brush-path-writable", NULL,
+ GIMP_CONFIG_PATH_DIR_LIST, path,
+ GIMP_PARAM_STATIC_STRINGS |
+ GIMP_CONFIG_PARAM_RESTART);
+ g_free (path);
+ g_free (dir2);
+
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_DEFAULT_BRUSH,
"default-brush", DEFAULT_BRUSH_BLURB,
DEFAULT_BRUSH,
@@ -338,6 +376,11 @@ gimp_core_config_class_init (GimpCoreConfigClass *klass)
"default-font", DEFAULT_FONT_BLURB,
DEFAULT_FONT,
GIMP_PARAM_STATIC_STRINGS);
+ GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_DEFAULT_MYPAINT_BRUSH,
+ "default-mypaint-brush", DEFAULT_MYPAINT_BRUSH_BLURB,
+ DEFAULT_MYPAINT_BRUSH,
+ GIMP_PARAM_STATIC_STRINGS);
+
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_GLOBAL_BRUSH,
"global-brush", GLOBAL_BRUSH_BLURB,
TRUE,
@@ -623,6 +666,14 @@ gimp_core_config_set_property (GObject *object,
g_free (core_config->font_path_writable);
core_config->font_path_writable = g_value_dup_string (value);
break;
+ case PROP_MYPAINT_BRUSH_PATH:
+ g_free (core_config->mypaint_brush_path);
+ core_config->mypaint_brush_path = g_value_dup_string (value);
+ break;
+ case PROP_MYPAINT_BRUSH_PATH_WRITABLE:
+ g_free (core_config->mypaint_brush_path_writable);
+ core_config->mypaint_brush_path_writable = g_value_dup_string (value);
+ break;
case PROP_DEFAULT_BRUSH:
g_free (core_config->default_brush);
core_config->default_brush = g_value_dup_string (value);
@@ -651,6 +702,10 @@ gimp_core_config_set_property (GObject *object,
g_free (core_config->default_font);
core_config->default_font = g_value_dup_string (value);
break;
+ case PROP_DEFAULT_MYPAINT_BRUSH:
+ g_free (core_config->default_mypaint_brush);
+ core_config->default_mypaint_brush = g_value_dup_string (value);
+ break;
case PROP_GLOBAL_BRUSH:
core_config->global_brush = g_value_get_boolean (value);
break;
@@ -806,6 +861,12 @@ gimp_core_config_get_property (GObject *object,
case PROP_FONT_PATH_WRITABLE:
g_value_set_string (value, core_config->font_path_writable);
break;
+ case PROP_MYPAINT_BRUSH_PATH:
+ g_value_set_string (value, core_config->mypaint_brush_path);
+ break;
+ case PROP_MYPAINT_BRUSH_PATH_WRITABLE:
+ g_value_set_string (value, core_config->mypaint_brush_path_writable);
+ break;
case PROP_DEFAULT_BRUSH:
g_value_set_string (value, core_config->default_brush);
break;
@@ -827,6 +888,9 @@ gimp_core_config_get_property (GObject *object,
case PROP_DEFAULT_FONT:
g_value_set_string (value, core_config->default_font);
break;
+ case PROP_DEFAULT_MYPAINT_BRUSH:
+ g_value_set_string (value, core_config->default_mypaint_brush);
+ break;
case PROP_GLOBAL_BRUSH:
g_value_set_boolean (value, core_config->global_brush);
break;
diff --git a/app/config/gimpcoreconfig.h b/app/config/gimpcoreconfig.h
index 11b9534..3b0c908 100644
--- a/app/config/gimpcoreconfig.h
+++ b/app/config/gimpcoreconfig.h
@@ -60,6 +60,8 @@ struct _GimpCoreConfig
gchar *tool_preset_path_writable;
gchar *font_path;
gchar *font_path_writable; /* unused */
+ gchar *mypaint_brush_path;
+ gchar *mypaint_brush_path_writable;
gchar *default_brush;
gchar *default_dynamics;
gchar *default_pattern;
@@ -67,6 +69,7 @@ struct _GimpCoreConfig
gchar *default_tool_preset;
gchar *default_gradient;
gchar *default_font;
+ gchar *default_mypaint_brush;
gboolean global_brush;
gboolean global_dynamics;
gboolean global_pattern;
diff --git a/app/config/gimprc-blurbs.h b/app/config/gimprc-blurbs.h
index 43afcef..3e2dae5 100644
--- a/app/config/gimprc-blurbs.h
+++ b/app/config/gimprc-blurbs.h
@@ -83,6 +83,9 @@ _("When enabled, this will ensure that each pixel of an image gets " \
#define DEFAULT_IMAGE_BLURB \
"Sets the default image in the \"File/New\" dialog."
+#define DEFAULT_MYPAINT_BRUSH_BLURB \
+"Specify a default MyPaint brush."
+
#define DEFAULT_PATTERN_BLURB \
"Specify a default pattern."
@@ -238,6 +241,11 @@ _("Sets the monitor's vertical resolution, in dots per inch. If set to " \
_("If enabled, the move tool sets the edited layer or path as active. " \
"This used to be the default behaviour in older versions.")
+#define MYPAINT_BRUSH_PATH_BLURB \
+"Sets the brush search path."
+
+#define MYPAINT_BRUSH_PATH_WRITABLE_BLURB ""
+
#define NAVIGATION_PREVIEW_SIZE_BLURB \
_("Sets the size of the navigation preview available in the lower right " \
"corner of the image window.")
diff --git a/app/dialogs/preferences-dialog.c b/app/dialogs/preferences-dialog.c
index c7cf015..4a9e152 100644
--- a/app/dialogs/preferences-dialog.c
+++ b/app/dialogs/preferences-dialog.c
@@ -1256,6 +1256,7 @@ prefs_dialog_new (Gimp *gimp,
GObject *object;
GimpCoreConfig *core_config;
GimpDisplayConfig *display_config;
+ GimpGuiConfig *gui_config;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (GIMP_IS_CONFIG (config), NULL);
@@ -1263,6 +1264,7 @@ prefs_dialog_new (Gimp *gimp,
object = G_OBJECT (config);
core_config = GIMP_CORE_CONFIG (config);
display_config = GIMP_DISPLAY_CONFIG (config);
+ gui_config = GIMP_GUI_CONFIG (config);
dialog = gimp_dialog_new (_("Preferences"), "gimp-preferences",
NULL, 0,
@@ -2638,6 +2640,12 @@ prefs_dialog_new (Gimp *gimp,
GIMP_HELP_PREFS_FOLDERS_TOOL_PRESETS,
N_("Select Tool Preset Folders"),
"tool-preset-path", "tool-preset-path-writable" },
+#ifdef HAVE_LIBMYPAINT
+ { N_("MyPaint Brushes"), N_("MyPaint Brush Folders"), "folders-mypaint-brushes",
+ GIMP_HELP_PREFS_FOLDERS_MYPAINT_BRUSHES,
+ N_("Select MyPaint Brush Folders"),
+ "mypaint-brush-path", "mypaint-brush-path-writable" },
+#endif
{ N_("Plug-Ins"), N_("Plug-In Folders"), "folders-plug-ins",
GIMP_HELP_PREFS_FOLDERS_PLUG_INS,
N_("Select Plug-In Folders"),
@@ -2668,6 +2676,14 @@ prefs_dialog_new (Gimp *gimp,
{
GtkWidget *editor;
+#ifdef HAVE_LIBMYPAINT
+ if (! gui_config->playground_mybrush_tool &&
+ ! strcmp (paths[i].path_property_name, "mypaint-brush-path"))
+ {
+ continue;
+ }
+#endif
+
pixbuf = prefs_get_pixbufs (dialog, paths[i].icon, &small_pixbuf);
vbox = gimp_prefs_box_add_page (GIMP_PREFS_BOX (prefs_box),
gettext (paths[i].label),
diff --git a/app/tools/gimpmybrushoptions-gui.c b/app/tools/gimpmybrushoptions-gui.c
index f25c192..ae3b6ee 100644
--- a/app/tools/gimpmybrushoptions-gui.c
+++ b/app/tools/gimpmybrushoptions-gui.c
@@ -28,6 +28,10 @@
#include "tools-types.h"
+#include "config/gimpcoreconfig.h"
+
+#include "core/gimp.h"
+
#include "paint/gimpmybrushoptions.h"
#include "widgets/gimppropwidgets.h"
@@ -181,7 +185,7 @@ gimp_mybrush_options_gui (GimpToolOptions *tool_options)
model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
- path = gimp_config_path_expand_to_files ("/usr/share/mypaint/brushes", NULL);
+ path = gimp_config_path_expand_to_files (GIMP_CONTEXT (config)->gimp->config->mypaint_brush_path, NULL);
for (list = path; list; list = g_list_next (list))
{
diff --git a/app/widgets/gimphelp-ids.h b/app/widgets/gimphelp-ids.h
index d6ce9f5..228ee46 100644
--- a/app/widgets/gimphelp-ids.h
+++ b/app/widgets/gimphelp-ids.h
@@ -484,6 +484,7 @@
#define GIMP_HELP_PREFS_FOLDERS_GRADIENTS "gimp-prefs-folders-gradients"
#define GIMP_HELP_PREFS_FOLDERS_FONTS "gimp-prefs-folders-fonts"
#define GIMP_HELP_PREFS_FOLDERS_TOOL_PRESETS "gimp-prefs-folders-tool-presets"
+#define GIMP_HELP_PREFS_FOLDERS_MYPAINT_BRUSHES "gimp-prefs-folders-mypaint-brushes"
#define GIMP_HELP_PREFS_FOLDERS_PLUG_INS "gimp-prefs-folders-plug-ins"
#define GIMP_HELP_PREFS_FOLDERS_SCRIPTS "gimp-prefs-folders-scripts"
#define GIMP_HELP_PREFS_FOLDERS_MODULES "gimp-prefs-folders-modules"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]