mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-15 01:54:14 +02:00
Add, move or remove a folio without building the others (stage D5)
Adding, moving or removing a folio rewrote every folio's position in the project database through diagrams(), which builds every folio: 3 s on a 50-folio project opened lazily. A folio not built has its position and title block already, so folios() is enough. The list of tables a table can continue builds only the folios holding a table (from the index of a .qetz), and the wiring list's count of wires left out looks at built folios only: reading a wire drops it unless both its ends are found. tst_lazyfolios: a folio added, moved and removed builds no other, with the folios' rows as when every folio is built (fails with diagrams(): 47 built); the tables listed as when built, building the 12 folios that hold one (fails when every folio is built). ctest 96/96 eager and lazy; 342 corpus projects save the same in all four arms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -199,7 +199,14 @@ QVector<QetGraphicsTableItem *> ElementProvider::table(
|
||||
}
|
||||
}
|
||||
|
||||
for (auto d : allFolios()) {
|
||||
//Only the folios holding a table are built for it
|
||||
QList<Diagram *> folios = m_diagram_list;
|
||||
if (m_project) {
|
||||
m_project->buildFoliosHoldingTables();
|
||||
folios = m_project->builtFolios();
|
||||
folios.removeOne(m_excluded);
|
||||
}
|
||||
for (auto d : std::as_const(folios)) {
|
||||
for (auto item_ : d->items())
|
||||
{
|
||||
if(item_->type() == QetGraphicsTableItem::Type)
|
||||
|
||||
Reference in New Issue
Block a user