From 00a085f858f64768456d25a200e2e3477c1fda7e Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Sun, 15 Nov 2015 23:01:17 +0200 Subject: [PATCH] qthelper.cpp: support line breaks for notes when printing The Dive::put_notes() does not handle HTML formatting or line breaks properly. Apparently Grantlee supports HTML variables, but the planned notes (which are HTML) look very bad when inserted in the Grantlee template - e.g. the text is huge and the table box is cut for some odd reason. I don't have a good solution for these issues ATM; especially for the "table cell being cut part". An important feature in the dive notes is to support line breaks. This patch adds support for line breaks both in planned dive notes and non-planned dive notes via the
tag. This makes the planned dive notes look tolerable. The next step would be to support the
tag, which has to happen in the bundled templates them self. Signed-off-by: Lubomir I. Ivanov Signed-off-by: Dirk Hohndel --- subsurface-core/qthelper.cpp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/subsurface-core/qthelper.cpp b/subsurface-core/qthelper.cpp index 091e714de..5b499b068 100644 --- a/subsurface-core/qthelper.cpp +++ b/subsurface-core/qthelper.cpp @@ -214,15 +214,25 @@ void Dive::put_temp() void Dive::put_notes() { - if (same_string(dive->dc.model, "planned dive")) { - QTextDocument notes; - notes.setHtml(QString::fromUtf8(dive->notes)); - m_notes = notes.toPlainText(); - } else { - m_notes = QString::fromUtf8(dive->notes); - } + m_notes = QString::fromUtf8(dive->notes); if (m_notes.isEmpty()) { m_notes = "--"; + return; + } + if (same_string(dive->dc.model, "planned dive")) { + QTextDocument notes; + QString notesFormatted = m_notes; +#define _NOTES_BR "\n" + notesFormatted = notesFormatted.replace("", ""_NOTES_BR); + notesFormatted = notesFormatted.replace("
", "
"_NOTES_BR); + notesFormatted = notesFormatted.replace("", ""_NOTES_BR); + notesFormatted = notesFormatted.replace("", ""_NOTES_BR); + notes.setHtml(notesFormatted); + m_notes = notes.toPlainText(); + m_notes.replace(_NOTES_BR, "
"); +#undef _NOTES_BR + } else { + m_notes.replace("\n", "
"); } }