aboutsummaryrefslogtreecommitdiffstats
path: root/qt-models/diveplannermodel.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-09-01 17:52:25 +0200
committerGravatar Robert C. Helling <helling@atdotde.de>2019-09-10 21:31:21 +0200
commit4706b0f11ae335c1d23e1334b3530fce1a2c9279 (patch)
treeca1cf3663b5ae590d1b191648d02fc1c25ff2fcf /qt-models/diveplannermodel.cpp
parent8ac48a96c75bae4fc9dbd5f0c434d6144a8b8502 (diff)
downloadsubsurface-4706b0f11ae335c1d23e1334b3530fce1a2c9279.tar.gz
Planner: remove planner disclaimer from old notes
There used to be code to remove the old planner notes when replanning a dive. It used a global variable and seemed rather brittle. Moreover, the place that set the global variable was inadvertently removed. Therefore has been effectively dead code. Reimplement the functionality, but be more robust by considering that the deco-type may have changed: Split the translated disclaimer string in two parts, before and after the "%s" place-holder. Search for these two parts. Remove the disclaimer and everything after the disclaimer. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/diveplannermodel.cpp')
-rw-r--r--qt-models/diveplannermodel.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/qt-models/diveplannermodel.cpp b/qt-models/diveplannermodel.cpp
index c2bbdf084..b77534819 100644
--- a/qt-models/diveplannermodel.cpp
+++ b/qt-models/diveplannermodel.cpp
@@ -1127,11 +1127,24 @@ void DivePlannerPointsModel::createPlan(bool replanCopy)
QTextDocument notesDocument;
notesDocument.setHtml(current_dive->notes);
QString oldnotes(notesDocument.toPlainText());
- int disclaimerPosition = oldnotes.indexOf(disclaimer);
- if (disclaimerPosition == 0)
- oldnotes.clear();
- else if (disclaimerPosition >= 1)
- oldnotes.truncate(disclaimerPosition-1);
+ QString disclaimer = get_planner_disclaimer();
+ int disclaimerMid = disclaimer.indexOf("%s");
+ QString disclaimerBegin, disclaimerEnd;
+ if (disclaimerMid >= 0) {
+ disclaimerBegin = disclaimer.left(disclaimerMid);
+ disclaimerEnd = disclaimer.mid(disclaimerMid + 2);
+ } else {
+ disclaimerBegin = disclaimer;
+ }
+ int disclaimerPositionStart = oldnotes.indexOf(disclaimerBegin);
+ if (disclaimerPositionStart >= 0) {
+ if (oldnotes.indexOf(disclaimerEnd, disclaimerPositionStart) >= 0) {
+ // We found a disclaimer according to the current locale.
+ // Remove the disclaimer and anything after the disclaimer, because
+ // that's supposedly the old planner notes.
+ oldnotes = oldnotes.left(disclaimerPositionStart);
+ }
+ }
// Deal with line breaks
oldnotes.replace("\n", "<br>");
oldnotes.append(displayed_dive.notes);