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