gimp r26700 - in trunk: . app/plug-in
- From: neo svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r26700 - in trunk: . app/plug-in
- Date: Thu, 21 Aug 2008 16:27:07 +0000 (UTC)
Author: neo
Date: Thu Aug 21 16:27:06 2008
New Revision: 26700
URL: http://svn.gnome.org/viewvc/gimp?rev=26700&view=rev
Log:
2008-08-21 Sven Neumann <sven gimp org>
* app/plug-in/gimppluginprocedure.c
* app/plug-in/gimptemporaryprocedure.c: don't just free the
return
values when running procedures asynchronously. Instead examine
them and display the error message if there's one.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run_temp): return NULL if
procedure->plug_in is not set.
* app/plug-in/gimpplugin-message.c: comment.
Modified:
trunk/ChangeLog
trunk/app/plug-in/gimpplugin-message.c
trunk/app/plug-in/gimppluginmanager-call.c
trunk/app/plug-in/gimppluginprocedure.c
trunk/app/plug-in/gimptemporaryprocedure.c
Modified: trunk/app/plug-in/gimpplugin-message.c
==============================================================================
--- trunk/app/plug-in/gimpplugin-message.c (original)
+++ trunk/app/plug-in/gimpplugin-message.c Thu Aug 21 16:27:06 2008
@@ -436,7 +436,7 @@
break;
case GIMP_PDB_ERROR_HANDLER_PLUGIN:
- /* the plug-in is responsible for this error */
+ /* the plug-in is responsible for handling this error */
break;
}
}
Modified: trunk/app/plug-in/gimppluginmanager-call.c
==============================================================================
--- trunk/app/plug-in/gimppluginmanager-call.c (original)
+++ trunk/app/plug-in/gimppluginmanager-call.c Thu Aug 21 16:27:06 2008
@@ -289,7 +289,8 @@
GimpTemporaryProcedure *procedure,
GValueArray *args)
{
- GimpPlugIn *plug_in;
+ GValueArray *return_vals = NULL;
+ GimpPlugIn *plug_in;
g_return_val_if_fail (GIMP_IS_PLUG_IN_MANAGER (manager), NULL);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
@@ -302,7 +303,6 @@
if (plug_in)
{
GimpPlugInProcFrame *proc_frame;
- GValueArray *return_vals;
GPProcRun proc_run;
proc_frame = gimp_plug_in_proc_frame_push (plug_in, context, progress,
@@ -346,13 +346,7 @@
gimp_plug_in_proc_frame_unref (proc_frame, plug_in);
g_object_unref (plug_in);
-
- return return_vals;
- }
- else
- {
- /* can we actually ever get here? */
- return gimp_procedure_get_return_values (GIMP_PROCEDURE (procedure),
- FALSE, NULL);
}
+
+ return return_vals;
}
Modified: trunk/app/plug-in/gimppluginprocedure.c
==============================================================================
--- trunk/app/plug-in/gimppluginprocedure.c (original)
+++ trunk/app/plug-in/gimppluginprocedure.c Thu Aug 21 16:27:06 2008
@@ -231,11 +231,40 @@
plug_in_procedure,
args, FALSE, display);
- /* In case of errors, gimp_plug_in_manager_call_run() may return
- * return_vals, even if run asynchronously.
- */
if (return_vals)
- g_value_array_free (return_vals);
+ {
+ switch (g_value_get_enum (&return_vals->values[0]))
+ {
+ case GIMP_PDB_SUCCESS:
+ break;
+
+ case GIMP_PDB_CALLING_ERROR:
+ if (return_vals->n_values > 1 &&
+ G_VALUE_HOLDS_STRING (&return_vals->values[1]))
+ {
+ gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
+ _("Calling error for procedure '%s':\n"
+ "%s"),
+ gimp_object_get_name (GIMP_OBJECT (procedure)),
+ g_value_get_string (&return_vals->values[1]));
+ }
+ break;
+
+ case GIMP_PDB_EXECUTION_ERROR:
+ if (return_vals->n_values > 1 &&
+ G_VALUE_HOLDS_STRING (&return_vals->values[1]))
+ {
+ gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
+ _("Execution error for procedure '%s':\n"
+ "%s"),
+ gimp_object_get_name (GIMP_OBJECT (procedure)),
+ g_value_get_string (&return_vals->values[1]));
+ }
+ break;
+ }
+
+ g_value_array_free (return_vals);
+ }
}
const gchar *
Modified: trunk/app/plug-in/gimptemporaryprocedure.c
==============================================================================
--- trunk/app/plug-in/gimptemporaryprocedure.c (original)
+++ trunk/app/plug-in/gimptemporaryprocedure.c Thu Aug 21 16:27:06 2008
@@ -116,7 +116,40 @@
GIMP_TEMPORARY_PROCEDURE (procedure),
args);
- g_value_array_free (return_vals);
+ if (return_vals)
+ {
+ switch (g_value_get_enum (&return_vals->values[0]))
+ {
+ case GIMP_PDB_SUCCESS:
+ break;
+
+ case GIMP_PDB_CALLING_ERROR:
+ if (return_vals->n_values > 1 &&
+ G_VALUE_HOLDS_STRING (&return_vals->values[1]))
+ {
+ gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
+ _("Calling error for procedure '%s':\n"
+ "%s"),
+ gimp_object_get_name (GIMP_OBJECT (procedure)),
+ g_value_get_string (&return_vals->values[1]));
+ }
+ break;
+
+ case GIMP_PDB_EXECUTION_ERROR:
+ if (return_vals->n_values > 1 &&
+ G_VALUE_HOLDS_STRING (&return_vals->values[1]))
+ {
+ gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
+ _("Execution error for procedure '%s':\n"
+ "%s"),
+ gimp_object_get_name (GIMP_OBJECT (procedure)),
+ g_value_get_string (&return_vals->values[1]));
+ }
+ break;
+ }
+
+ g_value_array_free (return_vals);
+ }
}
const gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]