diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp index ba042abcd..fb208e383 100644 --- a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp +++ b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp @@ -115,6 +115,41 @@ void drawAntiParallelDiodesSymbol(QPainter *painter) painter->drawLine(QPointF{5, 2}, QPointF{5, 5}); } +void drawResistorSymbol(QPainter *painter) +{ + painter->drawLine(QPointF{0, -7}, QPointF{0, -5}); + painter->drawRect(QRectF{-3, -5, 6, 10}); + painter->drawLine(QPointF{0, 5}, QPointF{0, 7}); +} + + //A resistor crossed by an oblique line ended by a short bar +void drawVaristorSymbol(QPainter *painter) +{ + drawResistorSymbol(painter); + painter->drawLine(QPointF{-5, 5}, QPointF{5, -5}); + painter->drawLine(QPointF{5, -5}, QPointF{8, -5}); +} + + //A measuring point : the line is interrupted by a small circle +void drawTestSocketSymbol(QPainter *painter) +{ + const qreal r{2.5}; + painter->drawLine(QPointF{0, -7}, QPointF{0, -r}); + painter->drawEllipse(QPointF{0, 0}, r, r); + painter->drawLine(QPointF{0, r}, QPointF{0, 7}); +} + + //Same as the diode, the anode is at the bottom +void drawDiodeReversedSymbol(QPainter *painter) +{ + const qreal t{symbol_height / 3}; + const QPointF triangle[3] { {-t, t}, {t, t}, {0, -t} }; + painter->drawLine(QPointF{0, -7}, QPointF{0, -t}); + painter->drawLine(QPointF{-t, -t}, QPointF{t, -t}); + painter->drawPolygon(triangle, 3); + painter->drawLine(QPointF{0, t}, QPointF{0, 7}); +} + /** * @brief drawScaled * Call @a draw with the painter moved by @a dx and scaled by @a factor. @@ -173,6 +208,10 @@ void drawTypeSymbol(QPainter *painter, const QRectF &box, ElementData::TerminalT case ElementData::TTDiode : drawDiodeSymbol(p); break; case ElementData::TTGround : drawGroundSymbol(p); break; case ElementData::TTAntiParallelDiodes : drawAntiParallelDiodesSymbol(p); break; + case ElementData::TTResistor : drawResistorSymbol(p); break; + case ElementData::TTVaristor : drawVaristorSymbol(p); break; + case ElementData::TTTestSocket : drawTestSocketSymbol(p); break; + case ElementData::TTDiodeReversed : drawDiodeReversedSymbol(p); break; default: break; } }; diff --git a/sources/TerminalStrip/ui/freeterminaleditor.cpp b/sources/TerminalStrip/ui/freeterminaleditor.cpp index 3f08e39d6..dc7412141 100644 --- a/sources/TerminalStrip/ui/freeterminaleditor.cpp +++ b/sources/TerminalStrip/ui/freeterminaleditor.cpp @@ -193,6 +193,14 @@ void FreeTerminalEditor::on_m_type_cb_activated(int index) override_type = ElementData::TTGround; break; case 5: override_type = ElementData::TTAntiParallelDiodes; break; + case 6: + override_type = ElementData::TTResistor; break; + case 7: + override_type = ElementData::TTVaristor; break; + case 8: + override_type = ElementData::TTTestSocket; break; + case 9: + override_type = ElementData::TTDiodeReversed; break; default: override_type = ElementData::TTGeneric; break; } diff --git a/sources/TerminalStrip/ui/freeterminaleditor.ui b/sources/TerminalStrip/ui/freeterminaleditor.ui index 736c2b12d..2832bf1b5 100644 --- a/sources/TerminalStrip/ui/freeterminaleditor.ui +++ b/sources/TerminalStrip/ui/freeterminaleditor.ui @@ -127,6 +127,26 @@ Anti-parallel diodes + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + diff --git a/sources/TerminalStrip/ui/freeterminalmodel.cpp b/sources/TerminalStrip/ui/freeterminalmodel.cpp index 7eb2eb1f6..340f87be4 100644 --- a/sources/TerminalStrip/ui/freeterminalmodel.cpp +++ b/sources/TerminalStrip/ui/freeterminalmodel.cpp @@ -430,6 +430,10 @@ QWidget *FreeTerminalModelDelegate::createEditor(QWidget *parent, const QStyleOp qcb->addItem(ElementData::translatedTerminalType(ElementData::TTDiode), ElementData::TTDiode); qcb->addItem(ElementData::translatedTerminalType(ElementData::TTGround), ElementData::TTGround); qcb->addItem(ElementData::translatedTerminalType(ElementData::TTAntiParallelDiodes), ElementData::TTAntiParallelDiodes); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTResistor), ElementData::TTResistor); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTVaristor), ElementData::TTVaristor); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTTestSocket), ElementData::TTTestSocket); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTDiodeReversed), ElementData::TTDiodeReversed); return qcb; } diff --git a/sources/TerminalStrip/ui/terminalstripeditor.cpp b/sources/TerminalStrip/ui/terminalstripeditor.cpp index ba3964f1e..478edcaea 100644 --- a/sources/TerminalStrip/ui/terminalstripeditor.cpp +++ b/sources/TerminalStrip/ui/terminalstripeditor.cpp @@ -571,6 +571,14 @@ void TerminalStripEditor::on_m_type_cb_activated(int index) override_type = ElementData::TTGround; break; case 5: override_type = ElementData::TTAntiParallelDiodes; break; + case 6: + override_type = ElementData::TTResistor; break; + case 7: + override_type = ElementData::TTVaristor; break; + case 8: + override_type = ElementData::TTTestSocket; break; + case 9: + override_type = ElementData::TTDiodeReversed; break; default: override_type = ElementData::TTGeneric; break; } diff --git a/sources/TerminalStrip/ui/terminalstripeditor.ui b/sources/TerminalStrip/ui/terminalstripeditor.ui index 46998a04e..b4bdcc129 100644 --- a/sources/TerminalStrip/ui/terminalstripeditor.ui +++ b/sources/TerminalStrip/ui/terminalstripeditor.ui @@ -132,6 +132,26 @@ Anti-parallel diodes + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + diff --git a/sources/TerminalStrip/ui/terminalstripmodel.cpp b/sources/TerminalStrip/ui/terminalstripmodel.cpp index 2f363ba1c..91bcd5d45 100644 --- a/sources/TerminalStrip/ui/terminalstripmodel.cpp +++ b/sources/TerminalStrip/ui/terminalstripmodel.cpp @@ -834,6 +834,10 @@ QWidget *TerminalStripModelDelegate::createEditor(QWidget *parent, const QStyleO qcb->addItem(ElementData::translatedTerminalType(ElementData::TTDiode), ElementData::TTDiode); qcb->addItem(ElementData::translatedTerminalType(ElementData::TTGround), ElementData::TTGround); qcb->addItem(ElementData::translatedTerminalType(ElementData::TTAntiParallelDiodes), ElementData::TTAntiParallelDiodes); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTResistor), ElementData::TTResistor); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTVaristor), ElementData::TTVaristor); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTTestSocket), ElementData::TTTestSocket); + qcb->addItem(ElementData::translatedTerminalType(ElementData::TTDiodeReversed), ElementData::TTDiodeReversed); return qcb; } diff --git a/sources/editor/ui/elementpropertieseditorwidget.cpp b/sources/editor/ui/elementpropertieseditorwidget.cpp index d45477483..fad80adf4 100644 --- a/sources/editor/ui/elementpropertieseditorwidget.cpp +++ b/sources/editor/ui/elementpropertieseditorwidget.cpp @@ -226,6 +226,10 @@ void ElementPropertiesEditorWidget::setUpInterface() ui->m_terminal_type_cb->addItem(tr("Diode"), ElementData::TTDiode); ui->m_terminal_type_cb->addItem(tr("Ground"), ElementData::TTGround); ui->m_terminal_type_cb->addItem(tr("Anti-parallel diodes"), ElementData::TTAntiParallelDiodes); + ui->m_terminal_type_cb->addItem(tr("Resistor"), ElementData::TTResistor); + ui->m_terminal_type_cb->addItem(tr("Varistor"), ElementData::TTVaristor); + ui->m_terminal_type_cb->addItem(tr("Test socket"), ElementData::TTTestSocket); + ui->m_terminal_type_cb->addItem(tr("Diode (reversed)"), ElementData::TTDiodeReversed); ui->m_terminal_func_cb->addItem(tr("Generic"), ElementData::TFGeneric); ui->m_terminal_func_cb->addItem(tr("Phase"), ElementData::TFPhase); diff --git a/sources/properties/elementdata.cpp b/sources/properties/elementdata.cpp index 2804295ed..b6ad8e4d3 100644 --- a/sources/properties/elementdata.cpp +++ b/sources/properties/elementdata.cpp @@ -842,6 +842,14 @@ QString ElementData::terminalTypeToString(ElementData::TerminalType type) return QStringLiteral("ground"); case ElementData::TTAntiParallelDiodes: return QStringLiteral("antiparallel_diodes"); + case ElementData::TTResistor: + return QStringLiteral("resistor"); + case ElementData::TTVaristor: + return QStringLiteral("varistor"); + case ElementData::TTTestSocket: + return QStringLiteral("test_socket"); + case ElementData::TTDiodeReversed: + return QStringLiteral("diode_reversed"); } return QStringLiteral("generic"); } @@ -860,6 +868,14 @@ ElementData::TerminalType ElementData::terminalTypeFromString(const QString &str return ElementData::TTGround; } else if (string == QLatin1String("antiparallel_diodes")) { return ElementData::TTAntiParallelDiodes; + } else if (string == QLatin1String("resistor")) { + return ElementData::TTResistor; + } else if (string == QLatin1String("varistor")) { + return ElementData::TTVaristor; + } else if (string == QLatin1String("test_socket")) { + return ElementData::TTTestSocket; + } else if (string == QLatin1String("diode_reversed")) { + return ElementData::TTDiodeReversed; } qDebug() << "ElementData::terminalTypeFromString : string : " @@ -883,6 +899,14 @@ QString ElementData::translatedTerminalType(ElementData::TerminalType type) return QObject::tr("Ground", "ground terminal element type"); case ElementData::TTAntiParallelDiodes: return QObject::tr("Anti-parallel diodes", "anti-parallel diodes terminal element type"); + case ElementData::TTResistor: + return QObject::tr("Resistor", "resistor terminal element type"); + case ElementData::TTVaristor: + return QObject::tr("Varistor", "varistor terminal element type"); + case ElementData::TTTestSocket: + return QObject::tr("Test socket", "test socket terminal element type"); + case ElementData::TTDiodeReversed: + return QObject::tr("Diode (reversed)", "reversed diode terminal element type"); } return QObject::tr("Generic", "generic terminal element type"); } diff --git a/sources/properties/elementdata.h b/sources/properties/elementdata.h index 97a834840..aaf31383d 100644 --- a/sources/properties/elementdata.h +++ b/sources/properties/elementdata.h @@ -176,7 +176,11 @@ class ElementData : public PropertiesInterface TTSectional, TTDiode, TTGround, - TTAntiParallelDiodes + TTAntiParallelDiodes, + TTResistor, + TTVaristor, + TTTestSocket, + TTDiodeReversed }; Q_ENUM(TerminalType)