File indexing completed on 2025-01-19 03:41:35
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2000 Malte Starostik <malte@kde.org> 0004 SPDX-FileCopyrightText: 2022 Nicolas Fella <nicolas.fella@gmx.de> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "thumbnailcreator.h" 0010 0011 #include <QImage> 0012 0013 namespace KIO 0014 { 0015 0016 class ThumbnailRequestPrivate 0017 { 0018 public: 0019 QUrl url; 0020 QSize targetSize; 0021 QString mimeType; 0022 qreal dpr; 0023 float sequenceIndex; 0024 }; 0025 0026 ThumbnailRequest::~ThumbnailRequest() = default; 0027 0028 ThumbnailRequest::ThumbnailRequest(const ThumbnailRequest &other) 0029 { 0030 d = std::make_unique<ThumbnailRequestPrivate>(*other.d); 0031 } 0032 0033 ThumbnailRequest &ThumbnailRequest::operator=(const ThumbnailRequest &other) 0034 { 0035 ThumbnailRequest temp(other); 0036 std::swap(*d, *temp.d); 0037 return *this; 0038 } 0039 0040 ThumbnailRequest::ThumbnailRequest(const QUrl &url, const QSize &targetSize, const QString &mimeType, qreal dpr, float sequenceIndex) 0041 : d(new ThumbnailRequestPrivate) 0042 { 0043 d->url = url; 0044 d->targetSize = targetSize; 0045 d->mimeType = mimeType; 0046 d->dpr = dpr; 0047 d->sequenceIndex = sequenceIndex; 0048 } 0049 0050 QUrl ThumbnailRequest::url() const 0051 { 0052 return d->url; 0053 } 0054 0055 QSize ThumbnailRequest::targetSize() const 0056 { 0057 return d->targetSize; 0058 } 0059 0060 QString ThumbnailRequest::mimeType() const 0061 { 0062 return d->mimeType; 0063 } 0064 0065 qreal ThumbnailRequest::devicePixelRatio() const 0066 { 0067 return d->dpr; 0068 } 0069 0070 float ThumbnailRequest::sequenceIndex() const 0071 { 0072 return d->sequenceIndex; 0073 } 0074 0075 class ThumbnailResultPrivate 0076 { 0077 public: 0078 QImage image; 0079 float sequenceIndexWraparoundPoint = -1; 0080 }; 0081 0082 ThumbnailResult::ThumbnailResult() 0083 : d(new ThumbnailResultPrivate) 0084 { 0085 } 0086 0087 ThumbnailResult::~ThumbnailResult() = default; 0088 0089 ThumbnailResult::ThumbnailResult(const ThumbnailResult &other) 0090 { 0091 d = std::make_unique<ThumbnailResultPrivate>(*other.d); 0092 } 0093 0094 ThumbnailResult &ThumbnailResult::operator=(const ThumbnailResult &other) 0095 { 0096 ThumbnailResult temp(other); 0097 std::swap(*d, *temp.d); 0098 return *this; 0099 } 0100 0101 ThumbnailResult ThumbnailResult::pass(const QImage &image) 0102 { 0103 ThumbnailResult response; 0104 response.d->image = image; 0105 0106 return response; 0107 } 0108 0109 ThumbnailResult ThumbnailResult::fail() 0110 { 0111 ThumbnailResult response; 0112 return response; 0113 } 0114 0115 float ThumbnailResult::sequenceIndexWraparoundPoint() const 0116 { 0117 return d->sequenceIndexWraparoundPoint; 0118 } 0119 0120 void ThumbnailResult::setSequenceIndexWraparoundPoint(float wraparoundPoint) 0121 { 0122 d->sequenceIndexWraparoundPoint = wraparoundPoint; 0123 } 0124 0125 QImage ThumbnailResult::image() const 0126 { 0127 return d->image; 0128 } 0129 0130 bool ThumbnailResult::isValid() const 0131 { 0132 return !d->image.isNull(); 0133 } 0134 0135 ThumbnailCreator::ThumbnailCreator(QObject *parent, const QVariantList &args) 0136 : QObject(parent) 0137 { 0138 Q_UNUSED(args); 0139 } 0140 0141 ThumbnailCreator::~ThumbnailCreator() = default; 0142 }; 0143 0144 #include "moc_thumbnailcreator.cpp"