The client can now subscribe to a specific property-change signal. The
detail is provided as <xmp-schema-prefix>:<xmp-property-name>. The
xmpdump test program was used to verify that the implementation works.
The problem is that the parser adds an empty property value when
parsing an empty Alt-array, "<rdf:Alt/>".
But when it is encoded it is expected to be in the form of a NULL
terminated array of pairs of property values, with the result that the
NULL terminator is considered the second element of the first pair and
the loop encoding these properties goes beyond the end of the array,
thus dereferencing invalid pointers.
This commit alters the parser to avoid adding dummy values when empty
rdf:Alt, rdf:Bag and rdf:Seq elements are found.
Added a function to merge the Exif data into the xmp model. The function
is using the image id and to access the Exif data parasite. For each
Exif property a corresponding value in the XMP model is created.
2009-02-12 Michael Natterer <mitch@gimp.org>
* plug-ins/file-faxg3/Makefile.am
* plug-ins/help/Makefile.am
* plug-ins/metadata/Makefile.am: add $(libgimpconfig) to LDADD
where it was missing. Libgimp pulls in libgimpconfig and these
plug-ins were linking against the installed libgimpconfig under
some #$&%*#%&%$& .la file circumstances.
svn path=/trunk/; revision=28017
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-10-19 Sven Neumann <sven@gimp.org>
* plug-ins/metadata/xmp-encode.c
* plug-ins/metadata/xmp-parse.c
* plug-ins/metadata/metadata.c
* plug-ins/metadata/xmpdump.c: removal of unused includes and
other minor cleanups.
svn path=/trunk/; revision=27332
2008-10-19 Sven Neumann <sven@gimp.org>
Bug 493778 – metadata plug-in crashes on some images
* plug-ins/metadata/xmp-encode.c (gen_property): introduced a
utility function to create XML elements. Deal gracefully with
NULL
and empty values. Does not fix the crash, but fixes a warning
that
has been reported in the same bug report.
svn path=/trunk/; revision=27323
2007-08-29 Raphael Quinet <raphael@gimp.org>
* plug-ins/metadata/xmp-encode.c (gen_property): escape the text
values output in the XMP packet. Based on a bug report and patch
by John Marshall. Fixes bug #455481.
svn path=/trunk/; revision=23398
2007-04-12 Raphael Quinet <raphael@gimp.org>
* plug-ins/metadata/xmp-parse.c: made the parser more tolerant and
accept XMP blocks that are not using the namespace prefixes
recommended by the XMP specification.
svn path=/trunk/; revision=22242
2006-05-30 Raphael Quinet <raphael@gimp.org>
* plug-ins/metadata/xmp-parse.c: protect against broken XMP blocks
using rdf:Alt instead of rdf:Seq. Fixes bug #343315.
* plug-ins/metadata/xmpdump.c (main): call g_set_prgname() to get
better messages from glib.
* data/images/gimp-splash.png: new splash screen, waiting for the
old animation feature to be restored.
2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-09-05 Sven Neumann <sven@gimp.org>
* plug-ins: Call gimp_window_set_transient_for_default_display()
for most plug-in dialogs. Not yet done are load and save dialogs
and dialogs created from language bindings.
2005-08-23 Sven Neumann <sven@gimp.org>
* app/base/siox.c: minor optimizations.
* app/actions/gradients-actions.c
* app/actions/patterns-actions.c
* plug-ins/metadata/interface.c: applied patch from Stephan Binner
that fixes wrong use of ellipsis (bug #309657).
2005-08-18 Michael Natterer <mitch@gimp.org>
* plug-ins/common/animoptimize.c
* plug-ins/common/pnm.c
* plug-ins/metadata/interface.c
* plug-ins/metadata/metadata.c: some forgotten canonical names.
* plug-ins/metadata/Makefile.am
* plug-ins/metadata/metadata.h: new header containing the
procedure name #defines for metadata.