TextEditor: do not replace nbsp with normal spaces

This fixes saving documents and copy texts that contain non breaking
spaces.

Task-number: QTCREATORBUG-17875
Change-Id: Ie0b0e68cf7d67e768ff99c9acae1937aafc78ce7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2022-09-30 11:37:50 +02:00
parent 78ef2e2b52
commit 33177686fd
5 changed files with 31 additions and 30 deletions

View File

@@ -1097,36 +1097,12 @@ QString TextEditorWidget::plainTextFromSelection(const QTextCursor &cursor) cons
{
// Copy the selected text as plain text
QString text = cursor.selectedText();
return convertToPlainText(text);
return TextDocument::convertToPlainText(text);
}
QString TextEditorWidget::plainTextFromSelection(const Utils::MultiTextCursor &cursor) const
{
return convertToPlainText(cursor.selectedText());
}
QString TextEditorWidget::convertToPlainText(const QString &txt)
{
QString ret = txt;
QChar *uc = ret.data();
QChar *e = uc + ret.size();
for (; uc != e; ++uc) {
switch (uc->unicode()) {
case 0xfdd0: // QTextBeginningOfFrame
case 0xfdd1: // QTextEndOfFrame
case QChar::ParagraphSeparator:
case QChar::LineSeparator:
*uc = QLatin1Char('\n');
break;
case QChar::Nbsp:
*uc = QLatin1Char(' ');
break;
default:
;
}
}
return ret;
return TextDocument::convertToPlainText(cursor.selectedText());
}
static const char kTextBlockMimeType[] = "application/vnd.qtcreator.blocktext";