[graphics/digikam] /: better handling of the fallback to the file date

Maik Qualmann <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 804f722f073827341e3d5e08bd4c0984db1d2244 by Maik Qualmann.
Committed on 19/07/2026 at 18:28.
Pushed by mqualmann into branch 'master'.

better handling of the fallback to the file date
BUGS: 523250
FIXED-IN: 9.2.0

M  +1    -1    NEWS
M  +7    -2    core/libs/database/item/scanner/itemscanner_file.cpp
M  +7    -2    core/libs/dimg/dimg_fileio.cpp
M  +12   -3    core/utilities/import/main/importui.cpp

https://invent.kde.org/graphics/digikam/-/commit/804f722f073827341e3d5e08bd4c0984db1d2244

diff --git a/NEWS b/NEWS
index 5b32cc9694..7b454b1b9d 100644
--- a/NEWS
+++ b/NEWS
@@ -43,7 +43,7 @@ BUGFIXES:
 019 --> 522954 - Copy as path.
 020 --> 522968 - Missing folders.
 021 --> 523055 - Test GPU AI Compatibility fails instantly with QString::arg Argument missing: OpenCLDNN error (Windows, NVIDIA RTX 3080 Ti).
-022 --> 
+022 --> 523250 - Created filename on import is wrong (date/time).
 023 --> 
 024 --> 
 025 --> 
diff --git a/core/libs/database/item/scanner/itemscanner_file.cpp b/core/libs/database/item/scanner/itemscanner_file.cpp
index aa9b1b62ca..d7ffd63923 100644
--- a/core/libs/database/item/scanner/itemscanner_file.cpp
+++ b/core/libs/database/item/scanner/itemscanner_file.cpp
@@ -78,9 +78,9 @@ QDateTime ItemScanner::creationDateFromFilesystem(const QFileInfo& info)
     QDateTime ctime = asDateTimeUTC(info.birthTime());
     QDateTime mtime = asDateTimeUTC(info.lastModified());
 
-    if (ctime.isValid())
+    if (ctime.isValid() && mtime.isValid())
     {
-        return ctime;
+        return qMin(ctime, mtime);
     }
 
     if (mtime.isValid())
@@ -88,6 +88,11 @@ QDateTime ItemScanner::creationDateFromFilesystem(const QFileInfo& info)
         return mtime;
     }
 
+    if (ctime.isValid())
+    {
+        return ctime;
+    }
+
     return asDateTimeUTC(QDateTime::currentDateTime());
 }
 
diff --git a/core/libs/dimg/dimg_fileio.cpp b/core/libs/dimg/dimg_fileio.cpp
index 3d87c90bed..30dd697efa 100644
--- a/core/libs/dimg/dimg_fileio.cpp
+++ b/core/libs/dimg/dimg_fileio.cpp
@@ -333,9 +333,9 @@ QDateTime DImg::creationDateFromFilesystem(const QFileInfo& fileInfo) const
     QDateTime ctime = asDateTimeUTC(fileInfo.birthTime());
     QDateTime mtime = asDateTimeUTC(fileInfo.lastModified());
 
-    if (ctime.isValid())
+    if (ctime.isValid() && mtime.isValid())
     {
-        return ctime;
+        return qMin(ctime, mtime);
     }
 
     if (mtime.isValid())
@@ -343,6 +343,11 @@ QDateTime DImg::creationDateFromFilesystem(const QFileInfo& fileInfo) const
         return mtime;
     }
 
+    if (ctime.isValid())
+    {
+        return ctime;
+    }
+
     return asDateTimeUTC(QDateTime::currentDateTime());
 }
 
diff --git a/core/utilities/import/main/importui.cpp b/core/utilities/import/main/importui.cpp
index ae8aa914c3..0251750cda 100644
--- a/core/utilities/import/main/importui.cpp
+++ b/core/utilities/import/main/importui.cpp
@@ -1517,11 +1517,20 @@ void ImportUI::slotDownloaded(const QString& folder, const QString& file, const
 
         if (!creationDate.isValid())
         {
-            creationDate = asDateTimeUTC(tempInfo.birthTime());
+            QDateTime ctime = asDateTimeUTC(tempInfo.birthTime());
+            QDateTime mtime = asDateTimeUTC(tempInfo.lastModified());
 
-            if (!creationDate.isValid())
+            if      (ctime.isValid() && mtime.isValid())
             {
-                creationDate = asDateTimeUTC(tempInfo.lastModified());
+                creationDate = qMin(ctime, mtime);
+            }
+            else if (mtime.isValid())
+            {
+                creationDate = mtime;
+            }
+            else if (ctime.isValid())
+            {
+                creationDate = ctime;
             }
         }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.