Commit Graph

48 Commits

Author SHA1 Message Date
Laurent Trinques 015811d243 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.
2026-10-18 16:34:41 +02:00
Laurent Trinques ddc71553e2 Terminal strip item: redraw the strip as soon as it changes
TerminalStripItem was connected to nothing: after applying the terminal
strip editor (width, catalog terminal, color, type...), undo or redo, the
strip drawn on the folio kept its old drawing until something else made
the scene repaint, and its bounding rect was not updated when the width of
the terminals changed.

- TerminalStrip::dataChanged() is emitted when the data of the strip is
  set, and when the data of the element of one of its terminals changes
  (Element::setElementData(), Element::setElementInformations()).
- TerminalStripItem connects to dataChanged(), orderChanged(),
  bridgeChanged() and bridgeColorChanged() of its strip, and updates its
  geometry and redraws itself.
2026-10-18 16:06:59 +02:00
Laurent Trinques f7196c48e1 Terminal strip editor: remember the manufacturer filter of each strip
The manufacturer chosen to filter the terminals of the Width column is
stored in the data of the terminal strip (information "manufacturer" of
terminal_strip_data, written only when set), and selected again when the
strip is shown in the editor. Each strip keeps its own manufacturer.
Older versions ignore this information.

TerminalStripEditor::apply() now starts from the current data of the strip
instead of a new TerminalStripData: the uuid of the strip was replaced by
a new one at each apply, and the new information would have been lost.
2026-10-18 15:48:00 +02:00
Laurent Trinques 4044d04cc5 One year
Auto-build doxygen docs / doxygen (push) Has been cancelled
Auto-build doxygen docs / deploy (push) Has been cancelled
2026-01-16 15:24:35 +01:00
Laurent Trinques 77bfe84a4c One year 2025-01-04 13:37:40 +01:00
Laurent Trinques e73cf633ce 2023->2024 2024-03-29 10:09:48 +01:00
Laurent Trinques 9afef79629 Update Copyright date 2023-01-01 17:05:57 +01:00
joshua 2a307a74da Improve execution time of some actions.
Improve the execution time when we add, change or remove
several terminals to/from terminal strip.
2022-06-23 21:36:24 +02:00
joshua bce6a43427 Several terminals can be removed or moved from strip in one shot 2022-04-10 13:52:45 +02:00
joshua 0ff099fb52 Revamp code
Change the way to know who is the physical terminal of a real terminal
when we got only the real terminal.
2022-02-20 13:13:29 +01:00
joshua 05a2e4b37b Improve undo command when add/move/remove terminal in/from/to terminal strip 2022-02-19 12:34:38 +01:00
joshua dcc5a4dd0b Revamp code.
Remove a QVector member variable and use instead a function who
return the same vector, but created on the fly
2022-02-09 19:15:45 +01:00
joshua ba638f52e5 Revamp code, make it more simple 2022-02-09 18:57:27 +01:00
joshua c02238cab8 Terminal strip bridge are now save in .qet file 2022-01-31 18:11:21 +01:00
joshua d114b097bf Minor Fix : undo command for unbridge strip don't work 2022-01-27 19:45:33 +01:00
joshua 683095173e TerminalStripBridge color can be edited. 2022-01-18 11:24:07 +01:00
joshua 1572fafabe Change struct TerminalStripBridge to class
And move it in a new file
2021-12-26 18:43:17 +01:00
joshua 5709f469fc Revamp terminalStrip feature code
Move RealTerminal class in a new file
Move PhysicalTerminal class in a new file.
Remove the use of QWeakPointer and use instead QSharedPointer
in a big part of the revamp.
2021-12-26 17:26:00 +01:00
joshua 2ea9f8a2c6 Revamp PhysicalTerminal class 2021-12-23 22:17:37 +01:00
joshua a2e5989f3b Revamp RealTerminal class...... again
I don't know what I want, I'm crazy :D.
Next commit will also revamp PhysicalTerminal
and TerminalStripBridge class, code will be more clear and
easy to understand.
2021-12-23 18:37:17 +01:00
joshua 02b385e0b7 Improve bridge edition 2021-12-22 19:21:54 +01:00
joshua e2454faa36 Improve code readability 2021-12-19 21:05:48 +01:00
joshua 6505330b5f Make code less spaghetti
Not finished yet.
2021-12-19 14:55:02 +01:00
joshua beee4a06c8 Draw bridge pixmap in the tableview (wip) 2021-12-11 21:25:40 +01:00
joshua ce8bd7fae3 Add terminal bridge feature 2021-12-01 21:27:04 +01:00
joshua 107d7ff806 Level of real terminal can be edited
The level of each real terminal who compose a physical terminal can be
edited. Several real terminal can be edited in one shot.
2021-10-12 19:25:35 +02:00
joshua 7c6fca2aac Ungroup terminal is now managed by undo stack 2021-10-09 14:45:54 +02:00
joshua c6e3e385ff Clear code 2021-10-09 12:08:18 +02:00
joshua 089f260d9b Group terminals together is now managed by undo stack 2021-10-09 11:58:10 +02:00
joshua 828424cae8 Level terminals can be disassembled 2021-10-04 21:26:51 +02:00
joshua dca643f7aa Multi-level terminal can be created. 2021-10-03 13:22:21 +02:00
joshua 1699ad9dd8 Add a push button to automatically reorder the terminal strip 2021-09-22 23:02:33 +02:00
joshua 377f8b1521 Overridden properties of terminal elements are now saved/loaded from project
The overridden properties of terminal elements made in the terminal
strip dialog are now saved and loaded from/to the project file.
2021-09-20 18:34:48 +02:00
joshua 37e74b397e Use RealTerminalData struct instead of TerminalStripIndex class 2021-09-12 12:49:12 +02:00
joshua 4dd2dc259f Code refactoring 2021-08-23 20:44:53 +02:00
joshua cc6f66ad11 terminal function can be edited, edted value is applied to element 2021-07-17 13:44:44 +02:00
joshua a1e18d2bba Add terminalStripModel class 2021-06-07 19:26:41 +02:00
joshua 580ebe8b97 Terminal strip can now be edited and managed by undo command 2021-05-11 18:20:46 +02:00
joshua f07f4cb150 Fix drag and drop bug 2021-05-11 18:20:46 +02:00
joshua dbb21373e1 Read terminal strip from xml 2021-05-11 18:20:46 +02:00
joshua 89f3ce1eb3 terminal strip can be saved to xml 2021-05-11 18:20:46 +02:00
joshua d551c8e6b9 Improve undo command when remove a terminal strip 2021-05-11 18:20:46 +02:00
joshua 2572e1c25d Display terminals owned by terminal strip in the tree view 2021-05-11 18:20:46 +02:00
joshua 171e95fb17 Enable drag and drop of terminal tree widget item 2021-05-11 18:20:46 +02:00
joshua a3f776b7db Add 'comment' to terminal strip 2021-05-11 18:20:46 +02:00
joshua 91db58bb64 Add dialog to create terminal strip + display existing terminal strip 2021-05-11 18:20:46 +02:00
joshua 39aee4ad07 Add terminal strip data class 2021-05-11 18:20:46 +02:00
joshua 49674e7d33 Add terminal strip class 2021-05-11 18:20:46 +02:00