aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-10 22:55:40 +0300
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2013-07-10 22:55:40 +0300
commit9a99aa4c58ff68b4c83363ce5696c41e14069ff6 (patch)
tree1f53080f871cbe4b0d267f69a89ed09e3b41557a
parenteb4312c9bafcd30063a113608a7da96f5733d43b (diff)
downloadsubsurface-9a99aa4c58ff68b4c83363ce5696c41e14069ff6.tar.gz
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>
-rw-r--r--qt-ui/printlayout.cpp25
-rw-r--r--qt-ui/printlayout.h3
2 files changed, 17 insertions, 11 deletions
diff --git a/qt-ui/printlayout.cpp b/qt-ui/printlayout.cpp
index 0571f30d3..daec82af2 100644
--- a/qt-ui/printlayout.cpp
+++ b/qt-ui/printlayout.cpp
@@ -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>";
}
diff --git a/qt-ui/printlayout.h b/qt-ui/printlayout.h
index 9328030f4..0b9bbc146 100644
--- a/qt-ui/printlayout.h
+++ b/qt-ui/printlayout.h
@@ -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