[gimp] app: remove all class variables from GimpFilterToolClass
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: remove all class variables from GimpFilterToolClass
- Date: Sat, 25 Mar 2017 10:37:20 +0000 (UTC)
commit 3aeebfa178b7774af4cd85e1815c482d8558408d
Author: Michael Natterer <mitch gimp org>
Date: Sat Mar 25 11:32:17 2017 +0100
app: remove all class variables from GimpFilterToolClass
and add them as return values to GimpFilterToool::get_operation(), so
the tools is configured entirely per-instance now.
This makes get_operations()'s signature more evil, but helps making
GimpOperationTool less conplicated and convoluted.
app/tools/gimpbrightnesscontrasttool.c | 34 ++++++++-----
app/tools/gimpcolorbalancetool.c | 30 +++++++----
app/tools/gimpcolorizetool.c | 30 +++++++----
app/tools/gimpcurvestool.c | 44 +++++++++------
app/tools/gimpfiltertool-settings.c | 11 ++--
app/tools/gimpfiltertool.c | 74 ++++++++++++++++++++------
app/tools/gimpfiltertool.h | 17 ++++--
app/tools/gimphuesaturationtool.c | 32 +++++++----
app/tools/gimplevelstool.c | 40 +++++++++------
app/tools/gimpoperationtool.c | 89 ++++++++++---------------------
app/tools/gimpthresholdtool.c | 32 +++++++----
11 files changed, 250 insertions(+), 183 deletions(-)
---
diff --git a/app/tools/gimpbrightnesscontrasttool.c b/app/tools/gimpbrightnesscontrasttool.c
index 3e623bb..cd78dd2 100644
--- a/app/tools/gimpbrightnesscontrasttool.c
+++ b/app/tools/gimpbrightnesscontrasttool.c
@@ -77,7 +77,11 @@ static gchar *
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_brightness_contrast_tool_dialog (GimpFilterTool *filter_tool);
static void brightness_contrast_to_levels_callback (GtkWidget *widget,
@@ -112,17 +116,13 @@ gimp_brightness_contrast_tool_class_init (GimpBrightnessContrastToolClass *klass
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- tool_class->initialize = gimp_brightness_contrast_tool_initialize;
- tool_class->button_press = gimp_brightness_contrast_tool_button_press;
- tool_class->button_release = gimp_brightness_contrast_tool_button_release;
- tool_class->motion = gimp_brightness_contrast_tool_motion;
+ tool_class->initialize = gimp_brightness_contrast_tool_initialize;
+ tool_class->button_press = gimp_brightness_contrast_tool_button_press;
+ tool_class->button_release = gimp_brightness_contrast_tool_button_release;
+ tool_class->motion = gimp_brightness_contrast_tool_motion;
- filter_tool_class->settings_name = "brightness-contrast";
- filter_tool_class->import_dialog_title = _("Import Brightness-Contrast settings");
- filter_tool_class->export_dialog_title = _("Export Brightness-Contrast settings");
-
- filter_tool_class->get_operation = gimp_brightness_contrast_tool_get_operation;
- filter_tool_class->dialog = gimp_brightness_contrast_tool_dialog;
+ filter_tool_class->get_operation = gimp_brightness_contrast_tool_get_operation;
+ filter_tool_class->dialog = gimp_brightness_contrast_tool_dialog;
}
static void
@@ -168,9 +168,17 @@ gimp_brightness_contrast_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Adjust Brightness and Contrast"));
+ *description = g_strdup (_("Adjust Brightness and Contrast"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("brightness-contrast");
+ *import_dialog_title = g_strdup (_("Import Brightness-Contrast settings"));
+ *export_dialog_title = g_strdup (_("Export Brightness-Contrast settings"));
return g_strdup ("gimp:brightness-contrast");
}
diff --git a/app/tools/gimpcolorbalancetool.c b/app/tools/gimpcolorbalancetool.c
index 0b4dcb0..234559c 100644
--- a/app/tools/gimpcolorbalancetool.c
+++ b/app/tools/gimpcolorbalancetool.c
@@ -56,7 +56,11 @@ static gchar * gimp_color_balance_tool_get_operation (GimpFilterTool *filter
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_color_balance_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_color_balance_tool_reset (GimpFilterTool *filter_tool);
@@ -92,15 +96,11 @@ gimp_color_balance_tool_class_init (GimpColorBalanceToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- tool_class->initialize = gimp_color_balance_tool_initialize;
+ tool_class->initialize = gimp_color_balance_tool_initialize;
- filter_tool_class->settings_name = "color-balance";
- filter_tool_class->import_dialog_title = _("Import Color Balance Settings");
- filter_tool_class->export_dialog_title = _("Export Color Balance Settings");
-
- filter_tool_class->get_operation = gimp_color_balance_tool_get_operation;
- filter_tool_class->dialog = gimp_color_balance_tool_dialog;
- filter_tool_class->reset = gimp_color_balance_tool_reset;
+ filter_tool_class->get_operation = gimp_color_balance_tool_get_operation;
+ filter_tool_class->dialog = gimp_color_balance_tool_dialog;
+ filter_tool_class->reset = gimp_color_balance_tool_reset;
}
static void
@@ -135,9 +135,17 @@ gimp_color_balance_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Adjust Color Balance"));
+ *description = g_strdup (_("Adjust Color Balance"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("color-balance");
+ *import_dialog_title = g_strdup (_("Import Color Balance Settings"));
+ *export_dialog_title = g_strdup (_("Export Color Balance Settings"));
return g_strdup ("gimp:color-balance");
}
diff --git a/app/tools/gimpcolorizetool.c b/app/tools/gimpcolorizetool.c
index 08405d9..6a2817a 100644
--- a/app/tools/gimpcolorizetool.c
+++ b/app/tools/gimpcolorizetool.c
@@ -55,7 +55,11 @@ static gchar * gimp_colorize_tool_get_operation (GimpFilterTool *filter_tool
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_colorize_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_colorize_tool_color_picked (GimpFilterTool *filter_tool,
gpointer identifier,
@@ -93,15 +97,11 @@ gimp_colorize_tool_class_init (GimpColorizeToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- tool_class->initialize = gimp_colorize_tool_initialize;
+ tool_class->initialize = gimp_colorize_tool_initialize;
- filter_tool_class->settings_name = "colorize";
- filter_tool_class->import_dialog_title = _("Import Colorize Settings");
- filter_tool_class->export_dialog_title = _("Export Colorize Settings");
-
- filter_tool_class->get_operation = gimp_colorize_tool_get_operation;
- filter_tool_class->dialog = gimp_colorize_tool_dialog;
- filter_tool_class->color_picked = gimp_colorize_tool_color_picked;
+ filter_tool_class->get_operation = gimp_colorize_tool_get_operation;
+ filter_tool_class->dialog = gimp_colorize_tool_dialog;
+ filter_tool_class->color_picked = gimp_colorize_tool_color_picked;
}
static void
@@ -136,9 +136,17 @@ gimp_colorize_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Colorize the Image"));
+ *description = g_strdup (_("Colorize the Image"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("colorize");
+ *import_dialog_title = g_strdup (_("Import Colorize Settings"));
+ *export_dialog_title = g_strdup (_("Export Colorize Settings"));
return g_strdup ("gimp:colorize");
}
diff --git a/app/tools/gimpcurvestool.c b/app/tools/gimpcurvestool.c
index 2703a36..a62b216 100644
--- a/app/tools/gimpcurvestool.c
+++ b/app/tools/gimpcurvestool.c
@@ -95,7 +95,11 @@ static gchar * gimp_curves_tool_get_operation (GimpFilterTool *filter
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_curves_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_curves_tool_reset (GimpFilterTool *filter_tool);
static gboolean gimp_curves_tool_settings_import (GimpFilterTool *filter_tool,
@@ -165,24 +169,20 @@ gimp_curves_tool_class_init (GimpCurvesToolClass *klass)
GimpColorToolClass *color_tool_class = GIMP_COLOR_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- object_class->constructed = gimp_curves_tool_constructed;
+ object_class->constructed = gimp_curves_tool_constructed;
- tool_class->initialize = gimp_curves_tool_initialize;
- tool_class->button_release = gimp_curves_tool_button_release;
- tool_class->key_press = gimp_curves_tool_key_press;
- tool_class->oper_update = gimp_curves_tool_oper_update;
+ tool_class->initialize = gimp_curves_tool_initialize;
+ tool_class->button_release = gimp_curves_tool_button_release;
+ tool_class->key_press = gimp_curves_tool_key_press;
+ tool_class->oper_update = gimp_curves_tool_oper_update;
- color_tool_class->picked = gimp_curves_tool_color_picked;
+ color_tool_class->picked = gimp_curves_tool_color_picked;
- filter_tool_class->settings_name = "curves";
- filter_tool_class->import_dialog_title = _("Import Curves");
- filter_tool_class->export_dialog_title = _("Export Curves");
-
- filter_tool_class->get_operation = gimp_curves_tool_get_operation;
- filter_tool_class->dialog = gimp_curves_tool_dialog;
- filter_tool_class->reset = gimp_curves_tool_reset;
- filter_tool_class->settings_import = gimp_curves_tool_settings_import;
- filter_tool_class->settings_export = gimp_curves_tool_settings_export;
+ filter_tool_class->get_operation = gimp_curves_tool_get_operation;
+ filter_tool_class->dialog = gimp_curves_tool_dialog;
+ filter_tool_class->reset = gimp_curves_tool_reset;
+ filter_tool_class->settings_import = gimp_curves_tool_settings_import;
+ filter_tool_class->settings_export = gimp_curves_tool_settings_export;
}
static void
@@ -405,9 +405,17 @@ gimp_curves_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Adjust Color Curves"));
+ *description = g_strdup (_("Adjust Color Curves"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("curves");
+ *import_dialog_title = g_strdup (_("Import Curves"));
+ *export_dialog_title = g_strdup (_("Export Curves"));
return g_strdup ("gimp:curves");
}
diff --git a/app/tools/gimpfiltertool-settings.c b/app/tools/gimpfiltertool-settings.c
index 0ea9037..dcd4a61 100644
--- a/app/tools/gimpfiltertool-settings.c
+++ b/app/tools/gimpfiltertool-settings.c
@@ -121,13 +121,12 @@ gimp_filter_tool_real_settings_export (GimpFilterTool *filter_tool,
GOutputStream *output,
GError **error)
{
- GimpFilterToolClass *klass = GIMP_FILTER_TOOL_GET_CLASS (filter_tool);
- gchar *header;
- gchar *footer;
- gboolean success;
+ gchar *header;
+ gchar *footer;
+ gboolean success;
- header = g_strdup_printf ("GIMP %s tool settings", klass->settings_name);
- footer = g_strdup_printf ("end of %s tool settings", klass->settings_name);
+ header = g_strdup_printf ("GIMP '%s' settings", filter_tool->title);
+ footer = g_strdup_printf ("end of '%s' settings", filter_tool->title);
success = gimp_config_serialize_to_stream (GIMP_CONFIG (filter_tool->config),
output,
diff --git a/app/tools/gimpfiltertool.c b/app/tools/gimpfiltertool.c
index 85e07f8..d358b2e 100644
--- a/app/tools/gimpfiltertool.c
+++ b/app/tools/gimpfiltertool.c
@@ -184,10 +184,6 @@ gimp_filter_tool_class_init (GimpFilterToolClass *klass)
color_tool_class->pick = gimp_filter_tool_pick_color;
color_tool_class->picked = gimp_filter_tool_color_picked;
- klass->settings_name = NULL;
- klass->import_dialog_title = NULL;
- klass->export_dialog_title = NULL;
-
klass->get_operation = NULL;
klass->dialog = NULL;
klass->reset = gimp_filter_tool_real_reset;
@@ -273,6 +269,24 @@ gimp_filter_tool_finalize (GObject *object)
filter_tool->help_id = NULL;
}
+ if (filter_tool->settings_folder)
+ {
+ g_free (filter_tool->settings_folder);
+ filter_tool->settings_folder = NULL;
+ }
+
+ if (filter_tool->import_dialog_title)
+ {
+ g_free (filter_tool->import_dialog_title);
+ filter_tool->import_dialog_title = NULL;
+ }
+
+ if (filter_tool->export_dialog_title)
+ {
+ g_free (filter_tool->export_dialog_title);
+ filter_tool->export_dialog_title = NULL;
+ }
+
if (filter_tool->gui)
{
g_object_unref (filter_tool->gui);
@@ -332,15 +346,14 @@ gimp_filter_tool_initialize (GimpTool *tool,
if (! filter_tool->gui)
{
- GimpFilterToolClass *klass = GIMP_FILTER_TOOL_GET_CLASS (filter_tool);
- GtkWidget *vbox;
- GtkWidget *hbox;
- GtkWidget *toggle;
- GtkWidget *expander;
- GtkWidget *frame;
- GtkWidget *vbox2;
- GtkWidget *combo;
- gchar *operation_name;
+ GtkWidget *vbox;
+ GtkWidget *hbox;
+ GtkWidget *toggle;
+ GtkWidget *expander;
+ GtkWidget *frame;
+ GtkWidget *vbox2;
+ GtkWidget *combo;
+ gchar *operation_name;
/* disabled for at least GIMP 2.8 */
filter_tool->overlay = FALSE;
@@ -375,7 +388,7 @@ gimp_filter_tool_initialize (GimpTool *tool,
G_CALLBACK (gimp_filter_tool_response),
G_OBJECT (filter_tool), 0);
- if (filter_tool->config && klass->settings_name)
+ if (filter_tool->config && filter_tool->has_settings)
{
GtkWidget *settings_ui;
@@ -971,12 +984,15 @@ gimp_filter_tool_get_settings_ui (GimpFilterTool *filter_tool)
type,
(GCompareFunc) gimp_settings_compare);
- default_folder = gimp_directory_file (klass->settings_name, NULL);
+ if (filter_tool->settings_folder)
+ default_folder = gimp_directory_file (filter_tool->settings_folder, NULL);
+ else
+ default_folder = NULL;
settings_ui = klass->get_settings_ui (filter_tool,
settings,
- klass->import_dialog_title,
- klass->export_dialog_title,
+ filter_tool->import_dialog_title,
+ filter_tool->export_dialog_title,
filter_tool->help_id,
default_folder,
&filter_tool->settings_box);
@@ -1292,12 +1308,34 @@ gimp_filter_tool_get_operation (GimpFilterTool *filter_tool)
filter_tool->help_id = NULL;
}
+ if (filter_tool->settings_folder)
+ {
+ g_free (filter_tool->settings_folder);
+ filter_tool->settings_folder = NULL;
+ }
+
+ if (filter_tool->import_dialog_title)
+ {
+ g_free (filter_tool->import_dialog_title);
+ filter_tool->import_dialog_title = NULL;
+ }
+
+ if (filter_tool->export_dialog_title)
+ {
+ g_free (filter_tool->export_dialog_title);
+ filter_tool->export_dialog_title = NULL;
+ }
+
operation_name = klass->get_operation (filter_tool,
&filter_tool->title,
&filter_tool->description,
&filter_tool->undo_desc,
&filter_tool->icon_name,
- &filter_tool->help_id);
+ &filter_tool->help_id,
+ &filter_tool->has_settings,
+ &filter_tool->settings_folder,
+ &filter_tool->import_dialog_title,
+ &filter_tool->export_dialog_title);
if (! operation_name)
operation_name = g_strdup ("gegl:nop");
diff --git a/app/tools/gimpfiltertool.h b/app/tools/gimpfiltertool.h
index 091d7be..f3f0dac 100644
--- a/app/tools/gimpfiltertool.h
+++ b/app/tools/gimpfiltertool.h
@@ -50,6 +50,11 @@ struct _GimpFilterTool
gchar *icon_name;
gchar *help_id;
+ gboolean has_settings;
+ gchar *settings_folder;
+ gchar *import_dialog_title;
+ gchar *export_dialog_title;
+
GimpDrawableFilter *filter;
GimpGuide *percent_guide;
@@ -66,17 +71,17 @@ struct _GimpFilterToolClass
{
GimpColorToolClass parent_class;
- const gchar *settings_name;
- const gchar *import_dialog_title;
- const gchar *export_dialog_title;
-
/* virtual functions */
gchar * (* get_operation) (GimpFilterTool *filter_tool,
gchar **title,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
void (* dialog) (GimpFilterTool *filter_tool);
void (* reset) (GimpFilterTool *filter_tool);
@@ -84,7 +89,7 @@ struct _GimpFilterToolClass
GimpContainer *settings,
const gchar *import_dialog_title,
const gchar *export_dialog_title,
- const gchar *file_dialog_help_id,
+ const gchar *help_id,
GFile *default_folder,
GtkWidget **settings_box);
diff --git a/app/tools/gimphuesaturationtool.c b/app/tools/gimphuesaturationtool.c
index 921de82..b7e4de0 100644
--- a/app/tools/gimphuesaturationtool.c
+++ b/app/tools/gimphuesaturationtool.c
@@ -63,7 +63,11 @@ static gchar * gimp_hue_saturation_tool_get_operation (GimpFilterTool *filte
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_hue_saturation_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_hue_saturation_tool_reset (GimpFilterTool *filter_tool);
@@ -108,17 +112,13 @@ gimp_hue_saturation_tool_class_init (GimpHueSaturationToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- object_class->constructed = gimp_hue_saturation_tool_constructed;
+ object_class->constructed = gimp_hue_saturation_tool_constructed;
- tool_class->initialize = gimp_hue_saturation_tool_initialize;
+ tool_class->initialize = gimp_hue_saturation_tool_initialize;
- filter_tool_class->settings_name = "hue-saturation";
- filter_tool_class->import_dialog_title = _("Import Hue-Saturation Settings");
- filter_tool_class->export_dialog_title = _("Export Hue-Saturation Settings");
-
- filter_tool_class->get_operation = gimp_hue_saturation_tool_get_operation;
- filter_tool_class->dialog = gimp_hue_saturation_tool_dialog;
- filter_tool_class->reset = gimp_hue_saturation_tool_reset;
+ filter_tool_class->get_operation = gimp_hue_saturation_tool_get_operation;
+ filter_tool_class->dialog = gimp_hue_saturation_tool_dialog;
+ filter_tool_class->reset = gimp_hue_saturation_tool_reset;
}
static void
@@ -163,9 +163,17 @@ gimp_hue_saturation_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Adjust Hue / Lightness / Saturation"));
+ *description = g_strdup (_("Adjust Hue / Lightness / Saturation"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("hue-saturation");
+ *import_dialog_title = g_strdup (_("Import Hue-Saturation Settings"));
+ *export_dialog_title = g_strdup (_("Export Hue-Saturation Settings"));
return g_strdup ("gimp:hue-saturation");
}
diff --git a/app/tools/gimplevelstool.c b/app/tools/gimplevelstool.c
index 8c4afa9..e1be971 100644
--- a/app/tools/gimplevelstool.c
+++ b/app/tools/gimplevelstool.c
@@ -77,7 +77,11 @@ static gchar * gimp_levels_tool_get_operation (GimpFilterTool *filter_tool
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_levels_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_levels_tool_reset (GimpFilterTool *filter_tool);
static gboolean gimp_levels_tool_settings_import(GimpFilterTool *filter_tool,
@@ -149,21 +153,17 @@ gimp_levels_tool_class_init (GimpLevelsToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- object_class->constructed = gimp_levels_tool_constructed;
- object_class->finalize = gimp_levels_tool_finalize;
+ object_class->constructed = gimp_levels_tool_constructed;
+ object_class->finalize = gimp_levels_tool_finalize;
- tool_class->initialize = gimp_levels_tool_initialize;
+ tool_class->initialize = gimp_levels_tool_initialize;
- filter_tool_class->settings_name = "levels";
- filter_tool_class->import_dialog_title = _("Import Levels");
- filter_tool_class->export_dialog_title = _("Export Levels");
-
- filter_tool_class->get_operation = gimp_levels_tool_get_operation;
- filter_tool_class->dialog = gimp_levels_tool_dialog;
- filter_tool_class->reset = gimp_levels_tool_reset;
- filter_tool_class->settings_import = gimp_levels_tool_settings_import;
- filter_tool_class->settings_export = gimp_levels_tool_settings_export;
- filter_tool_class->color_picked = gimp_levels_tool_color_picked;
+ filter_tool_class->get_operation = gimp_levels_tool_get_operation;
+ filter_tool_class->dialog = gimp_levels_tool_dialog;
+ filter_tool_class->reset = gimp_levels_tool_reset;
+ filter_tool_class->settings_import = gimp_levels_tool_settings_import;
+ filter_tool_class->settings_export = gimp_levels_tool_settings_export;
+ filter_tool_class->color_picked = gimp_levels_tool_color_picked;
}
static void
@@ -259,9 +259,17 @@ gimp_levels_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Adjust Color Levels"));
+ *description = g_strdup (_("Adjust Color Levels"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("levels");
+ *import_dialog_title = g_strdup (_("Import Levels"));
+ *export_dialog_title = g_strdup (_("Export Levels"));
return g_strdup ("gimp:levels");
}
diff --git a/app/tools/gimpoperationtool.c b/app/tools/gimpoperationtool.c
index 7720bd7..690e739 100644
--- a/app/tools/gimpoperationtool.c
+++ b/app/tools/gimpoperationtool.c
@@ -83,16 +83,13 @@ static gchar * gimp_operation_tool_get_operation (GimpFilterTool *filte
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_operation_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_operation_tool_reset (GimpFilterTool *filter_tool);
-static GtkWidget * gimp_operation_tool_get_settings_ui (GimpFilterTool *filter_tool,
- GimpContainer *settings,
- const gchar *import_dialog_title,
- const gchar *export_dialog_title,
- const gchar *file_dialog_help_id,
- GFile *default_folder,
- GtkWidget **settings_box);
static void gimp_operation_tool_color_picked (GimpFilterTool *filter_tool,
gpointer identifier,
gdouble x,
@@ -142,22 +139,20 @@ gimp_operation_tool_class_init (GimpOperationToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- object_class->finalize = gimp_operation_tool_finalize;
+ object_class->finalize = gimp_operation_tool_finalize;
- tool_class->initialize = gimp_operation_tool_initialize;
- tool_class->control = gimp_operation_tool_control;
+ tool_class->initialize = gimp_operation_tool_initialize;
+ tool_class->control = gimp_operation_tool_control;
- filter_tool_class->get_operation = gimp_operation_tool_get_operation;
- filter_tool_class->dialog = gimp_operation_tool_dialog;
- filter_tool_class->reset = gimp_operation_tool_reset;
- filter_tool_class->get_settings_ui = gimp_operation_tool_get_settings_ui;
- filter_tool_class->color_picked = gimp_operation_tool_color_picked;
+ filter_tool_class->get_operation = gimp_operation_tool_get_operation;
+ filter_tool_class->dialog = gimp_operation_tool_dialog;
+ filter_tool_class->reset = gimp_operation_tool_reset;
+ filter_tool_class->color_picked = gimp_operation_tool_color_picked;
}
static void
gimp_operation_tool_init (GimpOperationTool *tool)
{
- GIMP_FILTER_TOOL_GET_CLASS (tool)->settings_name = NULL; /* XXX hack */
}
static void
@@ -260,15 +255,24 @@ gimp_operation_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
GimpOperationTool *tool = GIMP_OPERATION_TOOL (filter_tool);
- *title = g_strdup (tool->title);
- *description = g_strdup (tool->description);
- *undo_desc = g_strdup (tool->undo_desc);
- *icon_name = g_strdup (tool->icon_name);
- *help_id = g_strdup (tool->help_id);
+ *title = g_strdup (tool->title);
+ *description = g_strdup (tool->description);
+ *undo_desc = g_strdup (tool->undo_desc);
+ *icon_name = g_strdup (tool->icon_name);
+ *help_id = g_strdup (tool->help_id);
+ *has_settings = FALSE;
+ *import_dialog_title = g_strdup_printf (_("Import '%s' Settings"),
+ tool->title);
+ *export_dialog_title = g_strdup_printf (_("Export '%s' Settings"),
+ tool->title);
return g_strdup (tool->operation);
}
@@ -316,38 +320,6 @@ gimp_operation_tool_reset (GimpFilterTool *filter_tool)
gimp_operation_tool_sync_op (tool, GIMP_TOOL (tool)->drawable);
}
-static GtkWidget *
-gimp_operation_tool_get_settings_ui (GimpFilterTool *filter_tool,
- GimpContainer *settings,
- const gchar *import_dialog_title,
- const gchar *export_dialog_title,
- const gchar *file_dialog_help_id,
- GFile *default_folder,
- GtkWidget **settings_box)
-{
- GimpOperationTool *tool = GIMP_OPERATION_TOOL (filter_tool);
- GtkWidget *widget;
- gchar *import_title;
- gchar *export_title;
-
- import_title = g_strdup_printf (_("Import '%s' Settings"), tool->title);
- export_title = g_strdup_printf (_("Export '%s' Settings"), tool->title);
-
- widget =
- GIMP_FILTER_TOOL_CLASS (parent_class)->get_settings_ui (filter_tool,
- settings,
- import_title,
- export_title,
- file_dialog_help_id,
- NULL, /* sic */
- settings_box);
-
- g_free (import_title);
- g_free (export_title);
-
- return widget;
-}
-
static void
gimp_operation_tool_color_picked (GimpFilterTool *filter_tool,
gpointer identifier,
@@ -653,11 +625,6 @@ gimp_operation_tool_set_operation (GimpOperationTool *tool,
gimp_filter_tool_get_operation (filter_tool);
- if (undo_desc)
- GIMP_FILTER_TOOL_GET_CLASS (tool)->settings_name = "yes"; /* XXX hack */
- else
- GIMP_FILTER_TOOL_GET_CLASS (tool)->settings_name = NULL; /* XXX hack */
-
if (tool->options_gui)
{
gtk_widget_destroy (tool->options_gui);
@@ -744,6 +711,8 @@ gimp_operation_tool_set_operation (GimpOperationTool *tool,
(GimpCreatePickerFunc) gimp_filter_tool_add_color_picker,
tool);
+ filter_tool->has_settings = ! GTK_IS_LABEL (tool->options_gui); /* HACK */
+
if (tool->options_box)
{
gtk_box_pack_start (GTK_BOX (tool->options_box), tool->options_gui,
diff --git a/app/tools/gimpthresholdtool.c b/app/tools/gimpthresholdtool.c
index 0af3ab1..853251e 100644
--- a/app/tools/gimpthresholdtool.c
+++ b/app/tools/gimpthresholdtool.c
@@ -57,7 +57,11 @@ static gchar * gimp_threshold_tool_get_operation (GimpFilterTool *filter
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id);
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title);
static void gimp_threshold_tool_dialog (GimpFilterTool *filter_tool);
static void gimp_threshold_tool_config_notify (GObject *object,
@@ -105,17 +109,13 @@ gimp_threshold_tool_class_init (GimpThresholdToolClass *klass)
GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
GimpFilterToolClass *filter_tool_class = GIMP_FILTER_TOOL_CLASS (klass);
- object_class->constructed = gimp_threshold_tool_constructed;
- object_class->finalize = gimp_threshold_tool_finalize;
+ object_class->constructed = gimp_threshold_tool_constructed;
+ object_class->finalize = gimp_threshold_tool_finalize;
- tool_class->initialize = gimp_threshold_tool_initialize;
+ tool_class->initialize = gimp_threshold_tool_initialize;
- filter_tool_class->settings_name = "threshold";
- filter_tool_class->import_dialog_title = _("Import Threshold Settings");
- filter_tool_class->export_dialog_title = _("Export Threshold Settings");
-
- filter_tool_class->get_operation = gimp_threshold_tool_get_operation;
- filter_tool_class->dialog = gimp_threshold_tool_dialog;
+ filter_tool_class->get_operation = gimp_threshold_tool_get_operation;
+ filter_tool_class->dialog = gimp_threshold_tool_dialog;
}
static void
@@ -175,9 +175,17 @@ gimp_threshold_tool_get_operation (GimpFilterTool *filter_tool,
gchar **description,
gchar **undo_desc,
gchar **icon_name,
- gchar **help_id)
+ gchar **help_id,
+ gboolean *has_settings,
+ gchar **settings_folder,
+ gchar **import_dialog_title,
+ gchar **export_dialog_title)
{
- *description = g_strdup (_("Apply Threshold"));
+ *description = g_strdup (_("Apply Threshold"));
+ *has_settings = TRUE;
+ *settings_folder = g_strdup ("threshold");
+ *import_dialog_title = g_strdup (_("Import Threshold Settings"));
+ *export_dialog_title = g_strdup (_("Export Threshold Settings"));
return g_strdup ("gimp:threshold");
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]