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 /templatelayout.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 'templatelayout.cpp')
-rw-r--r-- | templatelayout.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/templatelayout.cpp b/templatelayout.cpp index f2d72403b..a5d4b2329 100644 --- a/templatelayout.cpp +++ b/templatelayout.cpp @@ -10,10 +10,26 @@ TemplateLayout::TemplateLayout() TemplateLayout::~TemplateLayout() { delete m_engine; -}; +} + +int TemplateLayout::getTotalWork() +{ + int dives = 0, i; + struct dive *dive; + for_each_dive (i, dive) { + //TODO check for exporting selected dives only + if (!dive->selected) + continue; + dives++; + } + return dives; +} QString TemplateLayout::generate() { + int progress = 0; + int totalWork = getTotalWork(); + QString htmlContent; m_engine = new Grantlee::Engine(this); @@ -35,6 +51,8 @@ QString TemplateLayout::generate() continue; Dive d(dive); diveList.append(QVariant::fromValue(d)); + progress++; + emit progressUpdated(progress * 100.0 / totalWork); } mapping.insert("dives", diveList); @@ -52,7 +70,6 @@ QString TemplateLayout::generate() qDebug() << "Can't render template"; return htmlContent; } - return htmlContent; } |