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)