summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--printer.cpp14
-rw-r--r--printing_templates/one_dive.html2
-rw-r--r--printing_templates/two_dives.html2
3 files changed, 9 insertions, 9 deletions
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 @@
}
</style>
</head>
-<body>
+<body data-numberofdives = 1>
{% block main_rows %}
{% for dive in dives %}
<div class="mainContainer">
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 @@
}
</style>
</head>
-<body>
+<body data-numberofdives = 2>
{% block main_rows %}
{% for dive in dives %}
<div class="mainContainer">