From 59eddc62594d2c8003349812456befeef82e1bc2 Mon Sep 17 00:00:00 2001 From: Gehad elrobey Date: Tue, 11 Aug 2015 22:50:27 +0200 Subject: 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 Signed-off-by: Gehad elrobey --- printer.cpp | 3 +++ qt-ui/printoptions.h | 1 + templatelayout.h | 2 ++ 3 files changed, 6 insertions(+) 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 #include #include #include @@ -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); diff --git a/qt-ui/printoptions.h b/qt-ui/printoptions.h index aff8ed1d9..24f8e4cc8 100644 --- a/qt-ui/printoptions.h +++ b/qt-ui/printoptions.h @@ -19,6 +19,7 @@ struct print_options { struct template_options { int font_index; int color_palette_index; + int border_width; double font_size; double line_spacing; struct color_palette_struct { diff --git a/templatelayout.h b/templatelayout.h index 07e3ae060..41a3cbfa9 100644 --- a/templatelayout.h +++ b/templatelayout.h @@ -151,6 +151,8 @@ if (property == "font") { case 4: return "Verdana, Geneva, sans-serif"; } +} else if (property == "borderwidth") { + return object.border_width; } else if (property == "font_size") { return object.font_size / 9.0; } else if (property == "line_spacing") { -- cgit v1.2.3-70-g09d2