app: bring dialog titles and help IDs to GEGL filter dialogs

Add "title" and "help_id" parameters and members/properties to
GimpToolDialog, GimpToolGui, GimpOperationTool. Also make the order of
parameters more consistent.
This commit is contained in:
Michael Natterer
2016-01-17 20:08:25 +01:00
parent 6e109052ca
commit 06a5b2fa3f
10 changed files with 181 additions and 30 deletions

View File

@ -63,8 +63,10 @@ typedef struct _GimpToolGuiPrivate GimpToolGuiPrivate;
struct _GimpToolGuiPrivate
{
GimpToolInfo *tool_info;
gchar *title;
gchar *description;
gchar *icon_name;
gchar *help_id;
GList *response_entries;
gint default_response;
gboolean focus_on_map;
@ -189,6 +191,12 @@ gimp_tool_gui_finalize (GObject *object)
{
GimpToolGuiPrivate *private = GET_PRIVATE (object);
if (private->title)
{
g_free (private->title);
private->title = NULL;
}
if (private->description)
{
g_free (private->description);
@ -201,6 +209,12 @@ gimp_tool_gui_finalize (GObject *object)
private->icon_name = NULL;
}
if (private->help_id)
{
g_free (private->help_id);
private->help_id = NULL;
}
if (private->response_entries)
{
g_list_free_full (private->response_entries,
@ -245,7 +259,10 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
private = GET_PRIVATE (gui);
private->tool_info = g_object_ref (tool_info);
private->title = g_strdup (tool_info->blurb);
private->description = g_strdup (description);
private->icon_name = g_strdup (gimp_viewable_get_icon_name (GIMP_VIEWABLE (tool_info)));
private->help_id = g_strdup (tool_info->help_id);
private->overlay = overlay;
va_start (args, overlay);
@ -268,6 +285,28 @@ gimp_tool_gui_new (GimpToolInfo *tool_info,
return gui;
}
void
gimp_tool_gui_set_title (GimpToolGui *gui,
const gchar *title)
{
GimpToolGuiPrivate *private;
g_return_if_fail (GIMP_IS_TOOL_GUI (gui));
private = GET_PRIVATE (gui);
if (title == private->title)
return;
g_free (private->title);
private->title = g_strdup (title);
if (! title)
title = private->tool_info->blurb;
g_object_set (private->dialog, "title", title, NULL);
}
void
gimp_tool_gui_set_description (GimpToolGui *gui,
const gchar *description)
@ -319,6 +358,35 @@ gimp_tool_gui_set_icon_name (GimpToolGui *gui,
g_object_set (private->dialog, "icon-name", icon_name, NULL);
}
void
gimp_tool_gui_set_help_id (GimpToolGui *gui,
const gchar *help_id)
{
GimpToolGuiPrivate *private;
g_return_if_fail (GIMP_IS_TOOL_GUI (gui));
private = GET_PRIVATE (gui);
if (help_id == private->help_id)
return;
g_free (private->help_id);
private->help_id = g_strdup (help_id);
if (! help_id)
help_id = private->tool_info->help_id;
if (private->overlay)
{
/* TODO */
}
else
{
g_object_set (private->dialog, "help-id", help_id, NULL);
}
}
void
gimp_tool_gui_set_shell (GimpToolGui *gui,
GimpDisplayShell *shell)
@ -708,7 +776,10 @@ gimp_tool_gui_create_dialog (GimpToolGui *gui,
{
private->dialog = gimp_tool_dialog_new (private->tool_info,
screen, monitor,
private->title,
private->description,
private->icon_name,
private->help_id,
NULL);
for (list = private->response_entries; list; list = g_list_next (list))