File indexing completed on 2024-04-28 04:58:04
0001 /* 0002 windowsimagecreator.cpp - Thumbnail Creator for Microsoft Windows Images 0003 0004 SPDX-FileCopyrightText: 2009 Pali Rohár <pali.rohar@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "windowsimagecreator.h" 0010 #include "icoutils.h" 0011 0012 #include <QImage> 0013 #include <QImageReader> 0014 #include <QMimeDatabase> 0015 #include <QString> 0016 0017 #include <KPluginFactory> 0018 0019 K_PLUGIN_CLASS_WITH_JSON(WindowsImageCreator, "windowsimagethumbnail.json") 0020 0021 WindowsImageCreator::WindowsImageCreator(QObject *parent, const QVariantList &args) 0022 : KIO::ThumbnailCreator(parent, args) 0023 { 0024 } 0025 0026 KIO::ThumbnailResult WindowsImageCreator::create(const KIO::ThumbnailRequest &request) 0027 { 0028 const QString path = request.url().toLocalFile(); 0029 QImage img; 0030 if (IcoUtils::loadIcoImage(path, img, request.targetSize().width(), request.targetSize().height())) { 0031 return KIO::ThumbnailResult::pass(img); 0032 } 0033 0034 // Maybe it's an animated cursor 0035 if (QMimeDatabase().mimeTypeForFile(path).name() == QLatin1String("application/x-navi-animation")) { 0036 QImageReader reader(path, "ani"); 0037 reader.read(&img); 0038 return KIO::ThumbnailResult::pass(img); 0039 } 0040 0041 return KIO::ThumbnailResult::fail(); 0042 } 0043 0044 #include "moc_windowsimagecreator.cpp" 0045 #include "windowsimagecreator.moc"