summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qclipboard.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-04-07 11:14:06 +0200
committerLars Knoll <lars.knoll@qt.io>2020-04-21 15:46:43 +0200
commitff0d02eb2f048730ccbf0cdf30af64c5c5552044 (patch)
treea650f2440af8e8a6529c49f093f1fb60eb087132 /src/gui/kernel/qclipboard.cpp
parent50916edd9d1707774c597abe1b7237e1a798fc53 (diff)
Remove QTextCodec dependency from QClipboard
QClipboard used QTextCodec to convert the war clipboard data to a QString. HTML is nowadays always encoded as utf8, and we were only supporting utf based encodings for other text. Add a qFromUtfEncoded() to our UTF helpers that auto detects utf16 and utf32 byte order marks, and assumes utf8 otherwise, to keep this compatible with what we have been doing in Qt 5. Change-Id: I5a9fccb67a88dff27cbbdecff9bd548d31aa1c6c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/gui/kernel/qclipboard.cpp')
-rw-r--r--src/gui/kernel/qclipboard.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/gui/kernel/qclipboard.cpp b/src/gui/kernel/qclipboard.cpp
index db22ef2486..72f27d3e49 100644
--- a/src/gui/kernel/qclipboard.cpp
+++ b/src/gui/kernel/qclipboard.cpp
@@ -47,7 +47,7 @@
#include "qbuffer.h"
#include "qimage.h"
#if QT_CONFIG(textcodec)
-#include "qtextcodec.h"
+#include "private/qutfcodec_p.h"
#endif
#include "private/qguiapplication_p.h"
@@ -301,14 +301,9 @@ QString QClipboard::text(QString &subtype, Mode mode) const
const QByteArray rawData = data->data(QLatin1String("text/") + subtype);
#if QT_CONFIG(textcodec)
- QTextCodec* codec = QTextCodec::codecForMib(106); // utf-8 is default
- if (subtype == QLatin1String("html"))
- codec = QTextCodec::codecForHtml(rawData, codec);
- else
- codec = QTextCodec::codecForUtfText(rawData, codec);
- return codec->toUnicode(rawData);
+ return qFromUtfEncoded(rawData);
#else // textcodec
- return rawData;
+ return QString::fromUtf8(rawData);
#endif // textcodec
}