[frameworks/kfilemetadata] tests: [kfilemetadata_dump] Provide information about cover images etc
Stefan Brüns <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 5ab9f9832621c49cb3e29d000a1617264647f2ff by Stefan Brüns.
Committed on 10/08/2026 at 16:38.
Pushed by bruns into branch 'master'.
[kfilemetadata_dump] Provide information about cover images etc
CCBUG: 500113
M +18 -3 tests/dump.cpp
https://invent.kde.org/frameworks/kfilemetadata/-/commit/5ab9f9832621c49cb3e29d000a1617264647f2ff
diff --git a/tests/dump.cpp b/tests/dump.cpp
index cbc1c790..2893ab3e 100644
--- a/tests/dump.cpp
+++ b/tests/dump.cpp
@@ -4,10 +4,12 @@
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
-#include <QGuiApplication>
+#include <QBuffer>
#include <QCommandLineParser>
#include <QDebug>
#include <QFileInfo>
+#include <QGuiApplication>
+#include <QImageReader>
#include <QMimeDatabase>
#include <QTextStream>
@@ -36,8 +38,8 @@ int main(int argc, char** argv)
using KFileMetaData::ExtractionResult;
const ExtractionResult::Flags extractionLevel = (extractFulltext
- ? ExtractionResult::ExtractMetaData | ExtractionResult::ExtractPlainText
- : ExtractionResult::ExtractMetaData);
+ ? ExtractionResult::ExtractMetaData | ExtractionResult::ExtractImageData | ExtractionResult::ExtractPlainText
+ : ExtractionResult::ExtractMetaData | ExtractionResult::ExtractImageData);
auto fi = QFileInfo(parser.positionalArguments().at(0));
QString url = fi.absoluteFilePath();
@@ -86,6 +88,19 @@ int main(int argc, char** argv)
out << "\t\t" << KFileMetaData::PropertyInfo(it.key()).displayName() << ": "
<< it.value().toString() << " (" << it.value().typeName() << ")\n";
}
+ const auto imageMap = result.imageData();
+ if (!imageMap.empty()) {
+ out << "\t\tImages:\n";
+ for (const auto [type, imageData]: imageMap.asKeyValueRange()) {
+ QBuffer buffer;
+ buffer.setData(imageData);
+ std::ignore = buffer.open(QIODevice::ReadOnly);
+ QImageReader reader(&buffer);
+ auto format = reader.format();
+ const auto image = reader.read();
+ out << "\t\t " << type << " " << format << " " << image.width() << "x" << image.height() << "\n";
+ }
+ }
if (extractFulltext) {
out << "\t\tText: " << result.text() << "\n";
}