Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_paintop_preset.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6#ifndef KIS_PAINTOP_PRESET_H
7#define KIS_PAINTOP_PRESET_H
8
9#include <QPointer>
10
11#include <KoResource.h>
12#include "KoID.h"
13
14#include "kis_types.h"
15#include "kis_shared.h"
16#include "kritaimage_export.h"
19
22
25
96class KRITAIMAGE_EXPORT KisPaintOpPreset : public KoResource
97{
98public:
99
104 class KRITAIMAGE_EXPORT UpdatedPostponer{
105 public:
107
109
110 private:
112 };
113
114public:
115
117
118 KisPaintOpPreset(const QString& filename);
119
120 ~KisPaintOpPreset() override;
121
124 KoResourceSP clone() const override;
125
127 void setPaintOp(const KoID & paintOp);
128
130 KoID paintOp() const;
131
132 QString name() const override;
133
135 void setSettings(KisPaintOpSettingsSP settings);
136
139
140 bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override;
141
142 bool saveToDevice(QIODevice* dev) const override;
143
144 QPair<QString, QString> resourceType() const override
145 {
146 return QPair<QString, QString>(ResourceType::PaintOpPresets, "");
147 }
148
149 void updateLinkedResourcesMetaData();
150
151 void toXML(QDomDocument& doc, QDomElement& elt) const;
152
153 void fromXML(const QDomElement& elt, KisResourcesInterfaceSP resourcesInterface);
154
155 bool removable() const {
156 return true;
157 }
158
159 QString defaultFileExtension() const override {
160 return ".kpp";
161 }
162
164 QPointer<KisPaintOpPresetUpdateProxy> updateProxyNoCreate() const;
165
166 QList<KisUniformPaintOpPropertySP> uniformProperties();
167
172 bool hasMaskingPreset() const;
173
178 KisPaintOpPresetSP createMaskingPreset() const;
179
184 KisResourcesInterfaceSP resourcesInterface() const;
185
190 void setResourcesInterface(KisResourcesInterfaceSP resourcesInterface);
191
205 KoCanvasResourcesInterfaceSP canvasResourcesInterface() const;
206
212 void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface);
213
217 bool hasLocalResourcesSnapshot() const;
218
222 KisPaintOpPresetSP cloneWithResourcesSnapshot(KisResourcesInterfaceSP globalResourcesInterface, KoCanvasResourcesInterfaceSP canvasResourcesInterface, KoResourceCacheInterfaceSP cacheInterface) const;
223
224
225 QList<KoResourceLoadResult> linkedResources(KisResourcesInterfaceSP globalResourcesInterface) const override;
226
227 QList<KoResourceLoadResult> embeddedResources(KisResourcesInterfaceSP globalResourcesInterface) const override;
228
230 void clearSideLoadedResources() override;
231
232 QList<int> requiredCanvasResources() const override;
233
248 void setResourceCacheInterface(KoResourceCacheInterfaceSP cacheInterface);
249
253 KoResourceCacheInterfaceSP resourceCacheInterface() const;
254
259 void regenerateResourceCache(KoResourceCacheInterfaceSP cacheInterface);
260
266 bool sanityCheckResourceCacheIsValid(KoResourceCacheInterfaceSP cacheInterface) const;
267
268private:
269
270 struct Private;
271 Private * const d;
272};
273
275
276#endif
QPointer< KisPaintOpPresetUpdateProxy > m_updateProxy
An abstract class for providing access to canvas resources like current gradient and Fg/Bg colors.
Definition KoID.h:30
a provider-like interface class for sharing caches between multiple resources
Q_DECLARE_METATYPE(KisPaintopLodLimitations)
const QString PaintOpPresets
QString defaultFileExtension() const override
QPointer< KisPaintOpPresetUpdateProxy > updateProxy() const
KisPaintOpSettingsSP settings() const
return the settings that define this paintop preset
QList< KoResourceLoadResult > sideLoadedResources(KisResourcesInterfaceSP globalResourcesInterface) const override
QPair< QString, QString > resourceType() const override
KisPaintOpPreset & operator=(const KisPaintOpPreset &rhs)=delete
virtual QList< KoResourceLoadResult > embeddedResources(KisResourcesInterfaceSP globalResourcesInterface) const
virtual void clearSideLoadedResources()
virtual KoResourceSP clone() const =0
virtual QList< int > requiredCanvasResources() const
virtual bool saveToDevice(QIODevice *dev) const
virtual bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface)=0
virtual QList< KoResourceLoadResult > linkedResources(KisResourcesInterfaceSP globalResourcesInterface) const
QString name