diff --git a/sources/diagram.cpp b/sources/diagram.cpp index 9893c664d..86271e404 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -368,7 +368,7 @@ QDomDocument Diagram::toXml(bool whole_content) { } else if (DiagramImageItem *dii = qgraphicsitem_cast(qgi)) { if (whole_content) list_images << dii; else if (dii -> isSelected()) list_images << dii; - } else if (QetShapeItem *dsi = dynamic_cast(qgi)) { + } else if (QetShapeItem *dsi = qgraphicsitem_cast(qgi)) { if (whole_content) list_shapes << dsi; else if (dsi -> isSelected()) list_shapes << dsi; } diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 084117dac..1303f0546 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -717,7 +717,7 @@ bool DiagramView::hasCopiableItems() { if ( qgraphicsitem_cast(qgi) || qgraphicsitem_cast(qgi) || - dynamic_cast(qgi) || + qgraphicsitem_cast(qgi) || qgraphicsitem_cast(qgi) ) { return(true); @@ -736,7 +736,7 @@ bool DiagramView::hasDeletableItems() { qgraphicsitem_cast(qgi) || qgraphicsitem_cast(qgi) || qgraphicsitem_cast(qgi) || - dynamic_cast(qgi) || + qgraphicsitem_cast(qgi) || qgraphicsitem_cast(qgi) ) { return(true); diff --git a/sources/exportdialog.cpp b/sources/exportdialog.cpp index 5cf4ef178..af6a7076d 100644 --- a/sources/exportdialog.cpp +++ b/sources/exportdialog.cpp @@ -481,7 +481,7 @@ void ExportDialog::generateDxf(Diagram *diagram, int width, int height, bool kee list_texts << iti; } else if (DiagramImageItem *dii = qgraphicsitem_cast(qgi)) { list_images << dii; - } else if (QetShapeItem *dii = dynamic_cast(qgi)) { + } else if (QetShapeItem *dii = qgraphicsitem_cast(qgi)) { if (dii -> getType() == QetShapeItem::Line && dii -> getLine()) { list_lines << dii -> getLine(); } else if (dii -> getType() == QetShapeItem::Rectangle && dii -> getRectangle()) { diff --git a/sources/qetgraphicsitem/qetshapeitem.h b/sources/qetgraphicsitem/qetshapeitem.h index 88d5630ea..f05b9a8c7 100644 --- a/sources/qetgraphicsitem/qetshapeitem.h +++ b/sources/qetgraphicsitem/qetshapeitem.h @@ -16,6 +16,19 @@ class QetShapeItem : public QetGraphicsItem QetShapeItem(QPointF, QPointF = QPointF(0,0), ShapeType = Line, bool lineAngle = false, QGraphicsItem *parent = 0); virtual ~QetShapeItem(); + // attributes + public: + enum { Type = UserType + 1008 }; + + // methods + public: + /** + Enable the use of qgraphicsitem_cast to safely cast a QGraphicsItem into a + QetShapeItem + @return the QGraphicsItem type + */ + virtual int type() const { return Type; } + void setStyle(Qt::PenStyle); Qt::PenStyle getStyle() const { return _shapeStyle; } ShapeType getType() const { return _shapeType; }