Bug 137503 - Tags are not written to image file automatically
Summary: Tags are not written to image file automatically
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Maintenance-Metadata (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-17 20:15 UTC by Gandalf Lechner
Modified: 2017-08-13 15:26 UTC (History)
2 users (show)

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 Gandalf Lechner 2006-11-17 20:15:32 UTC
Version:           0.9.0-rc1 (using KDE KDE 3.5.1)
Installed from:    SuSE RPMs

When choosing to store the tags into the image files (as required for having them accessible for beagle indexing, for example), this is not done automatically. Rather, one needs to edit the tags, comments or the image file itself in order to have the data stored into the file.

To overcome this problem, I would like to request a batchprocess tool running through the whole collection of images digikam organizes, and storing all the data from the digikam database into the individual image files.
Comment 1 caulier.gilles 2007-01-22 21:06:19 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 2 Marcel Wiesweg 2007-02-10 16:36:56 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).
A batch tool is available as well.