[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;
}
}