Bug 136254 - Editing tags does not change IPTC-keywords.
Summary: Editing tags does not change IPTC-keywords.
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Iptc (show other bugs)
Version: 0.9.0
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-24 21:07 UTC by Caspar Maessen
Modified: 2017-08-13 07:31 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 0.9.1


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Caspar Maessen 2006-10-24 21:07:45 UTC
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".
Comment 1 Caspar Maessen 2006-10-24 21:18:58 UTC
Forgot to mention the version# svn-597473
Comment 2 caulier.gilles 2006-12-12 14:01:07 UTC
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
Comment 3 Caspar Maessen 2006-12-12 20:47:48 UTC
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.
Comment 4 Birkir A. Barkarson 2007-01-18 10:41:11 UTC
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.
Comment 5 caulier.gilles 2007-01-22 21:06:37 UTC
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)
 
Comment 6 Caspar Maessen 2007-01-23 22:10:48 UTC
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.
Comment 7 Marcel Wiesweg 2007-02-10 16:34:18 UTC
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 
Comment 8 Gerhard Kulzer 2007-05-02 15:14:46 UTC
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.
Comment 9 caulier.gilles 2007-05-02 15:18:17 UTC
Marcel,

This is a little job for you (:=)))

Gilles
Comment 10 Marcel Wiesweg 2007-05-04 19:01:29 UTC
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);
Comment 11 Tom Kliethermes 2007-12-17 00:17:49 UTC
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?