Printing: retrieve number of dives per page from the template file

Add special data attribute 'data-numberofdives' in the template <body> with
the number of dives per page.
This is standard HTML5 specification so it won't corrupt the template file.
Any template that will be used for printing must contain this attribute to
assure correct output.

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
Gehad elrobey 2015-07-04 23:54:15 +02:00 committed by Lubomir I. Ivanov
parent 6446b75b9e
commit 815072d2ae
3 changed files with 9 additions and 9 deletions

View file

@ -34,13 +34,13 @@ void Printer::render()
} else {
printer->setColorMode(QPrinter::GrayScale);
}
switch (printOptions->p_template) {
case print_options::ONE_DIVE:
divesPerPage = 1;
break;
case print_options::TWO_DIVE:
divesPerPage = 2;
break;
// get number of dives per page from data-numberofdives attribute in the body of the selected template
bool ok;
divesPerPage = webView->page()->mainFrame()->findFirstElement("body").attribute("data-numberofdives").toInt(&ok);
if (!ok) {
divesPerPage = 1; // print each dive in a single page if the attribute is missing or malformed
//TODO: show warning
}
int Pages = ceil(getTotalWork(printOptions) / (float)divesPerPage);

View file

@ -92,7 +92,7 @@
}
</style>
</head>
<body>
<body data-numberofdives = 1>
{% block main_rows %}
{% for dive in dives %}
<div class="mainContainer">

View file

@ -102,7 +102,7 @@
}
</style>
</head>
<body>
<body data-numberofdives = 2>
{% block main_rows %}
{% for dive in dives %}
<div class="mainContainer">