diff --git a/src/controls/QskSkinlet.cpp b/src/controls/QskSkinlet.cpp index e72d0500..e672931d 100644 --- a/src/controls/QskSkinlet.cpp +++ b/src/controls/QskSkinlet.cpp @@ -19,9 +19,9 @@ #include "QskControl.h" #include "QskFunctions.h" #include "QskGradient.h" -#include "QskGradientNode.h" #include "QskGraphicNode.h" #include "QskGraphic.h" +#include "QskRectangleNode.h" #include "QskSGNode.h" #include "QskTextColors.h" #include "QskTextNode.h" @@ -351,11 +351,9 @@ QSGNode* QskSkinlet::updateBackgroundNode( if ( !gradient.isValid() ) return nullptr; - auto rectNode = static_cast< QskGradientNode* >( node ); - if ( rectNode == nullptr ) - rectNode = new QskGradientNode(); - + auto rectNode = QskSGNode::ensureNode< QskRectangleNode >( node ); rectNode->updateNode( rect, gradient ); + return rectNode; } diff --git a/src/nodes/QskGradientNode.cpp b/src/nodes/QskRectangleNode.cpp similarity index 92% rename from src/nodes/QskGradientNode.cpp rename to src/nodes/QskRectangleNode.cpp index 02a8d1b5..e18fed41 100644 --- a/src/nodes/QskGradientNode.cpp +++ b/src/nodes/QskRectangleNode.cpp @@ -3,7 +3,7 @@ * This file may be used under the terms of the QSkinny License, Version 1.0 *****************************************************************************/ -#include "QskGradientNode.h" +#include "QskRectangleNode.h" #include "QskGradient.h" #include "QskSGNode.h" #include "QskBoxRenderer.h" @@ -33,10 +33,10 @@ static inline QskGradient qskEffectiveGradient( const QskGradient& gradient ) return gradient; } -class QskGradientNodePrivate final : public QSGGeometryNodePrivate +class QskRectangleNodePrivate final : public QSGGeometryNodePrivate { public: - QskGradientNodePrivate() + QskRectangleNodePrivate() : geometry( QSGGeometry::defaultAttributes_ColoredPoint2D(), 0 ) { } @@ -49,23 +49,23 @@ class QskGradientNodePrivate final : public QSGGeometryNodePrivate int gradientType = -1; }; -QskGradientNode::QskGradientNode() - : QSGGeometryNode( *new QskGradientNodePrivate ) +QskRectangleNode::QskRectangleNode() + : QSGGeometryNode( *new QskRectangleNodePrivate ) { - Q_D( QskGradientNode ); + Q_D( QskRectangleNode ); setFlag( OwnsMaterial, true ); setGeometry( &d->geometry ); } -QskGradientNode::~QskGradientNode() +QskRectangleNode::~QskRectangleNode() { } -void QskGradientNode::updateNode( +void QskRectangleNode::updateNode( const QRectF& rect, const QskGradient& gradient ) { - Q_D( QskGradientNode ); + Q_D( QskRectangleNode ); if ( rect.isEmpty() || !gradient.isVisible() ) { diff --git a/src/nodes/QskGradientNode.h b/src/nodes/QskRectangleNode.h similarity index 64% rename from src/nodes/QskGradientNode.h rename to src/nodes/QskRectangleNode.h index 1f4c4f53..4ec73638 100644 --- a/src/nodes/QskGradientNode.h +++ b/src/nodes/QskRectangleNode.h @@ -3,25 +3,25 @@ * This file may be used under the terms of the QSkinny License, Version 1.0 *****************************************************************************/ -#ifndef QSK_GRADIENT_NODE_H -#define QSK_GRADIENT_NODE_H +#ifndef QSK_RECTANGLE_NODE_H +#define QSK_RECTANGLE_NODE_H #include "QskGlobal.h" #include class QskGradient; -class QskGradientNodePrivate; +class QskRectangleNodePrivate; -class QSK_EXPORT QskGradientNode : public QSGGeometryNode +class QSK_EXPORT QskRectangleNode : public QSGGeometryNode { public: - QskGradientNode(); - ~QskGradientNode() override; + QskRectangleNode(); + ~QskRectangleNode() override; void updateNode( const QRectF&, const QskGradient& ); private: - Q_DECLARE_PRIVATE( QskGradientNode ) + Q_DECLARE_PRIVATE( QskRectangleNode ) }; #endif diff --git a/src/src.pro b/src/src.pro index fac37139..cffc61c5 100644 --- a/src/src.pro +++ b/src/src.pro @@ -109,10 +109,10 @@ HEADERS += \ nodes/QskBoxRendererColorMap.h \ nodes/QskBoxShadowNode.h \ nodes/QskColorRamp.h \ - nodes/QskGradientNode.h \ nodes/QskGraphicNode.h \ nodes/QskPaintedNode.h \ nodes/QskPlainTextRenderer.h \ + nodes/QskRectangleNode.h \ nodes/QskRichTextRenderer.h \ nodes/QskScaleRenderer.h \ nodes/QskSGNode.h \ @@ -137,10 +137,10 @@ SOURCES += \ nodes/QskBoxRendererDEllipse.cpp \ nodes/QskBoxShadowNode.cpp \ nodes/QskColorRamp.cpp \ - nodes/QskGradientNode.cpp \ nodes/QskGraphicNode.cpp \ nodes/QskPaintedNode.cpp \ nodes/QskPlainTextRenderer.cpp \ + nodes/QskRectangleNode.cpp \ nodes/QskRichTextRenderer.cpp \ nodes/QskScaleRenderer.cpp \ nodes/QskSGNode.cpp \