2008-05-06 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin-message.c
(gimp_plug_in_handle_proc_install): show an error message instead
of crashing when a plug-in registers a prodecure with a NULL
argument or return value name. Also introduce two macros which
make the utf-8 validation of all strings much more readable.
svn path=/trunk/; revision=25577
2008-04-21 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin-cleanup.c: do the actual cleanup in
utility functions and reduce gimp_plug_in_cleanup() to merely
iterating the cleanup lists.
svn path=/trunk/; revision=25511
2008-04-21 Michael Natterer <mitch@gimp.org>
Move the shadow tiles from the image to the drawable.
Fixes bug #100469.
* app/core/Makefile.am
* app/core/gimpdrawable-shadow.[ch]: new files implementing
the shadow tiles.
* app/core/gimpimage.[ch]: remove the shadow tile manager from the
GimpImage struct. Remove gimp_image_get_shadow_tiles() and
_free_shadow_tiles().
* app/core/gimpdrawable.[ch]: add the shadow tile manager
here. Remove get_shadow_tiles() and merge_shadow(). Free the
shadow tiles in finalize and when the drawable gets removed from
the image.
* app/core/gimpdrawable-brightness-contrast.c
* app/core/gimpdrawable-color-balance.c
* app/core/gimpdrawable-colorize.c
* app/core/gimpdrawable-curves.c
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-hue-saturation.c
* app/core/gimpdrawable-invert.c
* app/core/gimpdrawable-levels.c
* app/core/gimpdrawable-operation.c
* app/core/gimpdrawable-posterize.c
* app/core/gimpdrawable-threshold.c
* app/core/gimpimagemap.c: changed accordingly. Free the shadow tiles
after using them.
* app/plug-in/gimpplugin-cleanup.[ch]: add
gimp_plug_in_cleanup_add_shadow() and _remove_shadow() which keep
track of whether shadow tiles were created on behalf of a plug-in
procedure.
(gimp_plug_in_cleanup): free shadow tiles which were created but
not destroyed by a plug-in procedure.
* app/plug-in/gimpplugin-message.c (plug_in_handle_tile_request):
call gimp_plug_in_cleanup_add_shadow() whenever a plug-in requests
shadow tiles.
* tools/pdbgen/pdb/drawable.pdb: use the new drawable shadow
API. Add new procedure gimp-drawable-free-shadow. Call
gimp_plug_in_cleaup_remove_shadow() when it gets called.
* tools/pdbgen/pdb/image.pdb: deprecate gimp-image-free-shadow.
Calling it has no effect any longer.
* app/pdb/drawable-cmds.c
* app/pdb/image-cmds.c
* app/pdb/internal-procs.c
* libgimp/gimpimage_pdb.[ch]
* libgimp/gimpdrawable_pdb.[ch]: regenerated.
svn path=/trunk/; revision=25510
2008-04-17 Michael Natterer <mitch@gimp.org>
Add some infrastructure that will be used soon:
* app/plug-in/gimppluginprocframe.[ch]: replace "cleanup" list
by two lists "image_cleanups" and "item_cleanups" and call
gimp_plug_in_cleanup() if any of them is non-NULL.
* app/plug-in/gimpplugin-cleanup.c: add private new() and free()
functions for GimpPlugInCleanupImage structs and add the same
infrastructure for GimpPlugInCleanupItem structs which are
currently unused.
svn path=/trunk/; revision=25497
2008-04-14 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_tile_req):
made messages about killed plug-ins due to invalid tile requests
more verbose. They are good for debugging only and not translated,
so more info can't hurt. Also fail (kill the plug-in) if a tile is
requested that lives on the undo stack.
svn path=/trunk/; revision=25487
2008-04-09 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-in-menu-path.c (plug_in_menu_path_map):
removed
function name from debug output.
svn path=/trunk/; revision=25443
2008-04-09 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-menu-path.c (plug_in_menu_path_map): enable
and improve debug output for mapped menu paths.
svn path=/trunk/; revision=25437
2008-04-09 Michael Natterer <mitch@gimp.org>
* menus/image-menu.xml.in: add "File/New" submenu and an "Acquire"
placeholder inside it. Removed "File/Acquire". Removed the "Xtns"
menu.
* app/plug-in/plug-in-menu-path.[ch] (plug_in_menu_path_map):
add "menu_label" parameter and add support for mapping around
individual menu items while preserving their translation and
mnemonics. Add mappings for the known menus from "Xtns" and map
them to "File/New".
Map everything else in "Xtns" to "Filters/Extensions".
* app/plug-in/gimppluginmanager-menu-branch.c
(gimp_plug_in_manager_add_menu_branch): pass the menu_label so
menu branches can be mapped with their translation.
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): pass NULL because mapping
menu items which have no submenu makes no sense and is redundant.
* app/actions/image-actions.c: remove the "Xtns" menu action.
* app/actions/file-actions.c: add action for the "File/New" menu
and removed the "File/Acquire" action.
* app/actions/edit-actions.c: rename "Paste as New" to
"From Clipboard".
* menus/image-menu.xml.in: add the "From Clipboard" action to the
"File/New" menu.
svn path=/trunk/; revision=25427
2008-04-08 Michael Natterer <mitch@gimp.org>
* menus/image-menu.xml.in: add placeholder "Help/Programming"
* plug-ins/common/plugin-browser.c
* plug-ins/common/procedure-browser.c: move the plug-in and
procedure browsers there.
* menus/image-menu.xml.in: moved the (now by default empty)
"Extensions" placeholder from "Xtns" to "Filters". Let's see what
cruft shows up there.
* app/plug-in/plug-in-menu-path.c: map "Xtns/Extensions" to
"Filters/Extensions".
svn path=/trunk/; revision=25415
2008-04-08 Michael Natterer <mitch@gimp.org>
Start getting rid of the "Xtns" menu:
* app/actions/dialogs-actions.c (dialogs_toplevel_actions):
renamed "Module Manager" to "Modules".
* menus/image-menu.xml.in: move it to "Edit/Preferences" for the
time being so it doesn't block the removal of the "Xtns" menu.
Move "Languages" placeholder from "Xtns" to "Filters".
* app/plug-in/plug-in-menu-path.c (menu_path_mappings): map
"Xtns/Languages" to "Filters/Languages".
svn path=/trunk/; revision=25414
2008-03-28 Mukund Sivaraman <muks@mukund.org>
Fixes for some Sparse reported issues in app/
* app/core/gimpdrawable-operation.c: Added prototype for
gegl_node_add_child().
* app/core/gimpcurve.c: Remove C99 code
* app/tools/gimpcurvestool.c
* app/tools/gimpperspectiveclonetool.c
* app/vectors/gimpstroke.c: Mark functions as static.
* app/base/siox.c: state is a pointer.
* app/plug-in/gimppluginprocframe.c: values is a pointer.
* app/plug-in/plug-in-rc.c: plug_in_rc_parse() returns a pointer.
* app/plug-in/gimpinterpreterdb.c: Check program[0] for '\0'
instead of the pointer program itself.
svn path=/trunk/; revision=25292
2008-03-27 Sven Neumann <sven@gimp.org>
Properly pass the focus from the core to plug-in dialogs:
* libgimpbase/gimpprotocol.[ch]: added a user_time member to the
GimpConfig struct. Bumped the protocol version to 0x0012.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: added gimp_get_user_time() to get the
timestamp of the last user interaction.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run): pass the timestamp to in the
GimpConfig message.
* libgimp/gimp.[ch]:
* libgimp/gimp.def: added method to access the timestamp as set
in the config message.
* libgimp/gimpui.c (gimp_ui_init): construct a fake startup ID and
set the DESKTOP_STARTUP_ID environment variable.
svn path=/trunk/; revision=25263
2008-03-21 Michael Natterer <mitch@gimp.org>
Remove the toolbox menu:
* configure.in: remove --enable-toolbox-menu option.
* menus/Makefile.am
* menus/toolbox-menu.xml.in: removed.
* menus/image-menu.xml.in: add the debug menu here.
* menus/menus.xsl: remove transformations depending on whether
there is a toolbox menu or not.
* app/menus/Makefile.am
* app/menus/toolbox-menu.[ch]: removed.
* app/menus/menus.c: remove the toolbox menu but keep the
<Toolbox> UI manager around so we can configure its actions
separate from normal docks.
* app/actions/image-actions.c (image_actions): remove the action
for the toolbox menubar.
* app/widgets/gimptoolbox.c: remove all menu code.
* app/plug-in/plug-in-menu-path.c: map plug-in registered toolbox
menu items to their new location in the image menu
unconditionally.
* plug-ins/common/screenshot.c
* plug-ins/common/uniteditor.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/scripts/web-browser.scm
* plug-ins/twain/twain.c
* plug-ins/winsnap/winsnap.c: remove menu registrations under
<Toolbox>/File and change <Toolbox>/Help to <Image>/Help. Leave
<Toolbox>/Xtns untouched until its final location and name are
decided.
svn path=/trunk/; revision=25156
2008-03-20 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_set_file_proc): don't allow "file:" to be
registered as prefix. This seems to happen with the uri-gio plug-in
when no gvfs backends are installed.
svn path=/trunk/; revision=25139
2008-02-07 Michael Natterer <mitch@gimp.org>
* app/base/base-utils.[ch]: add get_pid() which returns getpid().
* app/base/base.c
* app/base/tile-swap.c
* app/core/gimp-utils.c
* app/plug-in/gimppluginshm.c
* app/widgets/gimpselectiondata.c
* tools/pdbgen/pdb/misc.pdb: use it instead of getpid() and remove
all the #ifdef'ed includes getpid() needs.
* tools/pdbgen/app.pl: remove support for these includes. Also
remove some perl cruft in the include handling which is not needed
any longer.
* app/pdb/misc_cmds.c: regenerated.
svn path=/trunk/; revision=24827
2007-12-20 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-menu-branch.[ch]: added accessor
for the list of menu branches.
* app/actions/plug-in-actions.c (plug_in_actions_setup): use it.
svn path=/trunk/; revision=24417
2007-12-11 Sven Neumann <sven@gimp.org>
* libgimpbase/gimpprotocol.c: made the code more robust against
errors on the wire protocol level.
* app/plug-in/gimpplugin-message.c: added sanity checks to message
handlers. This doesn't keep us from crashing on invalid input, but
we will at least get some warnings before that happens.
svn path=/trunk/; revision=24317
2007-10-25 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpplugin-message.c (gimp_plug_in_handle_proc_install):
set the procedure name before parsing the image types.
Fixes bug #490055.
svn path=/trunk/; revision=23943
2007-10-09 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-restore.c
(gimp_plug_in_manager_add_from_rc): changed message about
missing
executable and only output it if gimp is verbose.
svn path=/trunk/; revision=23785
2007-09-18 Michael Natterer <mitch@gimp.org>
* configure.in: replaced HAVE_GDK_QUARTZ conditional by
--disable-toolbox-menu configure switch which defaults to "yes"
normally and to "no" on quartz.
* app/widgets/gimptoolbox.c: changed #ifdef accordingly.
* app/plug-in/Makefile.am
* app/plug-in/plug-in-menu-path.[ch]: new generic machanism to map
around menu locations. If ENABLE_TOOLBOX_MENU is false, map
"Xtns" and "Help" from <Toolbox> to <Image>.
* app/plug-in/gimppluginmanager-menu-branch.c
* app/plug-in/gimppluginprocedure.c: run all menu paths through the
new mapping function.
* menus/Makefile.am
* menus/menus.xsl
* menus/image-menu.xml.in: add both the "Xtns" and "Help" menus to
the image menubar if TOOLBOX_MENU is false.
svn path=/trunk/; revision=23581
2007-08-15 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: remove GimpPlugInDebug typedef.
* app/plug-in/plug-in-types.h: added it here instead.
* app/core/gimpchannel-combine.h
* app/widgets/gimppropwidgets.[ch]: match parameter names
in .c, .h and API docs to make gtk-doc happy.
svn path=/trunk/; revision=23275
2007-08-07 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/plug-in-error.[ch]: new files defining the
GimpPlugIn error domain.
* app/plug-in/plug-in-icc-profile.c (plug_in_icc_profile_apply_rgb):
set an error code.
* app/file/file-open.c (file_open_profile_apply_rgb): only do the
profile conversion if color management is enabled. If the plug-in
is missing, show a warning and disable color management.
Fixes bug #434205.
* modules/cdisplay_lcms.c (cdisplay_lcms_get_rgb_profile): check
if we actually got a profile before checking its color space.
* libgimpwidgets/gimpwidgetstypes.h: removed leftover typedef
for GimpResolutionEntry.
svn path=/trunk/; revision=23130
2007-07-30 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpplugin.[ch]: don't call gp_quit_write() on a
plug-in with a broken pipe. Fixes bug #460878.
svn path=/trunk/; revision=23076
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-20 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpplugin.c: In GLib 2.13 pipe() is no longer
defined as a macro in gwin32.h. Define it here in that case.
svn path=/trunk/; revision=22802
2007-06-07 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am
* app/core/Makefile.am
* app/tools/Makefile.am
* app/display/Makefile.am
* app/widgets/Makefile.am
* app/base/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* libgimp/Makefile.am
* libgimpthumb/Makefile.am
* tools/pdbgen/Makefile.am
* libgimpwidgets/Makefile.am: applied the remaining parts of the
patch from Daniel Richard G. to fix out-of-source-tree builds
(bug #444960).
svn path=/trunk/; revision=22735
2007-04-24 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: use GQuark for locale and
help domains to avoid duplicating the same strings many times.
* app/plug-in/gimppluginmanager-restore.c: removed FIXME.
svn path=/trunk/; revision=22304
2007-04-24 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager-restore.c
(gimp_plug_in_manager_restore): set the default plug-in locale
domain on all GimpPlugInDefs which don't register a locale domain
themselves. Fixes bug #430146.
svn path=/trunk/; revision=22303
2007-04-18 Sven Neumann <sven@gimp.org>
* app/plug-in/Makefile.am
* app/plug-in/gimppluginmanager.[ch]
* app/plug-in/gimppluginmanager-restore.[ch]: moved
gimp_plug_in_manager_restore() to it's own file.
* app/core/gimp.c: changed accordingly.
* app/Makefile.am (LDFLAGS): convince the linker to do its job.
svn path=/trunk/; revision=22286
2007-04-18 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
try to improve readability by moving code to helper functions.
svn path=/trunk/; revision=22283
2007-04-18 Sven Neumann <sven@gimp.org>
* app/plug-in/gimpinterpreterdb.[ch]: added a function that
returns all file extensions registered in the interpreter db.
* app/plug-in/gimppluginmanager.c (gimp_plug_in_manager_restore):
if the PATHEXT environment variable is set, append all registered
file extensions to it. This way GIMP can recognize Python scripts
as plug-ins on platforms where the executable bit is unknown.
svn path=/trunk/; revision=22282
2007-04-17 Michael Natterer <mitch@gimp.org>
* app/config/gimprc.c
* app/plug-in/gimppluginmanager.c
* app/plug-in/gimpplugin.c
* app/gui/themes.c: don't translate --verbose or g_printerr()
messages, they are debugging output that often end up in bugzilla
and should not depend on the locale.
svn path=/trunk/; revision=22262
2007-03-19 Michael Natterer <mitch@gimp.org>
* app/actions/plug-in-actions.c
* app/menus/plug-in-menus.c: GimpPlugInProcedure has a boolean
member "file_proc" now, use it instead of checking prefixes,
extensions and magics manually.
* app/plug-in/gimppluginprocedure.c
(gimp_plug_in_procedure_set_mime_type)
(gimp_plug_in_procedure_set_thumb_loader): set
plug_in_proc->file_proc to TRUE here too.
* plug-ins/common/pnm.c: register "image/x-portable-anymap" as
mime-type and "pnm" as extension for file-pnm-save so it's
recognized as file procedure.
svn path=/trunk/; revision=22152
2007-03-16 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_get_return_vals): don't just g_free() the
GValueArray after we memcpy()-stole its values because this both
leaks the contained array of GValues and crashes with glib trunk
where GValueArray is slice-allocated. Instead, free the array of
GValues manually, set it to NULL and use g_value_array_free().
svn path=/trunk/; revision=22134
2007-03-16 Michael Natterer <mitch@gimp.org>
Fix stuck progress bars (bug #393832):
* app/plug-in/gimpplugin-progress.[ch] (gimp_plug_in_progress_end):
added PlugInProcFrame parameter instead of blindly using the topmost
in the procedure stack...
* app/plug-in/gimppluginprocframe.c
(gimp_plug_in_proc_frame_dispose): ...because we call it from here,
when the proc_frame is already removed from the procedure stack.
Unrelated:
* plug-ins/script-fu/scripts/difference-clouds.scm: use
RUN-INTERACTVE instead of 0, added (gimp-displays-flush)
* plug-ins/common/snoise.c (solid_noide): update the progress to
1.0 after rendering.
svn path=/trunk/; revision=22131
2007-03-14 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpplugin.c (gimp_plug_in_new): require either
"procedure" or "prog" being non-NULL, not both of them at the same
time. Get the executable name from the procedure if the procedure
was passed.
* app/plug-in/gimppluginmanager-call.c
(gimp_plug_in_manager_call_run): pass a NULL prog since we already
pass the procedure.
svn path=/trunk/; revision=22122
2007-03-10 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: cache the result of
gimp_plug_in_procedure_get_label() and made the return value
const.
* app/actions/plug-in-actions.c
* app/plug-in/gimpplugin-cleanup.c
* app/plug-in/gimppluginmanager.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed accordingly.
* app/file/file-open.c
* app/file/file-save.c: include the plug-in name (or actually
the
label) in the error messages.
svn path=/trunk/; revision=22095
2007-03-05 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: added typdef GimpMemsizeFunc.
* app/core/gimp-utils.[ch]: added _foreach() variants of
GHashTable, GList and GSList functions which take GimpMemsizeFunc
callbacks. Added gimp_parasite_get_memsize(). Added "data_size"
parameter to gimp_g_hash_table_get_memsize().
* app/core/gimp.c
* app/core/gimppalette.c
* app/core/gimpparasitelist.c
* app/pdb/gimppdb.c
* app/plug-in/gimppluginmanager.c: use the new functions instead
of itering manually or ignoring the containers' elements. Changed
callers of gimp_g_hash_table_get_memsize().
svn path=/trunk/; revision=22046
2007-02-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: add "locale_domain" and
"help_domain" members and APIs to get/set them. Removed locale and
help domain parameters from all other functions.
* app/plug-in/gimpplugin.c (gimp_plug_in_add_temp_proc)
* app/plug-in/plug-in-def.c (plug_in_def_add_procedure)
(plug_in_def_set_locale_domain_name)
(plug_in_def_set_help_domain_name): make sure all plug-in procedures
have locale and help domains.
* app/plug-in/gimppluginmanager.[ch]: removed function
gimp_plug_in_manager_get_label().
* app/plug-in/gimppluginmanager.c
* app/plug-in/gimpplugin-cleanup.c
* app/actions/plug-in-actions.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed (simplified) accordingly.
svn path=/trunk/; revision=21937
2007-02-14 Sven Neumann <sven@gimp.org>
* app/actions/plug-in-actions.c
* app/plug-in/gimppluginprocedure.[ch]: added utility function to
retrieve the translated blurb of a plug-in procedure. Make sure
that gettext isn't called with the empty string.
svn path=/trunk/; revision=21917
2007-02-09 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimpenvirontable.c: renamed newly added functions to
gimp_environ_table_str_hash() and gimp_environ_table_str_equal()
and always use them. Move the #ifdef G_OS_WIN32 inside the
functions.
svn path=/trunk/; revision=21884
2007-02-09 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpenvirontable.c
(gimp_environ_table_case_insensitive_hash)
(gimp_environ_table_case_insensitive_equal): Win32-only case-
insensitive hash and equality functions.
(gimp_environ_table_load): On Win32, use the above functions for
the vars hash table. This fixes the problem that occurs when the
actual PATH environment variable is spelled Path (as it seems to
often be), but the default.env file as set up by the installer
provides PATH. They didn't match so both would be passed to the
plug-in child process, and apparently which one then was used to
look for DLLs was more or less random. If it was the original
Path, it didn't contain the directories the installer put in PATH
in default.env, and plug-ins didn't find the DLLs.
svn path=/trunk/; revision=21883
2007-01-25 Tor Lillqvist <tml@novell.com>
* app/plug-in/gimpplugin.c (gimp_plug_in_open): On Win32 prevent
plug-in from inheriting GIMP's ends of the pipes. Fixes#363501.
svn path=/trunk/; revision=21779
2006-12-18 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-in-icc-profile.[ch]
* plug-ins/common/lcms.c: removed run-mode argument from
plug-in-icc-profile-info. Added new procedure to obtain
information
about a color profile on disk.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprofilechooserdialog.[ch]: added a first draft
of a file-chooser dialog for selecting a color profile.
* app/dialogs/preferences-dialog.c: use it.
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.