summaryrefslogtreecommitdiffstats
path: root/examples/widgets
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-04-30 14:31:46 +0200
committerLars Knoll <lars.knoll@qt.io>2020-05-14 07:51:15 +0200
commitada608d46d7ab99b787e48003f8c94c1a11dab19 (patch)
tree90a6783d5ebd9c64c6cfa9daf6feb2f819fd8533 /examples/widgets
parent666b4a485b3ea87842fb475ce8520d2856d821c7 (diff)
Get rid of QTextCodec in the textedit example
And refactor the code a bit to not convert to unicode twice and use the mime database instead of Qt::mightBeRichText(). Change-Id: I56f9a732c8ad593e7f050eaad401be536bdf6f98 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'examples/widgets')
-rw-r--r--examples/widgets/richtext/textedit/textedit.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/examples/widgets/richtext/textedit/textedit.cpp b/examples/widgets/richtext/textedit/textedit.cpp
index 9b5425240d..945869c88c 100644
--- a/examples/widgets/richtext/textedit/textedit.cpp
+++ b/examples/widgets/richtext/textedit/textedit.cpp
@@ -60,7 +60,6 @@
#include <QFontDatabase>
#include <QMenu>
#include <QMenuBar>
-#include <QTextCodec>
#include <QTextEdit>
#include <QStatusBar>
#include <QToolBar>
@@ -417,20 +416,19 @@ bool TextEdit::load(const QString &f)
return false;
QByteArray data = file.readAll();
- QTextCodec *codec = Qt::codecForHtml(data);
- QString str = codec->toUnicode(data);
- if (Qt::mightBeRichText(str)) {
+ QMimeDatabase db;
+ if (db.mimeTypeForFileNameAndData(f, data).name() == QLatin1String("text/html")) {
+ auto encoding = QStringDecoder::encodingForHtml(data.constData(), data.size());
+ QString str = QStringDecoder(encoding ? *encoding : QStringDecoder::Utf8)(data);
QUrl baseUrl = (f.front() == QLatin1Char(':') ? QUrl(f) : QUrl::fromLocalFile(f)).adjusted(QUrl::RemoveFilename);
textEdit->document()->setBaseUrl(baseUrl);
textEdit->setHtml(str);
- } else {
#if QT_CONFIG(textmarkdownreader)
- QMimeDatabase db;
- if (db.mimeTypeForFileNameAndData(f, data).name() == QLatin1String("text/markdown"))
- textEdit->setMarkdown(QString::fromUtf8(data));
- else
+ } else if (db.mimeTypeForFileNameAndData(f, data).name() == QLatin1String("text/markdown")) {
+ textEdit->setMarkdown(QString::fromUtf8(data));
#endif
- textEdit->setPlainText(QString::fromUtf8(data));
+ } else {
+ textEdit->setPlainText(QString::fromUtf8(data));
}
setCurrentFileName(f);