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"