mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-19 20:44:16 +02:00
Terminal strip editor: add spare terminals, numbered, counted in the nomenclature
A spare (reserved) terminal is a terminal of a strip which is drawn on no
folio. RealTerminal already foresaw it ("a terminal set by user but not
present on any folio") but every terminal needed an element.
- RealTerminal::createSpare(): a terminal without element, with its own
data (label, type, function, led, informations: section, width, catalog
terminal, color, manufacturer...). Saved in the strip:
<real_terminal spare_uuid="..." type="..." function="..."><informations>
Older versions ignore these terminals.
- TerminalStrip::insertSpareTerminals() / insertTerminals(): insert at a
position of the strip. Undoable commands AddSpareTerminalsCommand and
ChangeSpareTerminalDataCommand.
- Terminal strip editor: "Add spare terminals..." button. The terminals
are inserted after the selected terminal (at the end if none), numbered
from its label ("X1:12" -> "X1:13", "X1:14", leading zeros kept), with
its properties if asked. The labels can be changed or removed in the
table, like the other cells; the Xref column shows "Spare". Moving a
spare terminal to the independent terminals removes it (undoable).
- Nomenclature: the spare terminals are in the new spare_terminal table,
added to element_nomenclature_view (UNION ALL, same columns), after the
folios, in the order of their strip. exclude_from_bom is honoured.
- The modified cells of the editor model are kept by real terminal, not by
element, since a spare terminal has none.
This commit is contained in:
+29
-2
@@ -4506,9 +4506,30 @@ TerminalStrip *QETProject::newTerminalStrip(QString installation, QString locati
|
||||
this);
|
||||
|
||||
m_terminal_strip_vector.append(ts);
|
||||
watchTerminalStrip(ts);
|
||||
return ts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief QETProject::watchTerminalStrip
|
||||
* The spare terminals of @a strip (on no folio) are lines of the
|
||||
* nomenclature : keep the database up to date with them.
|
||||
* @param strip
|
||||
* @param watch : false to stop watching @a strip
|
||||
*/
|
||||
void QETProject::watchTerminalStrip(TerminalStrip *strip, bool watch)
|
||||
{
|
||||
if (!strip) {
|
||||
return;
|
||||
}
|
||||
disconnect(strip, nullptr, &m_data_base, nullptr);
|
||||
if (watch) {
|
||||
connect(strip, &TerminalStrip::orderChanged, &m_data_base, &projectDataBase::spareTerminalsChanged);
|
||||
connect(strip, &TerminalStrip::dataChanged, &m_data_base, &projectDataBase::spareTerminalsChanged);
|
||||
}
|
||||
m_data_base.spareTerminalsChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief QETProject::addTerminalStrip
|
||||
* Add \p strip to the terminal strip list of the project.
|
||||
@@ -4525,6 +4546,7 @@ bool QETProject::addTerminalStrip(TerminalStrip *strip)
|
||||
return true;
|
||||
|
||||
m_terminal_strip_vector.append(strip);
|
||||
watchTerminalStrip(strip);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4535,8 +4557,13 @@ bool QETProject::addTerminalStrip(TerminalStrip *strip)
|
||||
* @param strip
|
||||
* @return true if successfully removed.
|
||||
*/
|
||||
bool QETProject::removeTerminalStrip(TerminalStrip *strip) {
|
||||
return m_terminal_strip_vector.removeOne(strip);
|
||||
bool QETProject::removeTerminalStrip(TerminalStrip *strip)
|
||||
{
|
||||
const bool removed_ = m_terminal_strip_vector.removeOne(strip);
|
||||
if (removed_) {
|
||||
watchTerminalStrip(strip, false);
|
||||
}
|
||||
return removed_;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user