File indexing completed on 2024-05-05 16:09:03

0001 /*
0002     This file is part of the KFileMetaData project
0003     SPDX-FileCopyrightText: 2016 Varun Joshi <varunj.1011@gmail.com>
0004     SPDX-FileCopyrightText: 2016 Vishesh Handa <me@vhanda.in>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #include "writedata.h"
0010 
0011 #include <QMimeDatabase>
0012 
0013 using namespace KFileMetaData;
0014 
0015 class KFileMetaData::WriteDataPrivate
0016 {
0017 public:
0018     QString url;
0019     QString mimetype;
0020     PropertyMultiMap properties;
0021     QMap<EmbeddedImageData::ImageType, QByteArray> images;
0022 };
0023 
0024 WriteData::WriteData(const QString& url, const QString& mimetype)
0025     : d_ptr(new WriteDataPrivate)
0026 {
0027     Q_D(WriteData);
0028 
0029     d->url = url;
0030     d->mimetype = mimetype;
0031     if (mimetype.isEmpty()) {
0032         d->mimetype = QMimeDatabase().mimeTypeForFile(url).name();
0033     }
0034 }
0035 
0036 WriteData::WriteData(const WriteData& rhs)
0037     : d_ptr(new WriteDataPrivate(*rhs.d_ptr))
0038 {
0039 }
0040 
0041 WriteData& WriteData::operator=(const WriteData& rhs)
0042 {
0043     *d_ptr = *rhs.d_ptr;
0044     return *this;
0045 }
0046 
0047 bool WriteData::operator==(const WriteData& rhs) const
0048 {
0049     Q_D(const WriteData);
0050     return d->properties == rhs.d_ptr->properties;
0051 }
0052 
0053 void WriteData::add(Property::Property property, const QVariant& value)
0054 {
0055     Q_D(WriteData);
0056     d->properties.insert(property, value);
0057 }
0058 
0059 void WriteData::addImageData(const QMap<EmbeddedImageData::ImageType, QByteArray>& images)
0060 {
0061     Q_D(WriteData);
0062     d->images = images;
0063 }
0064 
0065 QMap<EmbeddedImageData::ImageType, QByteArray> WriteData::imageData() const
0066 {
0067     Q_D(const WriteData);
0068     return d->images;
0069 }
0070 
0071 WriteData::~WriteData() = default;
0072 
0073 QString WriteData::inputUrl() const
0074 {
0075     Q_D(const WriteData);
0076     return d->url;
0077 }
0078 
0079 QString WriteData::inputMimetype() const
0080 {
0081     Q_D(const WriteData);
0082     return d->mimetype;
0083 }
0084 
0085 PropertyMultiMap WriteData::properties() const
0086 {
0087     Q_D(const WriteData);
0088     return d->properties;
0089 }
0090 
0091 #if KFILEMETADATA_BUILD_DEPRECATED_SINCE(5, 89)
0092 PropertyMap WriteData::getAllProperties() const
0093 {
0094     Q_D(const WriteData);
0095     return d->properties;
0096 }
0097 #endif