diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-08-29 23:16:38 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-08-30 09:31:50 -0700 |
commit | 009f47c5dcd5f255aeb24d71f9a7f2e509e533db (patch) | |
tree | e37bfa3e75d7b8f779362313544ce470806d6d47 | |
parent | 98d171630c26709c4f0c3a4bb2d23d50b50b8ed9 (diff) | |
download | subsurface-009f47c5dcd5f255aeb24d71f9a7f2e509e533db.tar.gz |
Desktop: improve recognition of HTML-notes
To recognize HTML-notes the text was scanned for <div> tags. But
apparently the planner notes do not feature such a thing. Therefore
extend recognition of HTML to <table> tags.
Note we can't use the <html> or <span> tags, because these are
*always* produced by the QTextEdit::toHtml() function.
Fixes #2265
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | desktop-widgets/tab-widgets/maintab.cpp | 12 |
2 files changed, 9 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 810838d54..b6dd1adc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- Desktop: Don't destroy format of planner notes when editing dive notes [#2265] - Desktop: fix crash when saving subtitles or profile picture --- * Always add new entries at the very top of this file above other existing entries and this note. diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp index 613398109..5c6e5104c 100644 --- a/desktop-widgets/tab-widgets/maintab.cpp +++ b/desktop-widgets/tab-widgets/maintab.cpp @@ -369,11 +369,15 @@ bool MainTab::isEditing() return editMode != NONE; } +static bool isHtml(const QString &s) +{ + return s.contains("<div", Qt::CaseInsensitive) || s.contains("<table", Qt::CaseInsensitive); +} + void MainTab::updateNotes(const struct dive *d) { QString tmp(d->notes); - if (tmp.indexOf("<div") != -1) { - tmp.replace(QString("\n"), QString("<br>")); + if (isHtml(tmp)) { ui.notes->setHtml(tmp); } else { ui.notes->setPlainText(tmp); @@ -881,8 +885,8 @@ void MainTab::on_notes_editingFinished() if (!currentTrip && !current_dive) return; - QString notes = ui.notes->toHtml().indexOf("<div") != -1 ? - ui.notes->toHtml() : ui.notes->toPlainText(); + QString html = ui.notes->toHtml(); + QString notes = isHtml(html) ? html : ui.notes->toPlainText(); if (currentTrip) Command::editTripNotes(currentTrip, notes); |