summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-09-10 15:29:03 +0200
committerGravatar Robert C. Helling <helling@atdotde.de>2019-09-10 21:31:21 +0200
commitee365b734119be424e48c4a2cef5f54021521cb8 (patch)
tree65751a173a73e01a5fd05b0d437bf4070dfaa511
parent4706b0f11ae335c1d23e1334b3530fce1a2c9279 (diff)
downloadsubsurface-ee365b734119be424e48c4a2cef5f54021521cb8.tar.gz
Plan: introduce function that returns disclaimer
The setting of the disclaimer variable was removed inadvertently some time ago, which removed the disclaimer from the printed plan. Instead, introduce a function that returns the disclaimer with the current deco mode. Use that function to generate the dive notes and for printing. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--core/planner.h1
-rw-r--r--core/plannernotes.c22
-rw-r--r--desktop-widgets/mainwindow.cpp10
3 files changed, 21 insertions, 12 deletions
diff --git a/core/planner.h b/core/planner.h
index 156d39983..4d25c49eb 100644
--- a/core/planner.h
+++ b/core/planner.h
@@ -51,6 +51,7 @@ extern int get_gasidx(struct dive *dive, struct gasmix mix);
extern bool diveplan_empty(struct diveplan *diveplan);
extern void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_disclaimer, int error);
extern const char *get_planner_disclaimer();
+extern char *get_planner_disclaimer_formatted();
extern void free_dps(struct diveplan *diveplan);
extern struct dive *planned_dive;
diff --git a/core/plannernotes.c b/core/plannernotes.c
index 6714d360a..8d1f04731 100644
--- a/core/plannernotes.c
+++ b/core/plannernotes.c
@@ -82,11 +82,21 @@ const char *get_planner_disclaimer()
"PLAN DIVES SIMPLY BASED ON THE RESULTS GIVEN HERE.");
}
+/* Returns newly allocated buffer. Must be freed by caller */
+char *get_planner_disclaimer_formatted()
+{
+ struct membuffer buf = { 0 };
+ const char *deco = decoMode() == VPMB ? translate("gettextFromC", "VPM-B")
+ : translate("gettextFromC", "BUHLMANN");
+ put_format(&buf, get_planner_disclaimer(), deco);
+ return detach_buffer(&buf);
+}
+
void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_disclaimer, int error)
{
struct membuffer buf = { 0 };
struct membuffer icdbuf = { 0 };
- const char *deco, *segmentsymbol;
+ const char *segmentsymbol;
int lastdepth = 0, lasttime = 0, lastsetpoint = -1, newdepth = 0, lastprintdepth = 0, lastprintsetpoint = -1;
struct gasmix lastprintgasmix = gasmix_invalid;
struct divedatapoint *dp = diveplan->dp;
@@ -106,12 +116,6 @@ void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_d
struct icd_data icdvalues;
char *temp;
- if (decoMode() == VPMB) {
- deco = translate("gettextFromC", "VPM-B");
- } else {
- deco = translate("gettextFromC", "BUHLMANN");
- }
-
if (!dp)
return;
@@ -123,9 +127,11 @@ void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool show_d
}
if (show_disclaimer) {
+ char *disclaimer = get_planner_disclaimer_formatted();
put_string(&buf, "<div><b>");
- put_format(&buf, get_planner_disclaimer(), deco);
+ put_string(&buf, disclaimer);
put_string(&buf, "</b><br></div>");
+ free(disclaimer);
}
if (diveplan->surface_interval < 0) {
diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp
index 004d5823d..bed142ecc 100644
--- a/desktop-widgets/mainwindow.cpp
+++ b/desktop-widgets/mainwindow.cpp
@@ -850,8 +850,10 @@ void MainWindow::updateVariations(QString variations)
void MainWindow::printPlan()
{
#ifndef NO_PRINTING
- QString diveplan = plannerDetails->divePlanOutput()->toHtml();
- QString withDisclaimer = QString("<img height=50 src=\":subsurface-icon\"> ") + diveplan + QString(disclaimer);
+ char *disclaimer = get_planner_disclaimer_formatted();
+ QString diveplan = QStringLiteral("<img height=50 src=\":subsurface-icon\"> ") +
+ QString(disclaimer) + plannerDetails->divePlanOutput()->toHtml();
+ free(disclaimer);
QPrinter printer;
QPrintDialog *dialog = new QPrintDialog(&printer, this);
@@ -885,9 +887,9 @@ void MainWindow::printPlan()
QBuffer buffer(&byteArray);
pixmap.save(&buffer, "PNG");
QString profileImage = QString("<img src=\"data:image/png;base64,") + byteArray.toBase64() + "\"/><br><br>";
- withDisclaimer = profileImage + withDisclaimer;
+ diveplan = profileImage + diveplan;
- plannerDetails->divePlanOutput()->setHtml(withDisclaimer);
+ plannerDetails->divePlanOutput()->setHtml(diveplan);
plannerDetails->divePlanOutput()->print(&printer);
plannerDetails->divePlanOutput()->setHtml(displayed_dive.notes);
#endif