diff --git a/printer.cpp b/printer.cpp index 83cc42d18..f8a90f96d 100644 --- a/printer.cpp +++ b/printer.cpp @@ -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); diff --git a/printing_templates/one_dive.html b/printing_templates/one_dive.html index 87b2976e0..d7ae8d477 100644 --- a/printing_templates/one_dive.html +++ b/printing_templates/one_dive.html @@ -92,7 +92,7 @@ } - + {% block main_rows %} {% for dive in dives %}
diff --git a/printing_templates/two_dives.html b/printing_templates/two_dives.html index b0ad9ba15..62502272b 100644 --- a/printing_templates/two_dives.html +++ b/printing_templates/two_dives.html @@ -102,7 +102,7 @@ } - + {% block main_rows %} {% for dive in dives %}