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>
This commit is contained in:
Gehad elrobey 2015-05-30 15:32:15 +02:00 committed by Dirk Hohndel
parent 231f90bd26
commit a820688aeb
5 changed files with 42 additions and 2 deletions

View file

@ -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;
}