mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Print: fix truncated table in "Table print" mode
The whole procedure here is quite confusing. Once we have our model populated, we need to estimate where to put page headers (each page has one) and to do that we store a list of indexes, where a page would begin (pageIndexes). But since a row can end up being chopped at the end of a page we move it to a new page and this particular part was lacking compensation for the moved row's height, when storing the *last* pageIndex. For N number of pages we are losing N - 1 dives, or such that were previously transferred on a new page. See #326 Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
09a8a85bab
commit
94f85bbef9
1 changed files with 3 additions and 2 deletions
|
@ -328,7 +328,7 @@ void PrintLayout::printTable()
|
|||
// a list of vertical offsets where pages begin and some helpers
|
||||
QList<unsigned int> pageIndexes;
|
||||
pageIndexes.append(0);
|
||||
int tableHeight = 0, rowH = 0, accH = 0;
|
||||
int tableHeight = 0, rowH = 0, accH = 0, headings = 0;
|
||||
|
||||
// process all rows
|
||||
progress = 0;
|
||||
|
@ -339,6 +339,7 @@ void PrintLayout::printTable()
|
|||
if (accH > scaledPageH) { // push a new page index and add a heading
|
||||
pageIndexes.append(pageIndexes.last() + (accH - rowH));
|
||||
addTablePrintHeadingRow(&model, i);
|
||||
headings += rowH; // last row was moved to a new page; compensate!
|
||||
accH = 0;
|
||||
i--;
|
||||
}
|
||||
|
@ -346,7 +347,7 @@ void PrintLayout::printTable()
|
|||
progress++;
|
||||
emit signalProgress(stage + (progress * stage) / total);
|
||||
}
|
||||
pageIndexes.append(pageIndexes.last() + accH);
|
||||
pageIndexes.append(pageIndexes.last() + accH + headings);
|
||||
// resize the whole widget so that it can be rendered
|
||||
table.resize(scaledPageW, tableHeight);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue