Bug 98189 - Adjusting time and date of exif does not take effect until properties are seen
Summary: Adjusting time and date of exif does not take effect until properties are seen
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Date (show other bugs)
Version: 0.7.2
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-30 11:30 UTC by Cedric Pradalier
Modified: 2022-01-08 13:33 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 7.5.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cedric Pradalier 2005-01-30 11:30:24 UTC
Version:           0.7.2-cvs (using KDE 3.3.1,  (3.1))
Compiler:          gcc version 3.3.5 (Debian 1:3.3.5-2)
OS:                Linux (ppc) release 2.6.8-powerpc

When using ajdust time and date dialog, and choosing "use exif time", the time is not updated in the property popup, until you click on the property button to have a look at the exif info.

After that, the time is ok in the property popup, but this does not have an effect on the ordering (if using date ordering). You have to change folder in order to reorder the photos.
Comment 1 Renchi Raju 2005-01-31 20:22:09 UTC
CVS commit by pahlibar: 


hold the file dates separately from the kfileitems and on refresh, reread the
file dates and resort the items.
BUG: 98189


  M +29 -0     albumiconview.cpp   1.107
  M +4 -0      kipiinterface.cpp   1.19


--- kdeextragear-3/digikam/digikam/albumiconview.cpp  #1.106:1.107
@@ -40,4 +40,5 @@
 #include <qdatetime.h>
 #include <qfileinfo.h>
+#include <qfile.h>
 #include <qguardedptr.h>
 #include <qdragobject.h>
@@ -82,4 +83,11 @@
 #include <libkexif/kexifdata.h>
 
+extern "C"
+{
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+}
+
 // Local includes.
 
@@ -1494,4 +1502,22 @@ void AlbumIconView::refreshItems(const K
         return;
 
+    // we do two things here:
+    // 1. refresh the timestamp
+    // 2. refresh the thumbnails
+    
+    for (KURL::List::const_iterator it = urlList.begin();
+         it != urlList.end(); ++it)
+    {
+        AlbumIconItem* iconItem = findItem((*it).url());
+        if (!iconItem)
+            continue;
+
+        struct stat st;
+        if (::stat(QFile::encodeName((*it).path()), &st) == 0)
+        {
+            iconItem->time_ = st.st_mtime;
+        }
+    }
+    
     if (d->thumbJob.isNull())
     {
@@ -1516,4 +1542,7 @@ void AlbumIconView::refreshItems(const K
         d->thumbJob->addItems(urlList);
     }
+
+    // trigger a delayed update, in case we need to resort items
+    triggerUpdate();
 }
 

--- kdeextragear-3/digikam/digikam/kipiinterface.cpp  #1.18:1.19
@@ -175,4 +175,8 @@ void DigikamImageInfo::setTime(const QDa
                     << endl;
     }
+    else
+    {
+        AlbumManager::instance()->refreshItemHandler( _url );
+    }
 }