Move a folio's numbering counters into the project database

QETZ-DB-FIRST stage 2b-4: the unit/ten/hundred-folio sequential
counters Diagram tracks per numbering scheme (insertFolioSeqHash())
now write through to a new folio_counter table, keyed by
(folio_uuid, owner, level, title, ord). The hashes stay the source
for now, same write-through pattern as 2b-1's numbering rows.
renameElementAutoNum()/AutoNumSchemeCommand::rename() carry the
rows along on a scheme rename.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
ispyisail
2026-10-20 14:02:14 +13:00
parent f692d2d35a
commit 8d5c164d09
6 changed files with 138 additions and 8 deletions
+12
View File
@@ -194,6 +194,18 @@ class projectDataBase : public QObject
bool numberingFlag(const QString &name, bool default_value) const;
void setNumberingSetting(const QString &name, const QString &value);
void setNumberingFlag(const QString &name, bool value);
//2b-4: a folio's own numbering counters (unit/ten/hundred-folio
//sequentials), one row per (folio, owner, level, scheme, ord).
//owner is "element" or "conductor"; level is "unitfolio",
//"tenfolio" or "hundredfolio" (kept as Diagram's own strings,
//not renamed, so the two stay comparable in logs/greps).
QStringList folioCounterValues(const QUuid &folio_uuid, const QString &owner,
const QString &level, const QString &title) const;
void setFolioCounterValues(const QUuid &folio_uuid, const QString &owner,
const QString &level, const QString &title,
const QStringList &values);
void renameFolioCounterScheme(const QString &owner, const QString &old_title,
const QString &new_title);
bool savedLinks(const Element *element, QList<std::pair<QUuid, int>> *links);
//The link rows are written (opening filled them): a symbol
//built links from them (Element::initLink())