Krita Source Code Documentation
Loading...
Searching...
No Matches
KoAbstractGradient.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2007 Sven Langkamp <sven.langkamp@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6#ifndef KOABSTRACTGRADIENT_H
7#define KOABSTRACTGRADIENT_H
8
9#include <QGradient>
10#include <QMetaType>
11
12#include "KoColorSpace.h"
13#include <KoResource.h>
14#include <kritapigment_export.h>
15
18
21
22class KoColor;
23
27class KRITAPIGMENT_EXPORT KoAbstractGradient : public KoResource
28{
29public:
30 explicit KoAbstractGradient(const QString &filename);
31 ~KoAbstractGradient() override;
32
37 virtual QGradient* toQGradient() const {
38 return new QGradient();
39 }
40
42 virtual void colorAt(KoColor&, qreal t) const;
43
44 void setColorSpace(KoColorSpace* colorSpace);
45 const KoColorSpace * colorSpace() const;
46
47 void setSpread(QGradient::Spread spreadMethod);
48 QGradient::Spread spread() const;
49
50 void setType(QGradient::Type repeatType);
51 QGradient::Type type() const;
52
53 void updatePreview();
54
55 QImage generatePreview(int width, int height) const;
56 QImage generatePreview(int width, int height, KoCanvasResourcesInterfaceSP canvasResourcesInterface) const;
57
59
60 KoAbstractGradientSP cloneAndBakeVariableColors(KoCanvasResourcesInterfaceSP canvasResourcesInterface) const;
61 virtual void bakeVariableColors(KoCanvasResourcesInterfaceSP canvasResourcesInterface);
62
63 KoAbstractGradientSP cloneAndUpdateVariableColors(KoCanvasResourcesInterfaceSP canvasResourcesInterface) const;
64 virtual void updateVariableColors(KoCanvasResourcesInterfaceSP canvasResourcesInterface);
65
66private:
67 struct Private;
68 Private* const d;
69};
70
73
74inline QDebug operator<<(QDebug dbg, const KoAbstractGradientSP res)
75{
76 if (!res) {
77 dbg.noquote() << "NULL Gradient";
78 }
79 else {
80 dbg.nospace() << "[Gradient] Name: " << res->name()
81 << " Version: " << res->version()
82 << " Filename: " << res->filename()
83 << " MD5: " << res->md5Sum(false)
84 << " Type: " << res->resourceType()
85 << " Valid: " << res->valid()
86 << " Storage: " << res->storageLocation();
87 }
88 return dbg.space();
89}
90
91
92#endif // KOABSTRACTGRADIENT_H
QSharedPointer< KoAbstractGradient > KoAbstractGradientSP
An abstract class for providing access to canvas resources like current gradient and Fg/Bg colors.
Q_DECLARE_METATYPE(KisPaintopLodLimitations)
QGradient::Type type() const
QGradient::Spread spread() const
const KoColorSpace * colorSpace() const
virtual QGradient * toQGradient() const