diff options
-rw-r--r-- | core/planner.h | 1 | ||||
-rw-r--r-- | core/plannernotes.c | 22 | ||||
-rw-r--r-- | desktop-widgets/mainwindow.cpp | 10 |
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 |