10#include <QDomDocument>
82 if (
hasProperty(
"end_positiom_coordinate_system")) {
134 QDomDocument document;
135 if (document.setContent(this->getString(
"gradient",
""))) {
136 const QDomElement gradientElement = document.firstChildElement();
137 if (!gradientElement.isNull()) {
138 const QString gradientType = gradientElement.attribute(
"type");
140 if (gradientType ==
"stop") {
142 }
else if (gradientType ==
"segment") {
146 gradient->setName(gradientElement.attribute(
"name",
""));
157 QPointF startPosition(
166 endPosition = startPosition +
distance * QPointF(std::cos(angle), -std::sin(angle));
168 endPosition = QPointF(
172 endPosition += QPointF(
178 return QPair<QPointF, QPointF>(startPosition, endPosition);
193 setProperty(
"antialias_threshold", newAntiAliasThreshold);
208 setProperty(
"start_position_x", newStartPositionX);
213 setProperty(
"start_position_y", newStartPositionY);
263 setProperty(
"end_position_angle", newEndPositionAngle);
268 setProperty(
"end_position_distance", newEndPositionDistance);
283 QDomDocument document;
284 QDomElement gradientElement = document.createElement(
"gradient");
285 gradientElement.setAttribute(
"name", newGradient->name());
289 gradient->toXML(document, gradientElement);
292 gradient->toXML(document, gradientElement);
295 document.appendChild(gradientElement);
qreal distance(const QPointF &p1, const QPointF &p2)
static constexpr SpatialUnits defaultStartPositionYUnits()
void setShape(KisGradientPainter::enumGradientShape newShape)
static constexpr Positioning defaultEndPositionXPositioning()
static constexpr qreal defaultEndPositionX()
static constexpr bool defaultDither()
void setEndPositionYPositioning(Positioning newEndPositionYPositioning)
qreal endPositionX() const
static constexpr SpatialUnits defaultEndPositionDistanceUnits()
void setEndPositionYUnits(SpatialUnits newEndPositionYUnits)
qreal endPositionDistance() const
static KisGradientPainter::enumGradientRepeat stringToRepeat(QString const &repeatString, KisGradientPainter::enumGradientRepeat defaultRepeat=KisGradientPainter::GradientRepeatNone)
void setStartPositionYUnits(SpatialUnits newStartPositionYUnits)
static constexpr SpatialUnits defaultEndPositionYUnits()
CoordinateSystem endPositionCoordinateSystem() const
static qreal convertUnitsToPixels(qreal x, SpatialUnits sourceUnits, int width, int height)
static constexpr Positioning defaultEndPositionYPositioning()
QPair< QPointF, QPointF > absoluteCartesianPositionsInPixels(int width, int height) const
static constexpr qreal defaultStartPositionX()
static QString shapeToString(KisGradientPainter::enumGradientShape shape, const QString &defaultShapeString=QString())
static constexpr CoordinateSystem defaultEndPositionCoordinateSystem()
static QString coordinateSystemToString(CoordinateSystem coordinateSystem, const QString &defaultCoordinateSystemString=QString())
SpatialUnits startPositionXUnits() const
SpatialUnits endPositionXUnits() const
qreal antiAliasThreshold() const
static constexpr qreal defaultEndPositionY()
static constexpr qreal defaultAntiAliasThreshold()
void setEndPositionY(qreal newEndPositionY)
void setStartPositionY(qreal newStartPositionY)
void setStartPositionX(qreal newStartPositionX)
KisGradientPainter::enumGradientShape shape() const
KisGradientGeneratorConfiguration(qint32 version, KisResourcesInterfaceSP resourcesInterface)
void setReverse(bool newReverse)
static KoAbstractGradientSP defaultGradient()
void setEndPositionX(qreal newEndPositionX)
static constexpr KisGradientPainter::enumGradientShape defaultShape()
qreal startPositionX() const
void setRepeat(KisGradientPainter::enumGradientRepeat newRepeat)
static constexpr bool defaultReverse()
static constexpr qreal defaultStartPositionY()
qreal endPositionY() const
static constexpr qreal defaultEndPositionAngle()
KisGradientPainter::enumGradientRepeat repeat() const
void setEndPositionXPositioning(Positioning newEndPositionXPositioning)
Positioning endPositionXPositioning() const
void setAntiAliasThreshold(qreal newAntiAliasThreshold)
void setGradient(KoAbstractGradientSP newGradient)
static KisGradientPainter::enumGradientShape stringToShape(QString const &shapeString, KisGradientPainter::enumGradientShape defaultShape=KisGradientPainter::GradientShapeLinear)
static SpatialUnits stringToSpatialUnits(QString const &spatialUnitsString, SpatialUnits defaultSpatialUnits=SpatialUnitsPixels)
void setDither(bool newDither)
static QString spatialUnitsToString(SpatialUnits spatialUnits, const QString &defaultSpatialUnitsString=QString())
static Positioning stringToPositioning(QString const &positioningString, Positioning defaultPositioning=PositioningAbsolute)
void setEndPositionCoordinateSystem(CoordinateSystem newEndPositionCoordinateSystem)
void setEndPositionAngle(qreal newEndPositionAngle)
SpatialUnits endPositionDistanceUnits() const
static constexpr KisGradientPainter::enumGradientRepeat defaultRepeat()
SpatialUnits endPositionYUnits() const
KoAbstractGradientSP gradient(KoAbstractGradientSP fallbackGradient=nullptr) const
qreal startPositionY() const
Positioning endPositionYPositioning() const
static CoordinateSystem stringToCoordinateSystem(QString const &coordinateSystemString, CoordinateSystem defaultCoordinateSystem=CoordinateSystemCartesian)
virtual KisFilterConfigurationSP clone() const override
static constexpr SpatialUnits defaultStartPositionXUnits()
static QString repeatToString(KisGradientPainter::enumGradientRepeat repeat, const QString &defaultRepeatString=QString())
static QString positioningToString(Positioning positioning, const QString &defaultPositioningString=QString())
void setStartPositionXUnits(SpatialUnits newStartPositionXUnits)
void setEndPositionXUnits(SpatialUnits newEndPositionXUnits)
SpatialUnits startPositionYUnits() const
static constexpr qreal defaultEndPositionDistance()
void setEndPositionDistance(qreal newEndPositionDistance)
void setEndPositionDistanceUnits(SpatialUnits newEndPositionDistanceUnits)
qreal endPositionAngle() const
static constexpr SpatialUnits defaultEndPositionXUnits()
KoResourceSP clone() const override
static KoSegmentGradient fromXML(const QDomElement &elt)
fromXML get a segment gradient from xml.
KoResourceSP clone() const override
static KoStopGradient fromXML(const QDomElement &elt)
fromXML convert a gradient from xml.
QString getString(const QString &name, const QString &def=QString()) const
virtual bool hasProperty(const QString &name) const
virtual void setProperty(const QString &name, const QVariant &value)
bool getBool(const QString &name, bool def=false) const
double getDouble(const QString &name, double def=0.0) const