Basic Shape: qgraphicsitem_cast<> instead of dynamic_cast

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2897 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
abhishekm71
2014-03-02 13:49:11 +00:00
parent 578cda387b
commit d80a2289d6
4 changed files with 17 additions and 4 deletions

View File

@@ -368,7 +368,7 @@ QDomDocument Diagram::toXml(bool whole_content) {
} else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) { } else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) {
if (whole_content) list_images << dii; if (whole_content) list_images << dii;
else if (dii -> isSelected()) list_images << dii; else if (dii -> isSelected()) list_images << dii;
} else if (QetShapeItem *dsi = dynamic_cast<QetShapeItem *>(qgi)) { } else if (QetShapeItem *dsi = qgraphicsitem_cast<QetShapeItem *>(qgi)) {
if (whole_content) list_shapes << dsi; if (whole_content) list_shapes << dsi;
else if (dsi -> isSelected()) list_shapes << dsi; else if (dsi -> isSelected()) list_shapes << dsi;
} }

View File

@@ -717,7 +717,7 @@ bool DiagramView::hasCopiableItems() {
if ( if (
qgraphicsitem_cast<Element *>(qgi) || qgraphicsitem_cast<Element *>(qgi) ||
qgraphicsitem_cast<IndependentTextItem *>(qgi) || qgraphicsitem_cast<IndependentTextItem *>(qgi) ||
dynamic_cast<QetShapeItem *>(qgi) || qgraphicsitem_cast<QetShapeItem *>(qgi) ||
qgraphicsitem_cast<DiagramImageItem *>(qgi) qgraphicsitem_cast<DiagramImageItem *>(qgi)
) { ) {
return(true); return(true);
@@ -736,7 +736,7 @@ bool DiagramView::hasDeletableItems() {
qgraphicsitem_cast<Element *>(qgi) || qgraphicsitem_cast<Element *>(qgi) ||
qgraphicsitem_cast<Conductor *>(qgi) || qgraphicsitem_cast<Conductor *>(qgi) ||
qgraphicsitem_cast<IndependentTextItem *>(qgi) || qgraphicsitem_cast<IndependentTextItem *>(qgi) ||
dynamic_cast<QetShapeItem *>(qgi) || qgraphicsitem_cast<QetShapeItem *>(qgi) ||
qgraphicsitem_cast<DiagramImageItem *>(qgi) qgraphicsitem_cast<DiagramImageItem *>(qgi)
) { ) {
return(true); return(true);

View File

@@ -481,7 +481,7 @@ void ExportDialog::generateDxf(Diagram *diagram, int width, int height, bool kee
list_texts << iti; list_texts << iti;
} else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) { } else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) {
list_images << dii; list_images << dii;
} else if (QetShapeItem *dii = dynamic_cast<QetShapeItem *>(qgi)) { } else if (QetShapeItem *dii = qgraphicsitem_cast<QetShapeItem *>(qgi)) {
if (dii -> getType() == QetShapeItem::Line && dii -> getLine()) { if (dii -> getType() == QetShapeItem::Line && dii -> getLine()) {
list_lines << dii -> getLine(); list_lines << dii -> getLine();
} else if (dii -> getType() == QetShapeItem::Rectangle && dii -> getRectangle()) { } else if (dii -> getType() == QetShapeItem::Rectangle && dii -> getRectangle()) {

View File

@@ -16,6 +16,19 @@ class QetShapeItem : public QetGraphicsItem
QetShapeItem(QPointF, QPointF = QPointF(0,0), ShapeType = Line, bool lineAngle = false, QGraphicsItem *parent = 0); QetShapeItem(QPointF, QPointF = QPointF(0,0), ShapeType = Line, bool lineAngle = false, QGraphicsItem *parent = 0);
virtual ~QetShapeItem(); 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); void setStyle(Qt::PenStyle);
Qt::PenStyle getStyle() const { return _shapeStyle; } Qt::PenStyle getStyle() const { return _shapeStyle; }
ShapeType getType() const { return _shapeType; } ShapeType getType() const { return _shapeType; }