File indexing completed on 2024-04-14 03:53:19

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"