diff --git a/src/Mod/TechDraw/Gui/CMakeLists.txt b/src/Mod/TechDraw/Gui/CMakeLists.txt index d11cc682be..fe794aa85d 100644 --- a/src/Mod/TechDraw/Gui/CMakeLists.txt +++ b/src/Mod/TechDraw/Gui/CMakeLists.txt @@ -324,6 +324,7 @@ SET(TechDrawGuiView_SRCS QGIWeldSymbol.cpp QGITile.h QGITile.cpp + QGIUserTypes.h TemplateTextField.cpp TemplateTextField.h ZVALUE.h diff --git a/src/Mod/TechDraw/Gui/QGCustomBorder.h b/src/Mod/TechDraw/Gui/QGCustomBorder.h index 30a740452a..8654978fc3 100644 --- a/src/Mod/TechDraw/Gui/QGCustomBorder.h +++ b/src/Mod/TechDraw/Gui/QGCustomBorder.h @@ -29,6 +29,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; class QStyleOptionGraphicsItem; @@ -43,7 +45,7 @@ public: explicit QGCustomBorder(); ~QGCustomBorder() override = default; - enum {Type = QGraphicsItem::UserType + 136}; + enum {Type = UserType::QGCustomBorder}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGCustomClip.h b/src/Mod/TechDraw/Gui/QGCustomClip.h index 230540132f..cede55ed75 100644 --- a/src/Mod/TechDraw/Gui/QGCustomClip.h +++ b/src/Mod/TechDraw/Gui/QGCustomClip.h @@ -31,6 +31,8 @@ #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; class QStyleOptionGraphicsItem; @@ -45,7 +47,7 @@ public: explicit QGCustomClip(); ~QGCustomClip() override {} - enum {Type = QGraphicsItem::UserType + 132}; + enum {Type = UserType::QGCustomClip}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGCustomImage.h b/src/Mod/TechDraw/Gui/QGCustomImage.h index 1f454d244f..c82f13cc09 100644 --- a/src/Mod/TechDraw/Gui/QGCustomImage.h +++ b/src/Mod/TechDraw/Gui/QGCustomImage.h @@ -31,6 +31,7 @@ #include #include +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QPainter; @@ -46,7 +47,7 @@ public: explicit QGCustomImage(); ~QGCustomImage() override; - enum {Type = QGraphicsItem::UserType + 201}; + enum {Type = UserType::QGCustomImage}; int type() const override { return Type;} void paint( QPainter *painter, diff --git a/src/Mod/TechDraw/Gui/QGCustomLabel.h b/src/Mod/TechDraw/Gui/QGCustomLabel.h index 2652a2b189..069ba7ee5c 100644 --- a/src/Mod/TechDraw/Gui/QGCustomLabel.h +++ b/src/Mod/TechDraw/Gui/QGCustomLabel.h @@ -28,6 +28,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; @@ -43,7 +45,7 @@ public: explicit QGCustomLabel(); ~QGCustomLabel() override = default; - enum {Type = QGraphicsItem::UserType + 135}; + enum {Type = UserType::QGCustomLabel}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGCustomRect.h b/src/Mod/TechDraw/Gui/QGCustomRect.h index e330b3b821..1d1a0aa652 100644 --- a/src/Mod/TechDraw/Gui/QGCustomRect.h +++ b/src/Mod/TechDraw/Gui/QGCustomRect.h @@ -29,6 +29,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; class QStyleOptionGraphicsItem; @@ -43,7 +45,7 @@ public: explicit QGCustomRect(); ~QGCustomRect() override = default; - enum {Type = QGraphicsItem::UserType + 133}; + enum {Type = UserType::QGCustomRect}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGCustomSvg.h b/src/Mod/TechDraw/Gui/QGCustomSvg.h index c9a9fd2c6d..91d42904b3 100644 --- a/src/Mod/TechDraw/Gui/QGCustomSvg.h +++ b/src/Mod/TechDraw/Gui/QGCustomSvg.h @@ -31,6 +31,7 @@ #include #include +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QPainter; @@ -46,7 +47,7 @@ public: explicit QGCustomSvg(); ~QGCustomSvg() override; - enum {Type = QGraphicsItem::UserType + 131}; + enum {Type = UserType::QGCustomSvg}; int type() const override { return Type;} void paint( QPainter *painter, diff --git a/src/Mod/TechDraw/Gui/QGCustomText.h b/src/Mod/TechDraw/Gui/QGCustomText.h index d8ed0d0cee..f946749e54 100644 --- a/src/Mod/TechDraw/Gui/QGCustomText.h +++ b/src/Mod/TechDraw/Gui/QGCustomText.h @@ -37,6 +37,8 @@ QT_END_NAMESPACE #include #include +#include "QGIUserTypes.h" + namespace TechDrawGui { @@ -46,7 +48,7 @@ public: explicit QGCustomText(QGraphicsItem* parent = nullptr); ~QGCustomText() override {} - enum {Type = QGraphicsItem::UserType + 130}; + enum {Type = UserType::QGCustomText}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGDisplayArea.h b/src/Mod/TechDraw/Gui/QGDisplayArea.h index 9fc116017b..fc787010a8 100644 --- a/src/Mod/TechDraw/Gui/QGDisplayArea.h +++ b/src/Mod/TechDraw/Gui/QGDisplayArea.h @@ -29,6 +29,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; class QStyleOptionGraphicsItem; @@ -43,7 +45,7 @@ public: explicit QGDisplayArea(); ~QGDisplayArea() override {} - enum {Type = QGraphicsItem::UserType + 137}; + enum {Type = UserType::QGDisplayArea}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGEPath.h b/src/Mod/TechDraw/Gui/QGEPath.h index e9d2a028e0..ff9cbffbda 100644 --- a/src/Mod/TechDraw/Gui/QGEPath.h +++ b/src/Mod/TechDraw/Gui/QGEPath.h @@ -30,6 +30,7 @@ #include #include "QGIPrimPath.h" +#include "QGIUserTypes.h" #include "QGIVertex.h" namespace TechDrawGui @@ -48,7 +49,7 @@ public: explicit QGMarker(int idx); ~QGMarker() override = default; - enum {Type = QGraphicsItem::UserType + 302}; + enum {Type = UserType::QGMarker}; int type() const override { return Type;} void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; @@ -84,7 +85,7 @@ public: explicit QGEPath(); ~QGEPath() override = default; - enum {Type = QGraphicsItem::UserType + 301}; + enum {Type = UserType::QGEPath}; int type() const override { return Type;} QRectF boundingRect() const override; QPainterPath shape() const override; diff --git a/src/Mod/TechDraw/Gui/QGIArrow.h b/src/Mod/TechDraw/Gui/QGIArrow.h index 335f179d3e..5bae99901d 100644 --- a/src/Mod/TechDraw/Gui/QGIArrow.h +++ b/src/Mod/TechDraw/Gui/QGIArrow.h @@ -28,7 +28,8 @@ #include -# include "QGIPrimPath.h" +#include "QGIPrimPath.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QPainter; @@ -44,7 +45,7 @@ public: explicit QGIArrow(); ~QGIArrow() override {} - enum {Type = QGraphicsItem::UserType + 109}; + enum {Type = UserType::QGIArrow}; int type() const override { return Type;} public: diff --git a/src/Mod/TechDraw/Gui/QGIBreakLine.h b/src/Mod/TechDraw/Gui/QGIBreakLine.h index 4607d54186..37ff8a3ae3 100644 --- a/src/Mod/TechDraw/Gui/QGIBreakLine.h +++ b/src/Mod/TechDraw/Gui/QGIBreakLine.h @@ -35,6 +35,7 @@ #include "QGCustomText.h" #include "QGIDecoration.h" +#include "QGIUserTypes.h" using BreakType = TechDraw::DrawBrokenView::BreakType; @@ -47,7 +48,7 @@ public: explicit QGIBreakLine(); ~QGIBreakLine() override = default; - enum {Type = QGraphicsItem::UserType + 250}; + enum {Type = UserType::QGIBreakLine}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGICMark.h b/src/Mod/TechDraw/Gui/QGICMark.h index e254f65c72..a5cee8a30d 100644 --- a/src/Mod/TechDraw/Gui/QGICMark.h +++ b/src/Mod/TechDraw/Gui/QGICMark.h @@ -25,7 +25,8 @@ #include -# include "QGIVertex.h" +#include "QGIUserTypes.h" +#include "QGIVertex.h" namespace TechDrawGui { @@ -36,7 +37,7 @@ public: explicit QGICMark(int index); ~QGICMark() override {} - enum {Type = QGraphicsItem::UserType + 171}; + enum {Type = UserType::QGICMark}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGICaption.h b/src/Mod/TechDraw/Gui/QGICaption.h index 179972ace0..3c06410e3e 100644 --- a/src/Mod/TechDraw/Gui/QGICaption.h +++ b/src/Mod/TechDraw/Gui/QGICaption.h @@ -26,6 +26,7 @@ #include #include "QGCustomText.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -36,7 +37,7 @@ public: explicit QGICaption(); ~QGICaption() override {} - enum {Type = QGraphicsItem::UserType + 180}; + enum {Type = UserType::QGICaption}; int type() const override { return Type;} }; diff --git a/src/Mod/TechDraw/Gui/QGICenterLine.h b/src/Mod/TechDraw/Gui/QGICenterLine.h index c3994806aa..26b9246eca 100644 --- a/src/Mod/TechDraw/Gui/QGICenterLine.h +++ b/src/Mod/TechDraw/Gui/QGICenterLine.h @@ -29,6 +29,7 @@ #include #include "QGIDecoration.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -39,7 +40,7 @@ public: explicit QGICenterLine(); ~QGICenterLine() override = default; - enum {Type = QGraphicsItem::UserType + 174}; + enum {Type = UserType::QGICenterLine}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGIDatumLabel.h b/src/Mod/TechDraw/Gui/QGIDatumLabel.h index 00ee277774..8dc03f8bbf 100644 --- a/src/Mod/TechDraw/Gui/QGIDatumLabel.h +++ b/src/Mod/TechDraw/Gui/QGIDatumLabel.h @@ -27,6 +27,7 @@ #include "Enums.h" #include "QGCustomText.h" +#include "QGIUserTypes.h" #include "QGIViewDimension.h" @@ -40,7 +41,7 @@ public: QGIDatumLabel(); ~QGIDatumLabel() override = default; - enum {Type = QGraphicsItem::UserType + 107}; + enum {Type = UserType::QGIDatumLabel}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGIDecoration.h b/src/Mod/TechDraw/Gui/QGIDecoration.h index fe3de1391a..6c20d0f6af 100644 --- a/src/Mod/TechDraw/Gui/QGIDecoration.h +++ b/src/Mod/TechDraw/Gui/QGIDecoration.h @@ -41,6 +41,7 @@ QT_END_NAMESPACE #include #include "Enums.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -50,7 +51,7 @@ class TechDrawGuiExport QGIDecoration : public QGraphicsItemGroup public: explicit QGIDecoration(); ~QGIDecoration() override = default; - enum {Type = QGraphicsItem::UserType + 173}; + enum {Type = UserType::QGIDecoration}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGIDimLines.h b/src/Mod/TechDraw/Gui/QGIDimLines.h index e234eaa57a..c4b682529e 100644 --- a/src/Mod/TechDraw/Gui/QGIDimLines.h +++ b/src/Mod/TechDraw/Gui/QGIDimLines.h @@ -25,7 +25,8 @@ #include -# include "QGIPrimPath.h" +#include "QGIPrimPath.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QPainter; @@ -41,7 +42,7 @@ public: explicit QGIDimLines(); ~QGIDimLines() override = default; - enum {Type = QGraphicsItem::UserType + 175}; + enum {Type = UserType::QGIDimLines}; int type() const override { return Type;} QRectF boundingRect() const override; QPainterPath shape() const override; diff --git a/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h b/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h index e0d68a350e..b15742389f 100644 --- a/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h +++ b/src/Mod/TechDraw/Gui/QGIDrawingTemplate.h @@ -26,6 +26,7 @@ #include #include "QGITemplate.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QGraphicsScene; @@ -48,7 +49,7 @@ public: explicit QGIDrawingTemplate(QGSPage *); ~QGIDrawingTemplate() override; - enum {Type = QGraphicsItem::UserType + 151}; + enum {Type = UserType::QGIDrawingTemplate}; int type() const override { return Type;} void clearContents(); diff --git a/src/Mod/TechDraw/Gui/QGIEdge.h b/src/Mod/TechDraw/Gui/QGIEdge.h index 543458ce19..86d60a3ac9 100644 --- a/src/Mod/TechDraw/Gui/QGIEdge.h +++ b/src/Mod/TechDraw/Gui/QGIEdge.h @@ -27,6 +27,7 @@ #include #include "QGIPrimPath.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -37,7 +38,7 @@ public: explicit QGIEdge(int index); ~QGIEdge() override = default; - enum {Type = QGraphicsItem::UserType + 103}; + enum {Type = UserType::QGIEdge}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGIFace.h b/src/Mod/TechDraw/Gui/QGIFace.h index d1b025c230..b27233fc91 100644 --- a/src/Mod/TechDraw/Gui/QGIFace.h +++ b/src/Mod/TechDraw/Gui/QGIFace.h @@ -35,6 +35,7 @@ #include "PATPathMaker.h" #include "QGIPrimPath.h" +#include "QGIUserTypes.h" namespace TechDrawGui @@ -57,7 +58,7 @@ public: explicit QGIFace(int index = -1); ~QGIFace() override; - enum {Type = QGraphicsItem::UserType + 104}; + enum {Type = UserType::QGIFace}; int type() const override { return Type;} QRectF boundingRect() const override; QPainterPath shape() const override; diff --git a/src/Mod/TechDraw/Gui/QGIGhostHighlight.h b/src/Mod/TechDraw/Gui/QGIGhostHighlight.h index 4035721edf..304b896ed7 100644 --- a/src/Mod/TechDraw/Gui/QGIGhostHighlight.h +++ b/src/Mod/TechDraw/Gui/QGIGhostHighlight.h @@ -30,6 +30,7 @@ #include #include "QGIHighlight.h" +#include "QGIUserTypes.h" //a movable, selectable surrogate for detail highlights in QGIVPart @@ -44,7 +45,7 @@ public: explicit QGIGhostHighlight(); ~QGIGhostHighlight() override; - enum {Type = QGraphicsItem::UserType + 177}; + enum {Type = UserType::QGIGhostHighlight}; int type() const override { return Type;} void setInteractive(bool state); diff --git a/src/Mod/TechDraw/Gui/QGIHighlight.h b/src/Mod/TechDraw/Gui/QGIHighlight.h index 723e769955..01f1c00d91 100644 --- a/src/Mod/TechDraw/Gui/QGIHighlight.h +++ b/src/Mod/TechDraw/Gui/QGIHighlight.h @@ -34,6 +34,7 @@ #include "QGCustomText.h" #include "QGCustomRect.h" #include "QGIDecoration.h" +#include "QGIUserTypes.h" namespace TechDrawGui @@ -45,7 +46,7 @@ public: explicit QGIHighlight(); ~QGIHighlight() override; - enum {Type = QGraphicsItem::UserType + 176}; + enum {Type = UserType::QGIHighlight}; int type() const override { return Type;} void paint(QPainter * painter, diff --git a/src/Mod/TechDraw/Gui/QGILeaderLine.h b/src/Mod/TechDraw/Gui/QGILeaderLine.h index 7fd7e046df..ed961789ee 100644 --- a/src/Mod/TechDraw/Gui/QGILeaderLine.h +++ b/src/Mod/TechDraw/Gui/QGILeaderLine.h @@ -34,6 +34,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw @@ -56,10 +57,7 @@ class TechDrawGuiExport QGILeaderLine: public QGIView Q_OBJECT public: - enum - { - Type = QGraphicsItem::UserType + 232 - }; + enum {Type = UserType::QGILeaderLine}; explicit QGILeaderLine(); ~QGILeaderLine() override = default; diff --git a/src/Mod/TechDraw/Gui/QGIMatting.h b/src/Mod/TechDraw/Gui/QGIMatting.h index 5b3df6baa0..8b531ebbc3 100644 --- a/src/Mod/TechDraw/Gui/QGIMatting.h +++ b/src/Mod/TechDraw/Gui/QGIMatting.h @@ -31,6 +31,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; @@ -47,7 +49,7 @@ public: explicit QGIMatting(); ~QGIMatting() override {} - enum {Type = QGraphicsItem::UserType + 205}; + enum {Type = UserType::QGIMatting}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGIPrimPath.h b/src/Mod/TechDraw/Gui/QGIPrimPath.h index d73b07d266..b75bc47e7f 100644 --- a/src/Mod/TechDraw/Gui/QGIPrimPath.h +++ b/src/Mod/TechDraw/Gui/QGIPrimPath.h @@ -31,6 +31,8 @@ #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QPainter; class QStyleOptionGraphicsItem; @@ -45,7 +47,7 @@ public: explicit QGIPrimPath(); ~QGIPrimPath() override = default; - enum {Type = QGraphicsItem::UserType + 170}; + enum {Type = UserType::QGIPrimPath}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGIProjGroup.h b/src/Mod/TechDraw/Gui/QGIProjGroup.h index 549c3769cf..88343834ee 100644 --- a/src/Mod/TechDraw/Gui/QGIProjGroup.h +++ b/src/Mod/TechDraw/Gui/QGIProjGroup.h @@ -26,6 +26,7 @@ #include #include "QGIViewCollection.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE @@ -49,7 +50,7 @@ public: // TODO: if the QGIVO is deleted, should we clean up any remaining QGIVParts?? ~QGIProjGroup() override = default; - enum {Type = QGraphicsItem::UserType + 113}; + enum {Type = UserType::QGIProjGroup}; int type() const override { return Type;} void alignTo(QGIProjGroup *, const QString &alignment); diff --git a/src/Mod/TechDraw/Gui/QGIRichAnno.h b/src/Mod/TechDraw/Gui/QGIRichAnno.h index 1363584c25..0c5b994bca 100644 --- a/src/Mod/TechDraw/Gui/QGIRichAnno.h +++ b/src/Mod/TechDraw/Gui/QGIRichAnno.h @@ -31,6 +31,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw { @@ -55,7 +56,7 @@ class TechDrawGuiExport QGIRichAnno : public QGIView Q_OBJECT public: - enum {Type = QGraphicsItem::UserType + 233}; + enum {Type = UserType::QGIRichAnno}; explicit QGIRichAnno(); ~QGIRichAnno() override = default; diff --git a/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp b/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp index 5844424b2d..3dbb8260ba 100644 --- a/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp +++ b/src/Mod/TechDraw/Gui/QGISVGTemplate.cpp @@ -43,6 +43,7 @@ #include #include "QGISVGTemplate.h" +#include "QGIUserTypes.h" #include "PreferencesGui.h" #include "QGSPage.h" #include "Rez.h" @@ -206,13 +207,12 @@ void QGISVGTemplate::updateView(bool update) std::vector QGISVGTemplate::getTextFields() { - constexpr int TemplateTextFieldType {QGraphicsItem::UserType + 160}; std::vector result; result.reserve(childItems().size()); QList templateChildren = childItems(); for (auto& child : templateChildren) { - if (child->type() == TemplateTextFieldType) { + if (child->type() == UserType::TemplateTextField) { result.push_back(static_cast(child)); } } diff --git a/src/Mod/TechDraw/Gui/QGISVGTemplate.h b/src/Mod/TechDraw/Gui/QGISVGTemplate.h index bec5622517..8b2527cd06 100644 --- a/src/Mod/TechDraw/Gui/QGISVGTemplate.h +++ b/src/Mod/TechDraw/Gui/QGISVGTemplate.h @@ -32,6 +32,7 @@ class QFile; class QString; #include "QGITemplate.h" +#include "QGIUserTypes.h" namespace TechDraw { @@ -50,10 +51,7 @@ public: explicit QGISVGTemplate(QGSPage* scene); ~QGISVGTemplate() override; - enum - { - Type = QGraphicsItem::UserType + 153 - }; + enum {Type = UserType::QGISVGTemplate}; int type() const override { return Type; } void draw() override; diff --git a/src/Mod/TechDraw/Gui/QGISectionLine.h b/src/Mod/TechDraw/Gui/QGISectionLine.h index 84aaabbbd2..a35dae590e 100644 --- a/src/Mod/TechDraw/Gui/QGISectionLine.h +++ b/src/Mod/TechDraw/Gui/QGISectionLine.h @@ -35,6 +35,7 @@ #include "QGCustomText.h" #include "QGIDecoration.h" +#include "QGIUserTypes.h" namespace TechDrawGui @@ -49,7 +50,7 @@ public: explicit QGISectionLine(); ~QGISectionLine() override = default; - enum {Type = QGraphicsItem::UserType + 172}; + enum {Type = UserType::QGISectionLine}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGITemplate.h b/src/Mod/TechDraw/Gui/QGITemplate.h index 763b753094..b45ea99383 100644 --- a/src/Mod/TechDraw/Gui/QGITemplate.h +++ b/src/Mod/TechDraw/Gui/QGITemplate.h @@ -28,6 +28,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QGraphicsScene; QT_END_NAMESPACE @@ -49,7 +51,7 @@ public: QGITemplate(QGSPage *); ~QGITemplate() override; - enum {Type = QGraphicsItem::UserType + 150}; + enum {Type = UserType::QGITemplate}; int type() const override { return Type;} void clearContents(); diff --git a/src/Mod/TechDraw/Gui/QGITile.h b/src/Mod/TechDraw/Gui/QGITile.h index a9f349c531..c8af1118d1 100644 --- a/src/Mod/TechDraw/Gui/QGITile.h +++ b/src/Mod/TechDraw/Gui/QGITile.h @@ -31,6 +31,7 @@ #include #include "QGIDecoration.h" +#include "QGIUserTypes.h" namespace TechDraw { class DrawTile; @@ -49,7 +50,7 @@ public: explicit QGITile(TechDraw::DrawTileWeld*); ~QGITile() override = default; - enum {Type = QGraphicsItem::UserType + 325}; + enum {Type = UserType::QGITile}; int type() const override { return Type;} QRectF boundingRect() const override; diff --git a/src/Mod/TechDraw/Gui/QGIUserTypes.h b/src/Mod/TechDraw/Gui/QGIUserTypes.h index 34cdc480b1..c9bf0178f2 100644 --- a/src/Mod/TechDraw/Gui/QGIUserTypes.h +++ b/src/Mod/TechDraw/Gui/QGIUserTypes.h @@ -1,60 +1,94 @@ +/*************************************************************************** + * Copyright (c) 2025 WandererFan * + * Copyright (c) 2025 Benjamin Bræstrup Sayoc * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software, you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation, either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY, without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library, see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#ifndef TECHDRAWGUI_USERTYPES_H +#define TECHDRAWGUI_USERTYPES_H + +#include + /* Derived QGI Classes type() Values Qt First UserType>> QGraphicsItem::UserType = 65536 - -QGIView : 101 -QGIViewPart : 102 -QGIEdge: 103 -QGIFace: 104 -QGIVertex: 105 -QGIViewDimension : 106 -QGIViewBalloon : 140 -QGIBalloonLabel : 141 -QGIDatumLabel : 107 -QGIViewSection : 108 -QGIArrow: 109 -QGIViewCollection : 110 -QGIProjGroup : 113 -QGIViewAnnotation : 120 -QGIViewSymbol : 121 -QGIHatch : 122 //obsolete -QGIClip : 123 -QGISpreadsheet : 124 -QGCustomText: 130 -QGCustomSvg: 131 -QGCustomClip: 132 -QGCustomRect: 133 -QGCustomLabel:135 -QGCustomBorder: 136 -QGDisplayArea: 137 -QGITemplate: 150 -QGIDrawingTemplate: 151 -QGISVGTemplate: 153 -TemplateTextField: 160 -QGIPrimPath: 170 -QGICMark: 171 -QGISectionLine: 172 -QGIDecoration: 173 -QGICenterLine: 174 -QGIDimLines: 175 -QGIHighlight: 176 -QGIGhostHighlight: 177 -QGICaption: 180 -QGIViewImage: 200 -QGCustomImage: 201 -QGIMatting: 205 -QGTracker: 210 -QGILeaderLine: 232 -QGIRichAnno: 233 -QGIBreakLine: 250 -QGMText: 300 -QGEPath: 301 -QGMarker: 302 -QGITile: 325 -QGIWeldSymbol: 340 */ +namespace TechDrawGui { +struct UserType { +enum : int { + QGCustomBorder = QGraphicsItem::UserType, + QGCustomClip, + QGCustomImage, + QGCustomLabel, + QGCustomRect, + QGCustomSvg, + QGCustomText, + QGDisplayArea, + QGEPath, + QGIArrow, + QGIBalloonLabel, + QGIBreakLine, + QGICaption, + QGICenterLine, + QGICMark, + QGIDatumLabel, + QGIDecoration, + QGIDimLines, + QGIDrawingTemplate, + QGIEdge, + QGIFace, + QGIGhostHighlight, + //QGIHatch, //obsolete + QGIHighlight, + QGILeaderLine, + QGIMatting, + QGIPrimPath, + QGIProjGroup, + QGIRichAnno, + QGISectionLine, + QGISpreadsheet, + QGISVGTemplate, + QGITemplate, + QGITile, + QGIVertex, + QGIView, + QGIViewAnnotation, + QGIViewBalloon, + QGIViewClip, + QGIViewCollection, + QGIViewDimension, + QGIViewImage, + QGIViewPart, + QGIViewSection, + QGIViewSymbol, + QGIWeldSymbol, + QGMarker, + QGMText, + QGTracker, + TemplateTextField +}; +}; +} + /* Standard Types path 2 @@ -67,3 +101,5 @@ text 8 simpletext 9 group 10 */ + +#endif diff --git a/src/Mod/TechDraw/Gui/QGIVertex.h b/src/Mod/TechDraw/Gui/QGIVertex.h index 2391dc5466..ace8d6654d 100644 --- a/src/Mod/TechDraw/Gui/QGIVertex.h +++ b/src/Mod/TechDraw/Gui/QGIVertex.h @@ -25,7 +25,8 @@ #include -# include "QGIPrimPath.h" +#include "QGIPrimPath.h" +#include "QGIUserTypes.h" namespace Base { class Vector2d; @@ -40,7 +41,7 @@ public: explicit QGIVertex(int index); ~QGIVertex() override = default; - enum {Type = QGraphicsItem::UserType + 105}; + enum {Type = UserType::QGIVertex}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/QGIView.cpp b/src/Mod/TechDraw/Gui/QGIView.cpp index 8bd5cf7472..506232dd98 100644 --- a/src/Mod/TechDraw/Gui/QGIView.cpp +++ b/src/Mod/TechDraw/Gui/QGIView.cpp @@ -60,6 +60,7 @@ #include "QGIEdge.h" #include "QGIVertex.h" #include "QGIViewClip.h" +#include "QGIUserTypes.h" #include "QGSPage.h" #include "QGVPage.h" #include "Rez.h" @@ -720,31 +721,21 @@ QRectF QGIView::customChildrenBoundingRect() const { QList children = childItems(); // exceptions not to be included in determining the frame rectangle - int dimItemType = QGraphicsItem::UserType + 106; // TODO: Get magic number from include by name - int borderItemType = QGraphicsItem::UserType + 136; // TODO: Magic number warning - int labelItemType = QGraphicsItem::UserType + 135; // TODO: Magic number warning - int captionItemType = QGraphicsItem::UserType + 180; // TODO: Magic number warning - int leaderItemType = QGraphicsItem::UserType + 232; // TODO: Magic number warning - int textLeaderItemType = QGraphicsItem::UserType + 233; // TODO: Magic number warning - int editablePathItemType = QGraphicsItem::UserType + 301; // TODO: Magic number warning - int movableTextItemType = QGraphicsItem::UserType + 300; - int weldingSymbolItemType = QGraphicsItem::UserType + 340; - int centerMarkItemType = QGraphicsItem::UserType + 171; QRectF result; for (auto& child : children) { if (!child->isVisible()) { continue; } - if ( (child->type() != dimItemType) && - (child->type() != leaderItemType) && - (child->type() != textLeaderItemType) && - (child->type() != editablePathItemType) && - (child->type() != movableTextItemType) && - (child->type() != borderItemType) && - (child->type() != labelItemType) && - (child->type() != weldingSymbolItemType) && - (child->type() != captionItemType) && - (child->type() != centerMarkItemType)) { + if (child->type() != UserType::QGIViewDimension && + child->type() != UserType::QGILeaderLine && + child->type() != UserType::QGIRichAnno && + child->type() != UserType::QGEPath && + child->type() != UserType::QGMText && + child->type() != UserType::QGCustomBorder && + child->type() != UserType::QGCustomLabel && + child->type() != UserType::QGIWeldSymbol && + child->type() != UserType::QGICaption && + child->type() != UserType::QGICMark) { QRectF childRect = mapFromItem(child, child->boundingRect()).boundingRect(); result = result.united(childRect); } diff --git a/src/Mod/TechDraw/Gui/QGIView.h b/src/Mod/TechDraw/Gui/QGIView.h index 2652abb327..88a5a55a87 100644 --- a/src/Mod/TechDraw/Gui/QGIView.h +++ b/src/Mod/TechDraw/Gui/QGIView.h @@ -37,6 +37,8 @@ #include #include +#include "QGIUserTypes.h" + QT_BEGIN_NAMESPACE class QGraphicsScene; class QGraphicsSceneMouseEvent; @@ -74,13 +76,13 @@ class QGCustomImage; class QGTracker; class QGIVertex; -class TechDrawGuiExport QGIView : public QObject, public QGraphicsItemGroup +class TechDrawGuiExport QGIView : public QObject, public QGraphicsItemGroup { Q_OBJECT public: QGIView(); - enum {Type = QGraphicsItem::UserType + 101}; + enum {Type = UserType::QGIView}; int type() const override { return Type;} QRectF boundingRect() const override; void paint( QPainter *painter, diff --git a/src/Mod/TechDraw/Gui/QGIViewAnnotation.h b/src/Mod/TechDraw/Gui/QGIViewAnnotation.h index 0034df9536..2d47ba6c71 100644 --- a/src/Mod/TechDraw/Gui/QGIViewAnnotation.h +++ b/src/Mod/TechDraw/Gui/QGIViewAnnotation.h @@ -27,6 +27,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw { class DrawViewAnnotation; @@ -45,7 +46,7 @@ public: /// m_textItem belongs to this group and will be deleted by Qt ~QGIViewAnnotation() override = default; - enum {Type = QGraphicsItem::UserType + 120}; + enum {Type = UserType::QGIViewAnnotation}; int type() const override { return Type;} void updateView(bool update = false) override; diff --git a/src/Mod/TechDraw/Gui/QGIViewBalloon.h b/src/Mod/TechDraw/Gui/QGIViewBalloon.h index 5b46525db8..101fdbe76d 100644 --- a/src/Mod/TechDraw/Gui/QGIViewBalloon.h +++ b/src/Mod/TechDraw/Gui/QGIViewBalloon.h @@ -36,6 +36,7 @@ #include "QGCustomText.h" #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw @@ -65,10 +66,7 @@ public: QGIBalloonLabel(); ~QGIBalloonLabel() override = default; - enum - { - Type = QGraphicsItem::UserType + 141 - }; + enum {Type = UserType::QGIBalloonLabel}; int type() const override { return Type; @@ -170,10 +168,7 @@ class TechDrawGuiExport QGIViewBalloon: public QGIView Q_OBJECT public: - enum - { - Type = QGraphicsItem::UserType + 140 - }; + enum {Type = UserType::QGIViewBalloon}; explicit QGIViewBalloon(); ~QGIViewBalloon() override = default; diff --git a/src/Mod/TechDraw/Gui/QGIViewClip.h b/src/Mod/TechDraw/Gui/QGIViewClip.h index ec8d18094e..35a4be645d 100644 --- a/src/Mod/TechDraw/Gui/QGIViewClip.h +++ b/src/Mod/TechDraw/Gui/QGIViewClip.h @@ -26,6 +26,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -39,7 +40,7 @@ public: QGIViewClip(); ~QGIViewClip() override = default; - enum {Type = QGraphicsItem::UserType + 123}; + enum {Type = UserType::QGIViewClip}; int type() const override { return Type;} void updateView(bool update = false) override; diff --git a/src/Mod/TechDraw/Gui/QGIViewCollection.h b/src/Mod/TechDraw/Gui/QGIViewCollection.h index 3628e42c0e..4baee16253 100644 --- a/src/Mod/TechDraw/Gui/QGIViewCollection.h +++ b/src/Mod/TechDraw/Gui/QGIViewCollection.h @@ -26,6 +26,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE class QGraphicsScene; @@ -41,7 +42,7 @@ public: QGIViewCollection(); ~QGIViewCollection() override = default; - enum {Type = QGraphicsItem::UserType + 110}; + enum {Type = UserType::QGIViewCollection}; int type() const override { return Type;} }; diff --git a/src/Mod/TechDraw/Gui/QGIViewDimension.h b/src/Mod/TechDraw/Gui/QGIViewDimension.h index 1546bfcaaf..7846be916e 100644 --- a/src/Mod/TechDraw/Gui/QGIViewDimension.h +++ b/src/Mod/TechDraw/Gui/QGIViewDimension.h @@ -36,6 +36,7 @@ #include "QGCustomText.h" #include "QGIView.h" +#include "QGIUserTypes.h" #include "Rez.h" @@ -65,7 +66,7 @@ class TechDrawGuiExport QGIViewDimension : public QGIView Q_OBJECT public: - enum {Type = QGraphicsItem::UserType + 106}; + enum {Type = UserType::QGIViewDimension}; QGIViewDimension(); ~QGIViewDimension() override = default; diff --git a/src/Mod/TechDraw/Gui/QGIViewImage.h b/src/Mod/TechDraw/Gui/QGIViewImage.h index 1707be26d4..64076fb650 100644 --- a/src/Mod/TechDraw/Gui/QGIViewImage.h +++ b/src/Mod/TechDraw/Gui/QGIViewImage.h @@ -26,6 +26,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw { class DrawViewImage; @@ -42,7 +43,7 @@ public: QGIViewImage(); ~QGIViewImage() override; - enum {Type = QGraphicsItem::UserType + 200}; + enum {Type = UserType::QGIViewImage}; int type() const override { return Type;} void updateView(bool update = false) override; diff --git a/src/Mod/TechDraw/Gui/QGIViewPart.h b/src/Mod/TechDraw/Gui/QGIViewPart.h index 03526c0f1c..e1e3be2bd7 100644 --- a/src/Mod/TechDraw/Gui/QGIViewPart.h +++ b/src/Mod/TechDraw/Gui/QGIViewPart.h @@ -32,6 +32,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" class QColor; @@ -63,7 +64,7 @@ public: explicit QGIViewPart(); ~QGIViewPart() override; - enum {Type = QGraphicsItem::UserType + 102}; + enum {Type = UserType::QGIViewPart}; int type() const override { return Type;} void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, diff --git a/src/Mod/TechDraw/Gui/QGIViewSection.h b/src/Mod/TechDraw/Gui/QGIViewSection.h index 95cca26f74..4220cae382 100644 --- a/src/Mod/TechDraw/Gui/QGIViewSection.h +++ b/src/Mod/TechDraw/Gui/QGIViewSection.h @@ -26,6 +26,7 @@ #include #include "QGIViewPart.h" +#include "QGIUserTypes.h" namespace TechDrawGui { @@ -39,7 +40,7 @@ public: void draw() override; void updateView(bool update = false) override; - enum { Type = QGraphicsItem::UserType + 108 }; + enum {Type = UserType::QGIViewSection}; int type() const override { return Type; } protected: diff --git a/src/Mod/TechDraw/Gui/QGIViewSpreadsheet.h b/src/Mod/TechDraw/Gui/QGIViewSpreadsheet.h index 6d2effe014..0baa13ece6 100644 --- a/src/Mod/TechDraw/Gui/QGIViewSpreadsheet.h +++ b/src/Mod/TechDraw/Gui/QGIViewSpreadsheet.h @@ -26,6 +26,7 @@ #include #include "QGIViewSymbol.h" +#include "QGIUserTypes.h" namespace TechDraw { class DrawViewSpreadsheet; @@ -40,7 +41,7 @@ public: QGIViewSpreadsheet(); ~QGIViewSpreadsheet() override = default; - enum {Type = QGraphicsItem::UserType + 124}; + enum {Type = UserType::QGISpreadsheet}; int type() const override { return Type;} void setViewFeature(TechDraw::DrawViewSpreadsheet *obj); diff --git a/src/Mod/TechDraw/Gui/QGIViewSymbol.h b/src/Mod/TechDraw/Gui/QGIViewSymbol.h index e22182a6e1..a865d881ea 100644 --- a/src/Mod/TechDraw/Gui/QGIViewSymbol.h +++ b/src/Mod/TechDraw/Gui/QGIViewSymbol.h @@ -29,6 +29,7 @@ #include #include "QGIView.h" +#include "QGIUserTypes.h" namespace TechDraw { @@ -46,7 +47,7 @@ public: QGIViewSymbol(); ~QGIViewSymbol() override; - enum {Type = QGraphicsItem::UserType + 121}; + enum {Type = UserType::QGIViewSymbol}; int type() const override { return Type;} void updateView(bool update = false) override; diff --git a/src/Mod/TechDraw/Gui/QGIWeldSymbol.h b/src/Mod/TechDraw/Gui/QGIWeldSymbol.h index 7370d3cec8..f2b194406c 100644 --- a/src/Mod/TechDraw/Gui/QGIWeldSymbol.h +++ b/src/Mod/TechDraw/Gui/QGIWeldSymbol.h @@ -32,6 +32,7 @@ #include #include +#include "QGIUserTypes.h" #include "QGIView.h" @@ -61,7 +62,7 @@ class TechDrawGuiExport QGIWeldSymbol : public QGIView Q_OBJECT public: - enum {Type = QGraphicsItem::UserType + 340}; + enum {Type = UserType::QGIWeldSymbol}; explicit QGIWeldSymbol(); ~QGIWeldSymbol() override = default; diff --git a/src/Mod/TechDraw/Gui/QGMText.h b/src/Mod/TechDraw/Gui/QGMText.h index d65759e6b3..c99d40e4d0 100644 --- a/src/Mod/TechDraw/Gui/QGMText.h +++ b/src/Mod/TechDraw/Gui/QGMText.h @@ -29,6 +29,7 @@ #include #include "QGCustomText.h" +#include "QGIUserTypes.h" QT_BEGIN_NAMESPACE @@ -48,7 +49,7 @@ public: explicit QGMText(void); ~QGMText() override = default; - enum {Type = QGraphicsItem::UserType + 300}; + enum {Type = UserType::QGMText}; int type() const override { return Type;} void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, diff --git a/src/Mod/TechDraw/Gui/QGSPage.cpp b/src/Mod/TechDraw/Gui/QGSPage.cpp index 72766ab4b6..16ce244c20 100644 --- a/src/Mod/TechDraw/Gui/QGSPage.cpp +++ b/src/Mod/TechDraw/Gui/QGSPage.cpp @@ -68,6 +68,7 @@ #include "QGIRichAnno.h" #include "QGISVGTemplate.h" #include "QGITemplate.h" +#include "QGIUserTypes.h" #include "QGIViewAnnotation.h" #include "QGIViewBalloon.h" #include "QGIViewClip.h" @@ -136,10 +137,12 @@ bool QGSPage::itemClearsSelection(int itemTypeIn) // type 13 is the itemUnderMouse on a page outside of any views. It is not // the template or background or foreground. QGraphicsItem type = 13 is not // documented and not found in QGraphicsItem.h. - const std::vector ClearingTypes { 13, // MysteryType - QGraphicsItem::UserType + 150, // QGITemplateType - QGraphicsItem::UserType + 151, // QGIDrawingTemplateType - QGraphicsItem::UserType + 153 }; // QGISVGTemplateType + const std::vector ClearingTypes { + 13, // MysteryType + UserType::QGITemplate, + UserType::QGIDrawingTemplate, + UserType::QGISVGTemplate + }; for (auto& type : ClearingTypes) { if (itemTypeIn == type) { @@ -353,8 +356,7 @@ int QGSPage::removeQViewByName(const char* name) } if (found) { - int balloonItemType = QGraphicsItem::UserType + 140; - if (ourItem->type() == balloonItemType) { + if (ourItem->type() == UserType::QGIViewBalloon) { QGIViewBalloon* balloon = dynamic_cast(ourItem); balloon->disconnect(); } @@ -462,20 +464,16 @@ void QGSPage::addItemToParent(QGIView* item, QGIView* parent) // defined relative to the Page should not use the dimension/balloon mapping. assert(item); assert(parent); - // TODO: make custom user types retrievable by name (see QGIUserTypes.h) - constexpr int QGIVDimensionType {QGraphicsItem::UserType + 106}; - constexpr int QGIVBalloonType {QGraphicsItem::UserType + 140}; - constexpr int QGIWeldSymbolType {QGraphicsItem::UserType + 340}; - // constexpr int QGIViewAnnotationType {QGraphicsItem::UserType + 120}; - if (item->type() == QGIWeldSymbolType) { + if (item->type() == UserType::QGIWeldSymbol) { // don't touch these return; } // original parenting logic here QPointF posRef(0., 0.); - if (item->type() == QGIVDimensionType || item->type() == QGIVBalloonType) { + if (item->type() == UserType::QGIViewDimension || + item->type() == UserType::QGIViewBalloon) { QPointF mapPos = item->mapToItem(parent, posRef); item->moveBy(-mapPos.x(), -mapPos.y()); parent->addToGroup(item); diff --git a/src/Mod/TechDraw/Gui/QGTracker.h b/src/Mod/TechDraw/Gui/QGTracker.h index 453403ccf6..d4e32c552c 100644 --- a/src/Mod/TechDraw/Gui/QGTracker.h +++ b/src/Mod/TechDraw/Gui/QGTracker.h @@ -36,6 +36,7 @@ QT_END_NAMESPACE #include #include +#include "QGIUserTypes.h" #include "QGIPrimPath.h" namespace TechDrawGui @@ -70,7 +71,7 @@ public: ~QGTracker() override; - enum {Type = QGraphicsItem::UserType + 210}; + enum {Type = UserType::QGTracker}; int type() const override { return Type;} void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = nullptr ) override; diff --git a/src/Mod/TechDraw/Gui/TemplateTextField.h b/src/Mod/TechDraw/Gui/TemplateTextField.h index bd75789558..88bb2c1949 100644 --- a/src/Mod/TechDraw/Gui/TemplateTextField.h +++ b/src/Mod/TechDraw/Gui/TemplateTextField.h @@ -29,6 +29,8 @@ #include #include +#include "QGIUserTypes.h" + namespace TechDraw { class DrawTemplate; } @@ -49,7 +51,7 @@ class TechDrawGuiExport TemplateTextField : public QGraphicsItemGroup ~TemplateTextField() override = default; - enum {Type = QGraphicsItem::UserType + 160}; + enum {Type = UserType::TemplateTextField}; int type() const override { return Type;} /// Returns the field name that this TemplateTextField represents