From ebf7ffa581c3ba04a758b14320d1f3110699cdde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com> Date: Wed, 30 Sep 2009 17:48:57 +0200 Subject: [PATCH] Fixed copy/paste to external applications Make sure special characters are converted to proper plain text. Done with mae. --- src/plugins/texteditor/basetexteditor.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index fe2054ad353..bef38dbc362 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -139,6 +139,28 @@ ITextEditor *BaseTextEditor::openEditorAt(const QString &fileName, return 0; } +static void convertToPlainText(QString &txt) +{ + QChar *uc = txt.data(); + QChar *e = uc + txt.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: + ; + } + } +} + BaseTextEditor::BaseTextEditor(QWidget *parent) : QPlainTextEdit(parent) { @@ -4496,6 +4518,7 @@ QMimeData *BaseTextEditor::createMimeDataFromSelection() const QTextCursor cursor = textCursor(); QMimeData *mimeData = new QMimeData; QString text = cursor.selectedText(); + convertToPlainText(text); mimeData->setText(text); /* -- GitLab