diff options
author | Gehad elrobey <gehadelrobey@gmail.com> | 2015-05-30 15:32:15 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-06-04 10:08:09 -0700 |
commit | a820688aeb02d7a9fa1f7b0af1d0c96058da4e4f (patch) | |
tree | 81b60ef55c616c0ae677b49fb6ab9d5c0053180c /printer.cpp | |
parent | 231f90bd268b0b4e930772d295368180d118339d (diff) | |
download | subsurface-a820688aeb02d7a9fa1f7b0af1d0c96058da4e4f.tar.gz |
Printing: Add progress updating ability to print dialog
The progress bar shows the progress of both the rendering part and the
templating part, unfortunately we can't check the progress of Grantlee
templating engine so the progess bar doesn't have a constant pace it
stops a little around 20%.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'printer.cpp')
-rw-r--r-- | printer.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/printer.cpp b/printer.cpp index 01c1f5546..5d340055e 100644 --- a/printer.cpp +++ b/printer.cpp @@ -17,6 +17,7 @@ Printer::Printer(QPrinter *printer) printer->setPaperSize(QPrinter::A4); printer->setPrintRange(QPrinter::AllPages); printer->setResolution(300); + done = 0; } void Printer::render() @@ -33,15 +34,25 @@ void Printer::render() for (int i = 0; i < Pages; i++) { webView->page()->mainFrame()->render(&painter, QWebFrame::ContentsLayer); webView->page()->mainFrame()->scroll(0, A4_300DPI_HIGHT); + //rendering progress is 4/5 of total work + emit(progessUpdated((i * 80.0 / Pages) + done)); if (i < Pages - 1) printer->newPage(); } painter.end(); } +//value: ranges from 0 : 100 and shows the progress of the templating engine +void Printer::templateProgessUpdated(int value) +{ + done = value / 5; //template progess if 1/5 of total work + emit progessUpdated(done); +} + void Printer::print() { TemplateLayout t; + connect(&t, SIGNAL(progressUpdated(int)), this, SLOT(templateProgessUpdated(int))); webView = new QWebView(); webView->setHtml(t.generate()); render(); |