Version: (using KDE KDE 3.5.5) Installed from: SuSE RPMs OS: Linux In the setup I activated the option to save TAGS as IPTC-keywords. This works fine. Changing the tags of an image doesn't change the IPTC-keywords unless the keywords fiels is first emptied via the menuoption "Edit Metadata".
Forgot to mention the version# svn-597473
Caspar, Give me a fresh feedback using current digiKam implementation from svn and using Exiv2 0.12 library. Thanks in advance Note : actually, only JPEG file can store digiKam tags in IPTC keywords. PNG and TIFF are planed for the future. Gilles Caulier
It is going ok from digiKam tags to IPTC-keywords. Adding, deleting changing the digiKam tags is instantly reflected in the metadata section, i.e. the IPTC keywords. As it should. The other way round is NOT working. Adding, deleting changing the IPTC keywords has no effect on the digiKam tags, until you change one of digiKam tags. Then again they become in sync. With digiKam comment and the IPTC caption it is more or less the other way round. Adding/changing comment, adds/changes caption. Deleting comment does NOT delete caption. Adding, changing and deleting caption is reflected in the comment. Caspar.
As of release 0.9.0, this is not working as Caspar describes. I found that modifying digikam tags, was not reflected in the metadata where such tags were present (or does it only work on the current album). While I would not expect the reverse to be true, and find the other behaviour you describe to be expected, this one should work on metadata in all pictures.
SVN commit 626305 by cgilles: digikam from trunk : New batch tool to sync all pictures metadata (EXIF/IPTC) with digiKam database contents (comments, tags, rating, date, etc...) This tool use the new MetadataHub class from Marcel (great implementation!). THis tool use the Metadata setup (thrue MetadataHub). There is a new option in Tools menu named "Sync Pictures Metadata". Test and feedback are require... CCBUGS: 127583, 136254, 137503 BUG: 130017 M +26 -0 digikam/digikamapp.cpp M +3 -0 digikam/digikamapp.h M +1 -0 digikam/digikamui.rc M +2 -1 utilities/batch/Makefile.am A utilities/batch/batchsyncmetadata.cpp [License: GPL] A utilities/batch/batchsyncmetadata.h [License: GPL] A utilities/batch/imageinfojob.cpp [License: GPL] A utilities/batch/imageinfojob.h [License: GPL] --- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #626304:626305 @@ -88,6 +88,7 @@ #include "imageattributeswatch.h" #include "dcrawbinary.h" #include "batchthumbsgenerator.h" +#include "batchsyncmetadata.h" #include "digikamview.h" #include "digikamapp.h" #include "digikamapp.moc" @@ -801,6 +802,10 @@ this, SLOT(slotRebuildAllThumbs()), actionCollection(), "thumbs_rebuild"); + new KAction(i18n("Sync Pictures metadata..."), "reload_page", 0, + this, SLOT(slotSyncPicturesMetadata()), actionCollection(), + "sync_metadata"); + // ----------------------------------------------------------- // Provides a menu entry that allows showing/hiding the toolbar(s) @@ -1644,6 +1649,27 @@ mView->applySettings(mAlbumSettings); } +void DigikamApp::slotSyncPicturesMetadata() +{ + QString msg = i18n("Sync pictures metadata with digiKam database can take a while.\n" + "Do you want to continue?"); + int result = KMessageBox::warningContinueCancel(this, msg); + if (result != KMessageBox::Continue) + return; + + BatchSyncMetadata *syncMetadata = new BatchSyncMetadata(this); + + connect(syncMetadata, SIGNAL(signalComplete()), + this, SLOT(slotSyncPicturesMetadataDone())); + + syncMetadata->exec(); +} + +void DigikamApp::slotSyncPicturesMetadataDone() +{ + mView->applySettings(mAlbumSettings); +} + void DigikamApp::slotDonateMoney() { KApplication::kApplication()->invokeBrowser("http://www.digikam.org/?q=donation"); --- trunk/extragear/graphics/digikam/digikam/digikamapp.h #626304:626305 @@ -160,9 +160,12 @@ void slotEditKeys(); void slotConfToolbars(); void slotToggleFullScreen(); + void slotDatabaseRescan(); void slotRebuildAllThumbs(); void slotRebuildAllThumbsDone(); + void slotSyncPicturesMetadata(); + void slotSyncPicturesMetadataDone(); void slotChangeTheme(const QString& theme); --- trunk/extragear/graphics/digikam/digikam/digikamui.rc #626304:626305 @@ -71,6 +71,7 @@ <Separator/> <Action name="database_rescan" /> <Action name="thumbs_rebuild" /> + <Action name="sync_metadata" /> <Separator/> <ActionList name="album_actions"/> <Separator/> --- trunk/extragear/graphics/digikam/utilities/batch/Makefile.am #626304:626305 @@ -3,13 +3,14 @@ INCLUDES = -I$(top_srcdir)/digikam/digikam \ -I$(top_srcdir)/digikam/libs/dialogs \ -I$(top_srcdir)/digikam/libs/dimg \ + -I$(top_srcdir)/digikam/libs/dmetadata \ -I$(top_srcdir)/digikam/libs/thumbbar \ -I$(top_srcdir)/digikam/libs/widgets/common \ $(all_includes) noinst_LTLIBRARIES = libbatch.la -libbatch_la_SOURCES = batchthumbsgenerator.cpp +libbatch_la_SOURCES = batchthumbsgenerator.cpp batchsyncmetadata.cpp imageinfojob.cpp libbatch_la_LDFLAGS = $(all_libraries) $(KDE_RPATH)
I appreciate the effort, but this is not quite what I had in mind as a solution, when entering this bug. I tried this yesterday evening. The svn-version I compiled had not yet a tools menu entry, but I found a shortcut in the toolbar configuration. I selected a few pictures and activated the button, not knowing it would work on the whole collection. That this is the case is clear to me now. I am left with more than thousand pictures with twice, and in a lot of cases even three times the same information in the IPTC keywords field. Obviously the intended purpose of this option, synchronising the IPTC metadata, is not working for the keywords field. It just adds the tags no matter what is already in there. By the way, in the latest compile from this evening, the mentioned tools menu entry was available now. So that ommission is solved.
Changing tags now changes IPTC data (according to config options of course) no matter in which way the tags are assigned (context menu, drag'n'drop either way, right side bar). The double keywords problem from #6 has been resolved. (Changing metadata externally has and will have no effect on the digikam database, unless you explicitly read the metadata into the database using the right sidebar. Otherwise, a complete rescan at startup would be
I reopen the bug because the mechanism only works from the album view. When I rename a tag, it is correctly changed in the the DB for all images. I'm in tag view, and the 'synchronize images with database' menu entry is activated. But when I call it, nothing happens. So the IPTC data in the files is not updated. It works for that renamed tag when I change to the album view. However, firstly it should work out of the tag view and secondly (more important) often tags span several albums. Then, if I update from within one album, the others remain unchanged.
Marcel, This is a little job for you (:=))) Gilles
SVN commit 661132 by mwiesweg: Don't confine action to physical albums BUG: 136254 M +1 -1 digikamview.cpp --- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #661131:661132 @@ -858,7 +858,7 @@ void DigikamView::slotAlbumSyncPicturesMetadata() { Album *album = d->albumManager->currentAlbum(); - if (!album || album->type() != Album::PHYSICAL) + if (!album) return; BatchSyncMetadata *syncMetadata = new BatchSyncMetadata(this, album);
I believe I'm still seeing this bug. I'm using 0.9.2-final on kubuntu 7.10. All my images are JPEG. The behavior I see is this: In digikam, I create a tag, say "2006xmas". I add the tag to some images, and the tag is added to the images in digikam and in the IPTC keywords. I then edit the digikam tag (in the right-side tags pane) and change it to "Christmas 2006". When I do that, the digikam tags are updated, but the IPTC keywords tag still shows "2006xmas" and not "Christmas 2006" in all the images. Adding and deleting tags in digikam seems to update the IPTC information just fine. Anyone else see this behavior?