summaryrefslogtreecommitdiffstats
path: root/printer.cpp
diff options
context:
space:
mode:
authorGravatar Gehad elrobey <gehadelrobey@gmail.com>2015-08-11 22:50:27 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2015-08-15 15:04:11 +0300
commit59eddc62594d2c8003349812456befeef82e1bc2 (patch)
tree643223aba830729321b8a5e69aa257efd929a874 /printer.cpp
parent0ced68f15d57fe7487ec7286fb0e2358dd604092 (diff)
downloadsubsurface-59eddc62594d2c8003349812456befeef82e1bc2.tar.gz
Printing: export border to templates
As there is a problem with sizing the borders in QWebView, "vw" sizing is not working as supposed with border-width, As a workaround we export border-width dynamically, so that border-width is relatively the same for all page sizes. The border-width is equal to the page width / 1000 which gives a nice range for borders for A0 - A5 papers, Also prevent drawing zero pixel borders and use 1 px borders as the minimum border. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Diffstat (limited to 'printer.cpp')
-rw-r--r--printer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/printer.cpp b/printer.cpp
index 635778042..115b17526 100644
--- a/printer.cpp
+++ b/printer.cpp
@@ -3,6 +3,7 @@
#include "statistics.h"
#include "helpers.h"
+#include <algorithm>
#include <QtWebKitWidgets>
#include <QPainter>
#include <QWebElementCollection>
@@ -150,6 +151,8 @@ void Printer::print()
pageSize.setWidth(printerPtr->pageRect(QPrinter::Inch).width() * dpi);
webView->page()->setViewportSize(pageSize);
webView->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
+ // export border width with at least 1 pixel
+ templateOptions->border_width = std::max(1, pageSize.width() / 1000);
webView->setHtml(t.generate());
if (printOptions->color_selected && printerPtr->colorMode()) {
printerPtr->setColorMode(QPrinter::Color);