diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2024-03-22 08:33:43 +0100 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2024-04-18 12:41:18 +0200 |
commit | bc2f4bc6176c94177c429359e0c3f11bdd603834 (patch) | |
tree | 4470c7b70f87c92882c8a0a1b8c395f82255cd45 | |
parent | a12db19318fd8b5e5f5ec017578d80d8e9f398e2 (diff) |
Enablers for supporting mask element in QML generator
Visitor callbacks as well as exposing some properties.
Task-number: QTBUG-121537
Change-Id: Ie11db84bf6c0475967f2b26a90155666dd383777
Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
-rw-r--r-- | src/svg/qsvgstructure_p.h | 11 | ||||
-rw-r--r-- | src/svg/qsvgvisitor.cpp | 9 | ||||
-rw-r--r-- | src/svg/qsvgvisitor_p.h | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/svg/qsvgstructure_p.h b/src/svg/qsvgstructure_p.h index fc08f8d..9a3c2a0 100644 --- a/src/svg/qsvgstructure_p.h +++ b/src/svg/qsvgstructure_p.h @@ -194,6 +194,17 @@ public: Type type() const override; QImage createMask(QPainter *p, QSvgExtraStates &states, QSvgNode *targetNode, QRectF *globalRect) const; QImage createMask(QPainter *p, QSvgExtraStates &states, const QRectF &localRect, QRectF *globalRect) const; + + QSvgRectF rect() const + { + return m_rect; + } + + QtSvg::UnitTypes contentUnits() const + { + return m_contentUnits; + } + private: QSvgRectF m_rect; QtSvg::UnitTypes m_contentUnits; diff --git a/src/svg/qsvgvisitor.cpp b/src/svg/qsvgvisitor.cpp index b0935aa..018ace0 100644 --- a/src/svg/qsvgvisitor.cpp +++ b/src/svg/qsvgvisitor.cpp @@ -24,6 +24,10 @@ void QSvgVisitor::traverse(const QSvgStructureNode *node) if (!visitGroupNodeStart(static_cast<const QSvgG *>(node))) return; break; + case QSvgNode::Mask: + if (!visitMaskNodeStart(static_cast<const QSvgMask *>(node))) + return; + break; default: Q_UNREACHABLE(); break; @@ -45,6 +49,9 @@ void QSvgVisitor::traverse(const QSvgStructureNode *node) case QSvgNode::Group: visitGroupNodeEnd(static_cast<const QSvgG *>(node)); break; + case QSvgNode::Mask: + visitMaskNodeEnd(static_cast<const QSvgMask *>(node)); + break; default: Q_UNREACHABLE(); break; @@ -58,6 +65,7 @@ void QSvgVisitor::traverse(const QSvgNode *node) case QSvgNode::Doc: case QSvgNode::Defs: case QSvgNode::Group: + case QSvgNode::Mask: traverse(static_cast<const QSvgStructureNode *>(node)); break; case QSvgNode::Animation: @@ -100,7 +108,6 @@ void QSvgVisitor::traverse(const QSvgNode *node) break; // Enum values that don't have any QSvgNode classes yet: - case QSvgNode::Mask: case QSvgNode::Symbol: case QSvgNode::Marker: case QSvgNode::Pattern: diff --git a/src/svg/qsvgvisitor_p.h b/src/svg/qsvgvisitor_p.h index 92222e6..e1d0663 100644 --- a/src/svg/qsvgvisitor_p.h +++ b/src/svg/qsvgvisitor_p.h @@ -54,6 +54,8 @@ protected: virtual void visitDefsNodeEnd(const QSvgDefs *node) { visitStructureNodeEnd(node); }; virtual bool visitSwitchNodeStart(const QSvgSwitch *node) { return visitStructureNodeStart(node); } virtual void visitSwitchNodeEnd(const QSvgSwitch *node) { visitStructureNodeEnd(node); }; + virtual bool visitMaskNodeStart(const QSvgMask *node) { return visitStructureNodeStart(node); } + virtual void visitMaskNodeEnd(const QSvgMask *node) { visitStructureNodeEnd(node); } }; QT_END_NAMESPACE |