Commit Graph

21 Commits

Author SHA1 Message Date
ispyisail ee4ba82d28 Refresh the dock's counter field when the numbering actually advances
Reported by @scorpio810 on #626: "The field does not update automatically;
you need to list the other rules for it to update."

Two reasons, both mine:

The refresh was wired to the combo boxes' activated() signal, which Qt
emits only for user interaction. Nothing that changed a context
programmatically -- which is to say, numbering an element -- ever reached
it. Re-picking a rule from the combo was not a workaround so much as the
only code path that refreshed at all.

And there was no signal to hang it on for two of the three categories:
addElementAutoNum() emitted elementAutoNumAdded(), but addConductorAutoNum()
and addFolioAutoNum() emitted nothing, so even a listener would not have
heard a conductor counter advance.

Add QETProject::autoNumContextUpdated(), emitted by all three setters, and
have the dock re-read its three fields on it. Kept deliberately separate
from the existing *AutoNumAdded/*Removed signals: those make listeners
rebuild their rule lists, which is both heavier than needed here and would
disturb the user's current selection every time an element is numbered.
This one only says "re-read me".

The automatic refresh skips a field that has keyboard focus, so numbering
an element cannot overwrite a value half-typed under the cursor. Explicit
refreshes after a reset or an edit still write unconditionally, so the
field always ends up showing the canonical stored value.

Measured, advancing a counter the way numbering advances it and without
touching the combo box:

  field before advance   "5"
  context after advance   6
  field after advance    "6"      (was still "5")
2026-08-02 20:41:17 +12:00
ispyisail 52c8ef6b49 Editable counter value in the dock, and fix two bugs in the reset button
Follows @scorpio810's review on PR #626 and three defects found by finally
running the thing rather than only building it.

Replace the "?" button with an editable value field, as asked for. It shows
the current value of the context's counter -- the last part that actually
progresses, i.e. the least significant digit -- and typing a new value and
committing it writes that value back. This is strictly more useful than the
button it replaces: "?" is still reachable by typing it, and any other value
is now reachable too, which was the point of the request.

It also removes a destructive edge the button had: "reset to ?" rewrote
*every* part, so a scheme built as "K" + counter became "?????" and the
configured prefix was gone for good. There is no undo command for
numbering contexts.

Two bugs fixed in the reset path itself:

- The project was never marked modified. addConductorAutoNum() and friends
  are a plain insert into a QMap; they emit nothing and set no dirty flag,
  and the properties dialog that this code was modelled on calls
  setModified(true) separately afterwards. Without it the user resets a
  counter, closes the project, is not asked to save, and the reset is lost.
  Verified before the fix: projectWasModified() stayed false across a click.

- A wrap part was reset to "1". A modulo part cycles over [0, modulus) --
  the PLC addressing that motivated the feature runs %IX0.0..%IX0.31 -- so
  its starting value is 0, not 1.

An empty value field is treated as "no change" rather than as an empty
value, so clearing the box by accident cannot wipe a counter, and the field
is refreshed from the context after every write and whenever the selected
context changes.
2026-08-02 18:33:14 +12:00
ispyisail 031710b5fc Add quick reset buttons to the auto-numbering dock
Resetting an active numbering counter back to a starting value, or
marking it as needing manual numbering, currently requires the full
round trip through the project properties dialog: open it from the
dock's Configure button, locate the right numbering context, select
the specific part row, clear and retype the value, confirm.

Add two small buttons next to each of the three combo boxes
(Conductor/Element/Folio) on AutoNumberingDockWidget itself:

- Reset to start: calls NumerotationContext::replaceValue() on every
  part that represents a progressing counter, using a sensible
  per-type value -- the part's own stored initialvalue for
  folio-anchored types (unitfolio/tenfolio/hundredfolio), "1" for
  plain numeric types and wrap, "a" for alpha. Non-incrementing types
  (string, plant, locmach, idfolio, folio, elementline,
  elementcolumn, elementprefix) are left untouched, since there's no
  meaningful "start" distinct from whatever the user configured for a
  fixed/contextual value.
- Reset to "?": sets every part's value to the literal placeholder
  "?" unconditionally, for marking a context as needing manual
  numbering.

Both write the updated context back via the same
addConductorAutoNum/addElementAutoNum/addFolioAutoNum calls the
project properties dialog itself already uses, so the dock's existing
refresh signals fire exactly as they do today.

Verified with a full build (Qt6) after the change -- clean compile
and link, including the .ui-generated Ui class correctly picking up
the six new button object names. Wasn't able to get a reliable live
GUI run in this environment to click-test the buttons themselves (ran
into unrelated session/display instability before any interaction
with the new buttons occurred), so this is verified by code review
and successful build rather than a runtime screenshot.

Implements https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/597
2026-08-02 08:24:01 +12: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
Laurent Trinques ef58f34c14 Update Copyright date 2021-02-20 12:13:46 +01:00
joshua 2513961cd6 Revert "Update Copyright date"
This reverts commit d04bccc384.
2021-02-06 19:00:48 +01:00
Laurent Trinques d04bccc384 Update Copyright date 2021-02-06 18:33:42 +01:00
Simon De Backer d15443cf93 Wip Fix preprocessor on Cmake 2020-12-10 18:49:35 +01:00
Simon De Backer 10c4c3d528 Wip Fix preprocessor on Cmake 2020-12-08 19:57:35 +01:00
Laurent Trinques e10ae8ce2e Update Copyright date 2020-06-15 17:42:53 +02:00
scorpio810 3ed7a4e63b Minor : update Copyright date
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5705 bfdf4180-ca20-0410-9c96-a3a8aa849046
2019-01-13 16:56:12 +00:00
scorpio810 31f36b8625 Modernize-use-override refactors code
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5009 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-05 02:10:01 +00:00
scorpio810 9f9b127c04 Modernize-use-nullptr refactors code
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5008 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-05 02:06:59 +00:00
blacksun f4acaff7be Autonumbering dock widget : add a "configure" push button to quickly open the dialog used for create the auto numbering rules.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4925 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-03-01 15:03:56 +00:00
scorpio810 6ed750b355 Minor : typo
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4899 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-02-03 19:26:13 +00:00
scorpio810 54c85db29c Minor update Copyright year
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4860 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-01-20 10:55:49 +00:00
blacksun 01af4c52e5 Revamp, and minor improvement about element autonum / formula.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4792 bfdf4180-ca20-0410-9c96-a3a8aa849046
2016-11-26 17:12:31 +00:00
blacksun 2b952f4189 Move files related to autonum in autoNum directory
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4771 bfdf4180-ca20-0410-9c96-a3a8aa849046
2016-11-07 15:11:12 +00:00