2006-11-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-rc.c (plug_in_def_deserialize): applied
patch from Jernej Simoncic which enables environment variables and
${gimp_foo} variables in plug-in filename and converts them to
filesystem encoding. Fixes bug #375349.
(plug_in_rc_write): write UTF-8 filenames to pluginrc.
2006-11-09 Sven Neumann <sven@gimp.org>
* configure.in: added missing quotes in test for libcurl.
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): try not to crash on
invalid menu paths and avoid a string copy for the common case.
* app/composite/gimp-composite-mmx.c: commented out unused code.
2006-11-02 Michael Natterer <mitch@gimp.org>
Don't let each terminating plug-in procedure end its progress,
because that progress may still be in use by another plug-in.
* app/plug-in/gimpplugin-progress.[ch]
(gimp_plug_in_progress_attach)
(gimp_plug_in_progress_detach): new functions which maintain
a simple attach count for a GimpProgress
* app/plug-in/gimpplugin-progress.c
* app/plug-in/gimppluginprocframe.c: call attach() when setting
proc_frame->progress. Call detach() in gimp_plug_in_progress_end()
and only call gimp_progress_end() if detaching lowered the attach
count to 0.
2006-11-01 Sven Neumann <sven@gimp.org>
* plug-ins/common/lcms.c: in interactive mode, return an extra
boolean indicating the choide for the "Don't ask me again"
toggle.
* app/plug-in/plug-in-icc-profile.c: look for the extra return
value and update the "color-profile-policy" in gimprc.
2006-11-01 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_get_return_vals): no need to truncate the
GValueArray if the plug-in returned too much values, simply return
all values instead.
2006-10-27 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig-enums.[ch]
* libgimpconfig/gimpcolorconfig.c
* libgimpconfig/gimpconfig.def: removed unused enum
GimpColorFileOpenBehaviour.
* app/core/core-enums.[ch]: added enum GimpColorProfilePolicy.
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added property
"color-profile-policy".
* app/plug-in/Makefile.am
* app/plug-in/plug-in-icc-profile.[ch]: new files that wrap
usage
of the lcms plug-in.
* app/file/file-open.c: implement the user-configured policy for
embedded color profiles.
* app/widgets/gimpimageprofileview.c: use the wrapper to call
the
plug-in-icc-profile-info procedure.
* app/widgets/gimptoolbox-dnd.c: pass TRUE for "attach_comment"
parameter to gimp_create_image().
* app/core/gimptemplate.c
* app/file/Makefile.am: cosmetic changes.
* app/Makefile.am: some resorting to make the beast link again.
2006-10-27 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_proc_run):
don't send a return value if executing the procedure closed the
plug-in (as is the case with gimp-quit). Fixes bug #332608.
2006-10-25 Michael Natterer <mitch@gimp.org>
Added mechanism that should prevent undo corruption by
broken plug-ins and scripts. Work in progress.
* app/plug-in/Makefile.am
* app/plug-in/gimpplugin-cleanup.[ch]: new files that (for now)
keep track of the undo groups plug-in procedures open and close,
and can fix an image's undo group state after a plug-in messed.
* app/plug-in/gimppluginprocframe.h (struct GimpPlugInProcFrame):
keep a list of plug-in cleanup structs.
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_dispose): call gimp_plug_in_cleanup() if
the list is not empty.
* tools/pdbgen/pdb/undo.pdb: keep track of undo groups using
the new gimp_plug_in_cleanup_undo_group_start() and _end()
functions. Fail if any of the functions returns FALSE.
* app/pdb/undo_cmds.c: regenerated.
2006-10-23 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
if plug_in_rc_parse() returns an empty list it's not neccessarily
an eror, so check the "error" variable before accessing it.
Fixes bug #363345.
2006-10-17 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_set_image_types): include the procedure
name in the output on stderr.
2006-10-09 Michael Natterer <mitch@gimp.org>
Added message severities and make sure all messages are routed
through a central function, so redirecting to the error console or
stderr work again:
* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
WARNING, ERROR }.
* app/core/gimp.[ch] (gimp_message)
(gimp_message_valist): added severity parameter. Changed
"GimpProgress *progress" parameter to "GObject *handler", where
"handler" can be either a GimpProgress, a GtkWidget or NULL.
* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
--console-messages again. Always dispatch to the GUI message
handler first if it exists.
* app/gui/gui-message.[ch]: pass severity parameters around.
(gui_message_error_dialog): if "handler" is a progress, dispatch
the message to it first. If it is a widget (and *not* a progress),
use a GtkMessageDialog on top of that widget's toplevel. Fall
back to the usual GimpErrorDialog otherwise.
* app/core/gimpprogress.[ch] (gimp_progress_message): added
severity parameter. Also added boolean return value to the virtual
function so it can decide to fail if it can't handle the message.
* app/display/gimpdisplay.c: implement GimpProgress::message() and
redirect the message to GimpDisplayShell.
* app/display/gimpdisplayshell-progress.c: implement
GimpProgress::message() and redirect the message to GimpStatusbar
if it is not an error and if the status bar is visible.
* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
but fail on messages that contain a newline. Show the right icons
for the message severities (work in progress).
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_message() and its _valist() variant.
* app/widgets/gimperrorconsole.[ch]: show the right icons for the
message severities.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
return TRUE to swallow all messages.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_show_message_dialog(). Added gimp_get_message_stock_id().
* app/errors.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c
* app/actions/text-editor-commands.c
* app/actions/vectors-commands.c
* app/core/gimpimage-convert.c
* app/core/gimpimagefile.c
* app/dialogs/convert-dialog.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/pdb/gimppdb.c
* app/plug-in/gimpplugin.c
* app/tools/gimpimagemaptool.c
* app/tools/gimptool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/palette.pdb: added severity parameter to
gimp_message() calls. Convert all calls to
gimp_show_message_dialog() and gimp_display_shell_message() to
gimp_message(). Also converted some more g_message() calls.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/image_cmds.c
* app/pdb/message_cmds.c
* app/pdb/palette_cmds.c: regenerated.
2006-09-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.c (gimp_plug_in_close): if the plug-in is
in a different process group than GIMP, kill the entire group so
the plug-in's children are killed too.
* plug-ins/uri/uri-backend-wget.c (uri_backend_load_image): open
a process group so the wget process gets killed (bug #356643).
2006-09-19 Michael Natterer <mitch@gimp.org>
Fix disabling of deprecated procedures (bug #345733):
* app/pdb/gimppdb.c (gimp_pdb_register_procedure): silently drop
deprecated procedures if they are disabled via --pdb-compat-mode.
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_proc_run):
remove code that handles deprecated procedures even when they are
disabled, the change above makes this impossible.
Call plug_in_params_to_args() also if we didn't find the
procedure, so the PDB doesn't choke on NULL args.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added a convenience function
to retrieve the translated procedure label.
* app/widgets/gimpfiledialog.c
* app/widgets/gimpimagepropview.c: use it.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-locale-domain.h: corrected comment.
* app/widgets/gimpimagepropview.[ch]: added file related info to
the Image Properties dialog as requested in bug #86276.
2006-09-06 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-history.c
(gimp_plug_in_manager_history_add): bail out early if the
procedure is already at the start of the list.
2006-09-05 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
sort the load and save procedures after adding them to the
database, otherwise there is nothing to sort.
2006-08-16 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpplugin.c: improved debugging output.
* libgimp/gimppaletteselect.c: the palette callback gets passed
the number of colors.
2006-08-15 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/xcf/xcf-save.c(1464) : error C2036: 'void *' : unknown size
pointer arithmetics on void a pointer looks like a GCC extension
* app/tools/gimpbrightnesscontrasttool.c
app/tools/gimpcolorbalancetool.c
app/tools/gimphuesaturationtool.c
app/tools/gimpcolorizetool.c : #include "core/gimp.h" for gimp_message
* app/tools/gimpiscissorstool.c : use RINT() rather than rint()
* app/widgets/gimpcontrollerlist.c : #include "gimpwidgets-utils.h"
for gimp_show_message_dialog
* app/core/gimpprogress.c(229) : 'gimp_progress_message' must
return a value
2006-08-09 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-params.c (plug_in_params_to_args): it's a
bad idea to access an array before checking if it's long enough.
Fixes bug #350555. Also added some comments, the logic here is
really weird.
2006-08-09 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_dispose):
chain up.
* libgimp/gimpzoompreview.[ch]: added API to get a pointer to the
GimpZoomModel used by the preview and added a constructor that
allows to pass a model.
* libgimp/gimpui.def: updated.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/gimppluginmanager-history.[ch]: new files that
deal
with the history of plug-in procedures.
* app/actions/plug-in-actions.[ch]
* app/plug-in/gimppluginmanager.[ch]: changed accordingly.
2006-08-08 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-commands.c (plug_in_run_cmd_callback): add
all procedures that take an image paramter to the history of
last-used procedures. Fixes bug #348243.
(plug_in_repeat_cmd_callback): use
plug_in_collect_drawable_args()
to construct the procedure arguments.
* app/actions/plug-in-actions.c
* app/plug-in/gimppluginmanager.[ch]: renamed "last_plug_ins" to
"history"; it's actually a list of procedures.
2006-07-19 Sven Neumann <sven@gimp.org>
Make message dialogs transient for the progress window.
Addresses
bug #347214.
* app/core/gimp-gui.[ch]: added a progress parameter to
gimp_message(). Let gimp_message() deal with optionally
delegating the message to gimp_progress_message().
* app/errors.c: changed accordingly.
* app/core/gimpprogress.[ch] (gimp_progress_message): return a
boolean indicating whether the message was handled.
* app/gui/Makefile.am
* app/gui/gui-message.[ch]
* app/gui/gui-vtable.c: moved message handling to a new file.
Only
use the global error dialog for messages without a progress.
Otherwise attach an error dialog to the progress and try to make
it transient to the progress window.
* tools/pdbgen/pdb/message.pdb:
* app/plug-in/gimpplugin-progress.[ch]: don't delegate messages
to
the progress interface, this is handled by gimp_message() now.
* app/pdb/message_cmds.c: regenerated.
* app/plug-in/gimpplugin.c
* app/actions/documents-commands.c: formatting.
2006-06-16 Michael Natterer <mitch@gimp.org>
Allow plug-ins to register in <Layers>, <Channels>, <Vectors> and
<ColormapEditor>:
* app/pdb/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): added the argument type
checks for the new locations. Factored out duplicated code.
* app/menus/menus.c (menus_init): add the "plug-in" action
group to the resp. UI managers.
* app/menus/plug-in-menus.c (plug_in_menus_menu_path_added):
support them here too.
* app/widgets/gimpimageeditor.[ch]
* app/widgets/gimpitemtreeview.[ch]: added get_image() functions.
* app/actions/plug-in-commands.c: added new utility functions
which collect plug-in arguments from GimpImageEditor and
GimpItemTreeView widgets.
* menus/channels-menu.xml
* menus/colormap-editor-menu.xml
* menus/layers-menu.xml
* menus/vectors-menu.xml: added separators.
* menus/image-menu.xml.in: added a "Colormap" placeholder in
Colors/Map
* plug-ins/common/colormap-remap.c (query): register a menu
entry in <ColormapEditor> and moved the existing one to the
"Colormap" placeholder. Also register an icon to make this
menu item clearly distinct from the others in that menu.
Unrelated:
* plug-ins/common/colormap-remap.c (run): cleaned up quite a
bit. Fixed last-vals code and simplified map handling.
(remap_swap): removed, folded into run().
(remap_dialog): use the passed map to initialize the dialog so it
starts with the last-vals. Tweaked layout to have 16 columns
and simplified cell renderer creation.
2006-06-16 Sven Neumann <neumann@jpk.com>
* app/pdb/gimppluginprocedure.c (gimp_plug_in_procedure_get_label):
* plug-ins/script-fu/script-fu-interface.c (script_fu_interface):
when cutting away ellipsis, also look for U+2026 HORIZONTAL ELLIPSIS.
2006-06-13 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpenvirontable.c (gimp_environ_table_populate):
Free the string vector returned by g_listenv().
* libgimpwidgets/gimpwidgets.def: Remove deprecated
gimp_prop_file_entry_new.
2006-06-12 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpenvirontable.c (gimp_environ_table_populate):
Use g_listenv() and g_getenv() instead of looking at environ
directly. Fixes breakage on Win32 when any (!) environment
variable has a non-ASCII value, as environ is in system codepage,
while we want UTF-8.
2006-06-01 Sven Neumann <sven@gimp.org>
Added basic framework for plug-ins to access the use_cpu_accel
configuration (bug #342860):
* app/composite/gimp-composite.[ch]: added new function
gimp_composite_use_cpu_accel().
* libgimpbase/gimpprotocol.[ch]: added use_cpu_accel to the config
message.
* app/plug-in/gimppluginmanager-call.c: pass the return value of
gimp_composite_use_cpu_accel() for config.use_cpu_accel.
* libgimp/gimp.[ch]: make the config value accessible by means of
a new function gimp_use_cpu_accel().
* libgimp/gimp.def: updated.
2006-05-16 Sven Neumann <sven@gimp.org>
* app/app_procs.c (app_run): indentation.
* app/core/gimp.c (gimp_real_initialize)
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
moved a call to status_callback() to the plug-in manager.
2006-05-13 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/core/gimp-util.c : dont include "config/gimpbaseconfig.c", it
gives an redefinition error with msvc. Instead include
config/gimpbaseconfig.h and libgimpconfig/gimpconfig-path.h
* plug-ins/common/psd_save.c : fix c99isms (declarations only at the
start of a block)