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