[gimp] app: use a propgui for display filters that return a NULL config widget
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: use a propgui for display filters that return a NULL config widget
- Date: Thu, 2 Nov 2017 20:13:51 +0000 (UTC)
commit 5a726a028ecbdc40cc35a2a88642dc766366772d
Author: Ell <ell_se yahoo com>
Date: Thu Nov 2 13:57:02 2017 -0400
app: use a propgui for display filters that return a NULL config widget
When a display filter's configure() function returns NULL, use a
propgui for the filter, instead of not showing a widget at all, to
spare filters the need to manually construct a configuration gui.
app/display/gimpdisplayshell-filter-dialog.c | 3 ++-
app/widgets/gimpcolordisplayeditor.c | 21 ++++++++++++++++++++-
app/widgets/gimpcolordisplayeditor.h | 4 +++-
3 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-filter-dialog.c b/app/display/gimpdisplayshell-filter-dialog.c
index aedd279..307a160 100644
--- a/app/display/gimpdisplayshell-filter-dialog.c
+++ b/app/display/gimpdisplayshell-filter-dialog.c
@@ -118,7 +118,8 @@ gimp_display_shell_filter_dialog_new (GimpDisplayShell *shell)
g_object_unref (stack);
}
- editor = gimp_color_display_editor_new (shell->filter_stack,
+ editor = gimp_color_display_editor_new (shell->display->gimp,
+ shell->filter_stack,
gimp_display_shell_get_color_config (shell),
GIMP_COLOR_MANAGED (shell));
gtk_container_set_border_width (GTK_CONTAINER (editor), 12);
diff --git a/app/widgets/gimpcolordisplayeditor.c b/app/widgets/gimpcolordisplayeditor.c
index 8cb855c..87e3260 100644
--- a/app/widgets/gimpcolordisplayeditor.c
+++ b/app/widgets/gimpcolordisplayeditor.c
@@ -29,6 +29,12 @@
#include "widgets-types.h"
+#include "propgui/propgui-types.h"
+
+#include "core/gimp.h"
+
+#include "propgui/gimppropgui.h"
+
#include "gimpcolordisplayeditor.h"
#include "gimpeditor.h"
@@ -355,7 +361,8 @@ gimp_color_display_editor_dispose (GObject *object)
}
GtkWidget *
-gimp_color_display_editor_new (GimpColorDisplayStack *stack,
+gimp_color_display_editor_new (Gimp *gimp,
+ GimpColorDisplayStack *stack,
GimpColorConfig *config,
GimpColorManaged *managed)
{
@@ -365,12 +372,14 @@ gimp_color_display_editor_new (GimpColorDisplayStack *stack,
gint i;
GList *list;
+ g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
g_return_val_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack), NULL);
g_return_val_if_fail (GIMP_IS_COLOR_CONFIG (config), NULL);
g_return_val_if_fail (GIMP_IS_COLOR_MANAGED (managed), NULL);
editor = g_object_new (GIMP_TYPE_COLOR_DISPLAY_EDITOR, NULL);
+ editor->gimp = gimp;
editor->stack = g_object_ref (stack);
editor->config = g_object_ref (config);
editor->managed = g_object_ref (managed);
@@ -573,6 +582,16 @@ gimp_color_display_editor_dest_changed (GtkTreeSelection *sel,
editor->config_widget = gimp_color_display_configure (display);
+ if (! editor->config_widget)
+ {
+ editor->config_widget =
+ gimp_prop_gui_new (G_OBJECT (display),
+ G_TYPE_FROM_INSTANCE (display), 0,
+ NULL,
+ gimp_get_user_context (editor->gimp),
+ NULL, NULL, NULL);
+ }
+
gtk_frame_set_label (GTK_FRAME (editor->config_frame),
GIMP_COLOR_DISPLAY_GET_CLASS (display)->name);
}
diff --git a/app/widgets/gimpcolordisplayeditor.h b/app/widgets/gimpcolordisplayeditor.h
index e81d8fe..63a9805 100644
--- a/app/widgets/gimpcolordisplayeditor.h
+++ b/app/widgets/gimpcolordisplayeditor.h
@@ -36,6 +36,7 @@ struct _GimpColorDisplayEditor
{
GtkBox parent_instance;
+ Gimp *gimp;
GimpColorDisplayStack *stack;
GimpColorConfig *config;
GimpColorManaged *managed;
@@ -69,7 +70,8 @@ struct _GimpColorDisplayEditorClass
GType gimp_color_display_editor_get_type (void) G_GNUC_CONST;
-GtkWidget * gimp_color_display_editor_new (GimpColorDisplayStack *stack,
+GtkWidget * gimp_color_display_editor_new (Gimp *gimp,
+ GimpColorDisplayStack *stack,
GimpColorConfig *config,
GimpColorManaged *managed);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]