File indexing completed on 2024-05-12 15:59:07

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #include "Resource.h"
0007 #include <KoResource.h>
0008 #include <QByteArray>
0009 #include <QBuffer>
0010 
0011 #include <KoPattern.h>
0012 #include <KoAbstractGradient.h>
0013 #include <kis_brush.h>
0014 #include <kis_paintop_preset.h>
0015 #include <KoColorSet.h>
0016 #include <kis_workspace_resource.h>
0017 #include <KisResourceLocator.h>
0018 
0019 struct Resource::Private {
0020     Private() {}
0021 
0022     int id {-1};
0023     QString type;
0024     QString name;
0025     QString filename;
0026     QImage image;
0027 };
0028 
0029 Resource::Resource(int resourceId, const QString &type, const QString &name, const QString &filename, const QImage &image, QObject *parent)
0030     : QObject(parent)
0031     , d(new Private())
0032 {
0033     d->id = resourceId;
0034     d->type = type;
0035     d->name = name;
0036     d->filename = filename;
0037     d->image = image;
0038 }
0039 
0040 Resource::Resource(KoResourceSP resource, const QString &type, QObject *parent)
0041     : QObject(parent)
0042     , d(new Private())
0043 {
0044     d->id = resource->resourceId();
0045     d->type = type;
0046     d->name = resource->name();
0047     d->filename = resource->filename();
0048     d->image = resource->image();
0049 }
0050 
0051 Resource::~Resource()
0052 {
0053 }
0054 
0055 Resource::Resource(const Resource &rhs)
0056     : QObject()
0057     , d(new Private())
0058 {
0059     d->id = rhs.d->id;
0060     d->type = rhs.d->type;
0061     d->name = rhs.d->name;
0062     d->filename = rhs.d->filename;
0063     d->image = rhs.d->image;
0064 }
0065 
0066 bool Resource::operator==(const Resource &other) const
0067 {
0068     return (d->id == other.d->id);
0069 }
0070 
0071 bool Resource::operator!=(const Resource &other) const
0072 {
0073     return !(operator==(other));
0074 }
0075 
0076 Resource Resource::operator=(const Resource &rhs)
0077 {
0078     Resource res(rhs.d->id,
0079                  rhs.d->type,
0080                  rhs.d->name,
0081                  rhs.d->filename,
0082                  rhs.d->image);
0083     return res;
0084 }
0085 
0086 QString Resource::type() const
0087 {
0088     return d->type;
0089 }
0090 
0091 QString Resource::name() const
0092 {
0093     return d->name;
0094 }
0095 
0096 void Resource::setName(QString value)
0097 {
0098     d->name = value;
0099 }
0100 
0101 QString Resource::filename() const
0102 {
0103     return d->filename;
0104 }
0105 
0106 
0107 QImage Resource::image() const
0108 {
0109     return d->image;
0110 }
0111 
0112 void Resource::setImage(QImage image)
0113 {
0114     d->image = image;
0115 }
0116 
0117 KoResourceSP Resource::resource() const
0118 {
0119     KoResourceSP res = KisResourceLocator::instance()->resourceForId(d->id);
0120     Q_ASSERT(res);
0121     return res;
0122 }
0123 
0124 
0125 
0126 
0127 
0128