diff --git a/sources/qetgraphicsitem/simpleelement.cpp b/sources/qetgraphicsitem/simpleelement.cpp index 657e8c314..9ecfdc12e 100644 --- a/sources/qetgraphicsitem/simpleelement.cpp +++ b/sources/qetgraphicsitem/simpleelement.cpp @@ -16,9 +16,37 @@ along with QElectroTech. If not, see . */ #include "simpleelement.h" - +/** + * @brief SimpleElement::SimpleElement + * @param location + * @param qgi + * @param s + * @param state + */ SimpleElement::SimpleElement(const ElementsLocation &location, QGraphicsItem *qgi, Diagram *s, int *state) : CustomElement(location, qgi, s, state) { link_type_ = Simple; + connect(this, SIGNAL(elementInfoChange(DiagramContext)), this, SLOT(updateLabel())); +} + +/** + * @brief SimpleElement::~SimpleElement + */ +SimpleElement::~SimpleElement() { + disconnect(this, SIGNAL(elementInfoChange(DiagramContext)), this, SLOT(updateLabel())); +} + +/** + * @brief SimpleElement::updateLabel + * update label of this element + */ +void SimpleElement::updateLabel() { + QString label = elementInformations()["label"].toString(); + bool show = elementInformations().keyMustShow("label"); + + // setup the label + (label.isEmpty() || !show)? + setTaggedText("label", "_", false): + setTaggedText("label", label, true); } diff --git a/sources/qetgraphicsitem/simpleelement.h b/sources/qetgraphicsitem/simpleelement.h index a0d326a40..1c8ca7e91 100644 --- a/sources/qetgraphicsitem/simpleelement.h +++ b/sources/qetgraphicsitem/simpleelement.h @@ -29,11 +29,13 @@ class SimpleElement : public CustomElement { Q_OBJECT public : - explicit SimpleElement(const ElementsLocation &, QGraphicsItem * = 0, Diagram * = 0, int * = 0); + explicit SimpleElement(const ElementsLocation &, QGraphicsItem * = 0, Diagram * = 0, int * = 0); + ~SimpleElement(); signals: public slots: + void updateLabel(); };