summaryrefslogtreecommitdiffstats
path: root/templatelayout.cpp
diff options
context:
space:
mode:
authorGravatar Gehad elrobey <gehadelrobey@gmail.com>2015-05-30 15:32:15 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-04 10:08:09 -0700
commita820688aeb02d7a9fa1f7b0af1d0c96058da4e4f (patch)
tree81b60ef55c616c0ae677b49fb6ab9d5c0053180c /templatelayout.cpp
parent231f90bd268b0b4e930772d295368180d118339d (diff)
downloadsubsurface-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.cpp21
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;
}