diff --git a/elements/10_electric/10_allpole/310_relays_contactors&contacts/02_contacts_cross_referencing/11_delayed_contacts/inverseur_tempo_travail_repos.elmt b/elements/10_electric/10_allpole/310_relays_contactors&contacts/02_contacts_cross_referencing/11_delayed_contacts/inverseur_tempo_travail_repos.elmt
index 20b0f2f72..0bac54d0b 100644
--- a/elements/10_electric/10_allpole/310_relays_contactors&contacts/02_contacts_cross_referencing/11_delayed_contacts/inverseur_tempo_travail_repos.elmt
+++ b/elements/10_electric/10_allpole/310_relays_contactors&contacts/02_contacts_cross_referencing/11_delayed_contacts/inverseur_tempo_travail_repos.elmt
@@ -7,7 +7,7 @@
1
SW
- simple
+ delayOnOff
Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license
diff --git a/sources/editor/ui/elementpropertieseditorwidget.cpp b/sources/editor/ui/elementpropertieseditorwidget.cpp
index a779095b9..cde6e16dd 100644
--- a/sources/editor/ui/elementpropertieseditorwidget.cpp
+++ b/sources/editor/ui/elementpropertieseditorwidget.cpp
@@ -114,6 +114,7 @@ void ElementPropertiesEditorWidget::setUpInterface()
ui->m_type_cb->addItem(tr("Puissance"), QVariant("power"));
ui->m_type_cb->addItem(tr("Temporisé travail"), QVariant("delayOn"));
ui->m_type_cb->addItem(tr("Temporisé repos"), QVariant("delayOff"));
+ ui->m_type_cb->addItem(tr("Temporisé travail & repos"), QVariant("delayOnOff"));
//Master option
ui->m_master_type_cb->addItem(tr("Bobine"), QVariant("coil"));
diff --git a/sources/qetgraphicsitem/crossrefitem.cpp b/sources/qetgraphicsitem/crossrefitem.cpp
index c5bed6f60..255552b53 100644
--- a/sources/qetgraphicsitem/crossrefitem.cpp
+++ b/sources/qetgraphicsitem/crossrefitem.cpp
@@ -552,6 +552,7 @@ void CrossRefItem::drawAsContacts(QPainter &painter)
if (type == "power") option += Power;
else if (type == "delayOn") option += DelayOn;
else if (type == "delayOff") option += DelayOff;
+ else if (type == "delayOnOff") option += DelayOnOff;
QRectF br = drawContact(painter, option, elmt);
bounding_rect = bounding_rect.united(br);
@@ -625,9 +626,9 @@ QRectF CrossRefItem::drawContact(QPainter &painter, int flags, Element *elmt)
painter.drawArc(arc, 0, 180*16);
}
- // draw half circle for delay contact
+ // draw half circle for delay contact
if(flags &Delay) {
- // for delay on contact
+ // for delay on contact
if (flags &DelayOn) {
if (flags &NO) {
painter.drawLine(12, offset+8, 12, offset+11);
@@ -640,8 +641,8 @@ QRectF CrossRefItem::drawContact(QPainter &painter, int flags, Element *elmt)
painter.drawArc(r, 180*16, 180*16);
}
}
- // for delay off contact
- else {
+ // for delay off contact
+ else if ( flags &DelayOff){
if (flags &NO) {
painter.drawLine(12, offset+8, 12, offset+9.5);
QRectF r(9.5, offset+9.5, 5, 3);
@@ -654,6 +655,23 @@ QRectF CrossRefItem::drawContact(QPainter &painter, int flags, Element *elmt)
}
}
+ else {
+ // for delay on contact
+ if (flags &NO) {
+ painter.drawLine(12, offset+8, 12, offset+11);
+ QRectF r(9.5, offset+11.7, 5, 3);
+ painter.drawArc(r, 0, 180*16);
+ QRectF rl(9.5, offset+9, 5, 3);
+ painter.drawArc(rl, 180*16, 180*16);
+ }
+ if (flags &NC) {
+ painter.drawLine(QPointF(12.5, offset+5), QPointF(12.5, offset+8));
+ QRectF r(9.5, offset+10.7, 5, 3);
+ painter.drawArc(r, 0, 180*16);
+ QRectF rl(9.5, offset+8, 5, 3);
+ painter.drawArc(rl, 180*16, 180*16);
+ }
+ }
}
QRectF text_rect = painter.boundingRect(QRectF(30, offset, 5, 10), Qt::AlignLeft | Qt::AlignVCenter, str);
@@ -707,6 +725,12 @@ QRectF CrossRefItem::drawContact(QPainter &painter, int flags, Element *elmt)
QRectF r(9.5, offset+16.5, 5, 3);
painter.drawArc(r, 0, 180*16);
}
+ else if (flags &DelayOnOff) {
+ QRectF r(9.5, offset+14, 5, 3);
+ painter.drawArc(r, 180*16, 180*16);
+ QRectF rr(9.5, offset+17, 5, 3);
+ painter.drawArc(rr, 0, 180*16);
+ }
}
//Draw position text
diff --git a/sources/qetgraphicsitem/crossrefitem.h b/sources/qetgraphicsitem/crossrefitem.h
index d0d355c23..f5e8c57f7 100644
--- a/sources/qetgraphicsitem/crossrefitem.h
+++ b/sources/qetgraphicsitem/crossrefitem.h
@@ -63,7 +63,8 @@ class CrossRefItem : public QGraphicsObject
Power = 8,
DelayOn = 16,
DelayOff = 32,
- Delay = 48
+ DelayOnOff = 64,
+ Delay = 112
};
QRectF boundingRect () const override;