File indexing completed on 2024-05-05 04:05:48
0001 /* 0002 SPDX-FileCopyrightText: 2009 Stefan Majewsky <majewsky@gmx.net> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "thumbnail-creator.h" 0008 #include <KPluginFactory> 0009 #include <QImage> 0010 #include <QTemporaryDir> 0011 #include <KTar> 0012 0013 K_PLUGIN_CLASS_WITH_JSON(PalapeliThumbCreator, "palathumbcreator.json") 0014 0015 PalapeliThumbCreator::PalapeliThumbCreator(QObject *parent, const QVariantList &args) 0016 : KIO::ThumbnailCreator(parent, args) 0017 { 0018 } 0019 0020 PalapeliThumbCreator::~PalapeliThumbCreator() = default; 0021 0022 KIO::ThumbnailResult PalapeliThumbCreator::create(const KIO::ThumbnailRequest &request) 0023 { 0024 //read archive 0025 KTar tar(request.url().toLocalFile(), QStringLiteral("application/x-gzip")); 0026 if (!tar.open(QIODevice::ReadOnly)) 0027 return KIO::ThumbnailResult::fail(); 0028 QTemporaryDir cache; 0029 const QString cachePath = cache.path() + QLatin1Char('/'); 0030 tar.directory()->copyTo(cachePath); 0031 tar.close(); 0032 //read image 0033 QImage image; 0034 image.load(cachePath + QLatin1String("image.jpg")); 0035 if (!image.isNull()) { 0036 return KIO::ThumbnailResult::pass(image); 0037 } 0038 return KIO::ThumbnailResult::fail(); 0039 } 0040 0041 #include "moc_thumbnail-creator.cpp" 0042 #include "thumbnail-creator.moc"