mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Print: use the actual dive table
Currently only for the table print, but now we use the actual dive table to iterate trough all dives (find only selected if needed) and print their 'number' element in table rows. Also improves the new-page detection algorithm slightly. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
parent
eb4312c9ba
commit
9a99aa4c58
2 changed files with 17 additions and 11 deletions
|
@ -3,9 +3,9 @@
|
|||
#include <QDesktopWidget>
|
||||
#include <QApplication>
|
||||
#include <QTextDocument>
|
||||
#include <QAbstractTextDocumentLayout>
|
||||
#include "mainwindow.h"
|
||||
#include "printlayout.h"
|
||||
#include "../dive.h"
|
||||
|
||||
/*
|
||||
struct options {
|
||||
|
@ -86,25 +86,30 @@ void PrintLayout::printTable()
|
|||
// setDefaultStyleSheet() doesn't work here?
|
||||
QString htmlText = styleSheet + "<table cellspacing='0' width='100%'>";
|
||||
QString htmlTextPrev;
|
||||
int pageCountNew = 1, pageCount = 1;
|
||||
int pageCountNew = 1, pageCount;
|
||||
bool insertHeading = true;
|
||||
|
||||
while (pageCount < 3) { // should go trough dives (or selected) instead
|
||||
int i;
|
||||
struct dive *dive;
|
||||
for_each_dive(i, dive) {
|
||||
pageCount = pageCountNew;
|
||||
if (!dive->selected && printOptions->print_selected) {
|
||||
continue;
|
||||
}
|
||||
if (insertHeading) {
|
||||
htmlText += insertTableHeadingRow();
|
||||
insertHeading = false;
|
||||
}
|
||||
doc.setHtml(htmlText);
|
||||
pageCount = doc.pageCount();
|
||||
htmlTextPrev = htmlText;
|
||||
htmlText += insertTableDataRow();
|
||||
htmlText += insertTableDataRow(dive);
|
||||
doc.setHtml(htmlText);
|
||||
pageCountNew = doc.pageCount();
|
||||
// if the page count increases here we revert and add a heading instead
|
||||
/* if the page count increases after adding this row we 'revert'
|
||||
* and add a heading instead. */
|
||||
if (pageCountNew > pageCount) {
|
||||
htmlText = htmlTextPrev;
|
||||
doc.setHtml(htmlText);
|
||||
insertHeading = true;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
htmlText += "</table>";
|
||||
|
@ -117,7 +122,7 @@ QString PrintLayout::insertTableHeadingRow()
|
|||
return "<tr><th>TITLE</th><th>TITLE 2</th></tr>";
|
||||
}
|
||||
|
||||
QString PrintLayout::insertTableDataRow()
|
||||
QString PrintLayout::insertTableDataRow(struct dive *dive)
|
||||
{
|
||||
return "<tr><td>hello</td></tr><tr><td>hello</td></tr>";
|
||||
return "<tr><td>" + QString::number(dive->number) + "</td><td>hello2</td></tr>";
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "../display.h"
|
||||
|
||||
class PrintDialog;
|
||||
struct dive;
|
||||
|
||||
class PrintLayout : public QObject {
|
||||
Q_OBJECT
|
||||
|
@ -29,7 +30,7 @@ private:
|
|||
void printTwoDives();
|
||||
void printTable();
|
||||
QString insertTableHeadingRow();
|
||||
QString insertTableDataRow();
|
||||
QString insertTableDataRow(struct dive *dive);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue