diff --git a/sources/diagramcommands.cpp b/sources/diagramcommands.cpp index 82e3c7aa8..c0987fcba 100644 --- a/sources/diagramcommands.cpp +++ b/sources/diagramcommands.cpp @@ -29,30 +29,16 @@ #include "conductorautonumerotation.h" #include -/** - * Specialized template function - */ -template<> -QString itemText (DiagramImageItem *item) { - Q_UNUSED(item); - return QObject::tr("une image"); +QString itemText(const QetGraphicsItem *item) { + return item->name(); } -template<> -QString itemText (IndependentTextItem *item) { + +QString itemText(const IndependentTextItem *item) { Q_UNUSED(item); return QObject::tr("un champ texte"); } -template<> -QString itemText (Element *item) { - return QObject::tr("un \351l\351ment : %1").arg(item->name()); -} -template<> -QString itemText (QetShapeItem *item) { - Q_UNUSED(item); - return QObject::tr("une shape"); -} -template<> -QString itemText (Conductor *item) { + +QString itemText(const Conductor *item) { Q_UNUSED(item); return QObject::tr("un conducteur"); } diff --git a/sources/diagramcommands.h b/sources/diagramcommands.h index fc3f6d390..7cef5be9c 100644 --- a/sources/diagramcommands.h +++ b/sources/diagramcommands.h @@ -33,6 +33,7 @@ class Element; class ElementTextItem; class IndependentTextItem; class DiagramImageItem; +class QetGraphicsItem; /** * @brief The AddItemCommand class @@ -73,14 +74,10 @@ class AddItemCommand : public QUndoCommand { QPointF m_pos; }; -/** - *Template function: return generique name of a QGraphicsItem. - */ -template -QString itemText(T item) { - Q_UNUSED (item); - return QObject::tr("un item"); -} +//Return a string to describe a QGraphicsItem +QString itemText(const QetGraphicsItem *item); +QString itemText(const IndependentTextItem *item); +QString itemText(const Conductor *item); /** This command removes content from a particular diagram. diff --git a/sources/qetgraphicsitem/diagramimageitem.cpp b/sources/qetgraphicsitem/diagramimageitem.cpp index 4c0d86da3..07a3767c3 100644 --- a/sources/qetgraphicsitem/diagramimageitem.cpp +++ b/sources/qetgraphicsitem/diagramimageitem.cpp @@ -180,6 +180,14 @@ QRectF DiagramImageItem::boundingRect() const { } } +/** + * @brief DiagramImageItem::name + * @return the generic name of this item (picture) + */ +QString DiagramImageItem::name() const { + return tr("une image"); +} + /** Load the image from this xml element @param e xml element that define an image diff --git a/sources/qetgraphicsitem/diagramimageitem.h b/sources/qetgraphicsitem/diagramimageitem.h index 26eb57301..63eaea207 100644 --- a/sources/qetgraphicsitem/diagramimageitem.h +++ b/sources/qetgraphicsitem/diagramimageitem.h @@ -55,6 +55,7 @@ class DiagramImageItem : public QetGraphicsItem { virtual void editProperty(); void setPixmap(const QPixmap &pixmap); virtual QRectF boundingRect() const; + virtual QString name() const; protected: virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); diff --git a/sources/qetgraphicsitem/qetgraphicsitem.h b/sources/qetgraphicsitem/qetgraphicsitem.h index 00fba901e..21020d275 100644 --- a/sources/qetgraphicsitem/qetgraphicsitem.h +++ b/sources/qetgraphicsitem/qetgraphicsitem.h @@ -37,6 +37,7 @@ class QetGraphicsItem : public QGraphicsObject { virtual void rotateBy(const qreal &); virtual void applyRotation(const qreal &); virtual void editProperty (){} + virtual QString name()const {return QString("");} signals: void positionChange(QPointF); diff --git a/sources/qetgraphicsitem/qetshapeitem.cpp b/sources/qetgraphicsitem/qetshapeitem.cpp index 0017cb702..dc213f21a 100644 --- a/sources/qetgraphicsitem/qetshapeitem.cpp +++ b/sources/qetgraphicsitem/qetshapeitem.cpp @@ -371,3 +371,27 @@ void QetShapeItem::editProperty() //...or not setScale(scale_); } + +/** + * @brief QetShapeItem::name + * @return the name of the curent shape. + */ +QString QetShapeItem::name() const { + switch (m_shapeType) { + case Line: + return tr("une ligne"); + break; + case Rectangle: + return tr("un rectangle"); + break; + case Ellipse: + return tr("une \351llipse"); + break; + case Polyline: + return tr("une polyligne"); + break; + default: + return tr("une shape"); + break; + } +} diff --git a/sources/qetgraphicsitem/qetshapeitem.h b/sources/qetgraphicsitem/qetshapeitem.h index 098794fed..68577c8ba 100644 --- a/sources/qetgraphicsitem/qetshapeitem.h +++ b/sources/qetgraphicsitem/qetshapeitem.h @@ -58,6 +58,7 @@ class QetShapeItem : public QetGraphicsItem virtual bool toDXF (const QString &filepath); virtual void editProperty(); + virtual QString name() const; void setP2 (QPointF P2); void setNextPoint (QPointF P);