Terminal strips: moving drawn terminals into a strip; conductors: the Cable column

terminal_strips: new subsection on moving the terminals listed under
"Bornes indépendantes" into a strip, with the button or by drag and drop
(#1198, #1199), why the button is greyed out, and two screenshots. Also
corrects the paragraph that said that list holds terminals not drawn on
any folio: it is the drawn terminals that are in no strip yet.

conductors: the wiring list export's new Cable column (#1197), the menu
entry that writes the same file, how report-joined wires merge their
fields, and how to get a cable list from a spreadsheet today.

navigating_folios: drop the pending notice for #1190, merged.
ispyisail
2026-10-01 20:13:39 +13:00
parent a75817e7f7
commit aad534df97
5 changed files with 117 additions and 17 deletions
+41 -6
@@ -110,17 +110,24 @@ Only drawn when the type is single-line:
This is the practical answer to "why is this field here". Blank fields become
blank columns.
**`--export-cables`** — the from-to wiring list, one row per conductor:
**`--export-cables`** — the from-to wiring list, one row per conductor. The
menu entry **Projet → Exporter le plan de câblage** (*Export the wiring
diagram*) writes the same CSV file.
| Column | Comes from |
|---|---|
| Folio | the folio the conductor is on |
| Page | the folio the conductor is on, as its number is shown on the folio |
| Component 1 / Terminal 1 | the element and terminal at one end |
| Component 2 / Terminal 2 | the element and terminal at the other end |
| Tension / Protocol | **Tension / protocol** |
| Wire colour | **Wire colour** (the text field, not the drawn colour) |
| Wire section | **Wire section** |
| Function | **Function** |
| Cable | **cable** — last column, in the nightly builds from 1 October 2026 onwards ([#1197](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1197)); release 0.100 does not have it |
A wire drawn through a folio report (an arrow to another folio) is one row,
not two. Its fields are taken from both halves: written once when the halves
agree, both values separated by a comma when they do not.
**`--export-wires`** produces the conductor-number list.
@@ -174,13 +181,41 @@ What exists is smaller than the name suggests:
| Thing | What it really is |
|---|---|
| The **Cable** field on a conductor | free text, stored and reloaded, read by nothing |
| The **cable** field on a conductor | free text, stored and reloaded; written as the last column of the wiring list export (nightly builds from 1 October 2026), and readable from a **[script](scripting)** |
| The **`--export-cables`** command | the from-to wiring list — one row per *conductor*, not per cable |
So a conductor can record which cable you intend it to belong to, and that text
survives in the file, but nothing collects conductors into cables, checks core
counts, or reports on them. If you need cable management, it has to live in the
wire numbering convention or outside QElectroTech.
survives in the file, but nothing inside QElectroTech collects conductors into
cables, checks core counts, or draws a cable list. **[Search &
Replace](search_and_replace)** does not cover the field either, so renaming a
cable means editing each of its wires.
### Getting a cable list from a spreadsheet
Until QElectroTech has a cable list of its own, the wiring list export gets you
most of the way:
1. **Give each wire its cable name.** Double-click the wire to open its
properties and type the name in the **cable** field, for example `W1`.
The name is saved with the project.
2. **Export the wiring list:** **Projet → Exporter le plan de câblage**
(*Export the wiring diagram*), or on the command line:
```bash
qelectrotech --export-cables project.qet wiring.csv
```
3. **Open the CSV in a spreadsheet** (the separator is a semicolon) and sort
or filter on the last column, **Cable**. Each cable's wires are then
together, with both ends of each wire, its colour and its section. Counting
the rows per cable gives the number of cores used.
Wires with no cable name have an empty last column; filter them out, or sort
them to the end.
Discussion [#956](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/956)
is about a real cable model inside QElectroTech; the export above is what works
today.
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

-6
@@ -216,12 +216,6 @@ beyond the folio*) on the same page.
### Centre on cursor
> **Status: pending.** This subsection describes
> [PR #1190](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1190),
> not yet merged. Nothing here works until that lands — check the PR before
> trying any of this against your own build. This notice will come out once
> it merges.
**Affichage → Centrer sur le curseur** scrolls the folio so the point under
the mouse becomes the middle of the window. The zoom does not change. Point
at the part of the drawing you want to look at next, press the key, and it
+76 -5
@@ -56,9 +56,13 @@ terminal you have reserved on the rail but not drawn — a spare, a future
connection, a manufacturer-supplied end block — exists in the strip as a real
terminal with no element behind it.
This is what the editor's **free terminal** list is for: terminals that exist in
the strip and not in the schematic. It is also why a strip's terminal count can
legitimately exceed the number of terminal elements in your folios.
This is why a strip's terminal count can legitimately exceed the number of
terminal elements in your folios.
Do not confuse these with the editor's **Bornes indépendantes** (*Independent
terminals*) list, which is the opposite case: terminals **drawn on a folio**
that are **not in any strip yet**. Moving those into a strip is covered in
§2, *Moving drawn terminals into a strip*.
---
@@ -75,7 +79,7 @@ way an element is.
Terminals reach a strip by being added to it, either from the drawn terminal
elements the project already has, or as free terminals you create in the strip
itself.
itself. The first case is described below.
### The terminal table
@@ -95,6 +99,72 @@ itself.
Type and function come from the terminal element's own definition — see
**[Linking elements](element_linking)** for how an element declares them.
### Moving drawn terminals into a strip
> Drag and drop, and the tooltips that say why the button is greyed out, are in
> the **nightly builds from 1 October 2026** onwards
> ([#1198](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1198),
> [#1199](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1199)).
> Release 0.100 has the button only.
Every terminal element drawn on a folio that is not yet in a strip is listed in
the tree under **Bornes indépendantes** (*Independent terminals*). Click any one
of them and the right-hand side shows **all** of them in a table, with the
move controls at the top right.
![The terminal strip manager with X2:10 selected in the tree under Bornes indépendantes. The table on the right lists the free terminals, none of its rows is selected, and the Déplacer dans list and its ✓ button are greyed out.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/terminal-strips-free-terminals.png)
**Selecting a terminal in the tree does not select it in the table.** The tree
item you click only opens this page. Both ways of moving work on what is
selected **in the table** (or, for a drag, on what you drag). In the picture
above, X2:10 is selected in the tree but no row of the table is, so the button
is greyed out.
There are two ways to move terminals into a strip.
**1. The button.** Select one or more rows in the table (Ctrl+click or
Shift+click for several), choose the strip in **Déplacer dans** (*Move to*),
and click the ✓ button next to it.
**2. Drag and drop.** Drag the terminals onto a strip in the tree on the left:
| Drag from | What moves |
|---|---|
| the table | every selected row |
| the tree, under *Bornes indépendantes* | the terminal you drag, one at a time |
Drop them on the strip itself, or on any terminal already in that strip. They
are added after the strip's existing terminals, and the strip is then
selected, so you see the result straight away:
![After dragging X2:11 and X2:12 from the table onto strip XT1: the tree shows them under XT1 after X2:1, and the strip's table lists X2:1, X2:11 and X2:12 at positions 0, 1 and 2.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/terminal-strips-after-drop.png)
Either way, the move is **one undo step**: the undo button in the manager's
toolbar puts every terminal of that move back.
#### When the button is greyed out
Hover over it: the tooltip says why. When more than one reason applies, it
names the most basic one first.
| Situation | Tooltip | What to do |
|---|---|---|
| The project has no strip yet | *Le projet n'a aucun bornier : créez-en un avec le bouton +* | create a strip with the **+** button at the top left of the manager |
| You changed cells in the table (shown in yellow) and have not applied them | *Appliquez ou annulez les modifications en cours avant de déplacer* (*Apply or cancel the current changes before moving*) | click **Apply** or **Reset** at the bottom first |
| No row of the table is selected | *Sélectionnez dans le tableau les bornes à déplacer* | select the rows to move |
A drop is refused, and nothing moves, in the same pending-changes case, and
whenever it is not over a strip or one of its terminals. Moving reloads the
table, which would throw away changes not yet applied; that is why both the
button and the drop wait for **Apply** or **Reset**.
#### Not possible by dragging
- taking terminals back out of a strip, or moving them from one strip to
another — the strip's own page has a **Déplacer dans** list for that, which
includes *Bornes indépendantes*;
- changing the order of terminals within a strip.
---
## 3. Grouping, levels and sorting
@@ -206,6 +276,7 @@ its uuid loses its place in the strip.
---
See also: **[Linking elements](element_linking)** ·
See also: **[Conductors](conductors)** — the wire properties, and the Cable field ·
**[Linking elements](element_linking)** ·
**[Variables & formulas](variables)** ·
**[The project database](project_database)**