From b8a73f96daa04969644c0730f7bcaa4be8e8c999 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Wed, 8 May 2013 13:34:30 +0200 Subject: Fix HTML data transferring through the Clipboard on Windows When transferring html formated data through the clipboard some of the html markup was lost when converting from Windows clipboard native mimedata to Qt mimedata type. On X11 we are sending everything - inluding .. . This patch enables the same behavior on Windows. Task-number: QTBUG-30984 (cherry picked from commit 9e28245da1580e25e77a665b7738c59eb298c422) Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a Reviewed-by: Andy Shaw --- src/plugins/platforms/windows/qwindowsmime.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp index a8bacd631d..629da4fd0d 100644 --- a/src/plugins/platforms/windows/qwindowsmime.cpp +++ b/src/plugins/platforms/windows/qwindowsmime.cpp @@ -917,11 +917,11 @@ QVariant QWindowsMimeHtml::convertToMime(const QString &mime, IDataObject *pData qDebug("raw :"); qDebug(html); #endif - int start = html.indexOf("StartFragment:"); - int end = html.indexOf("EndFragment:"); + int start = html.indexOf("StartHTML:"); + int end = html.indexOf("EndHTML:"); if (start != -1) { - int startOffset = start + 14; + int startOffset = start + 10; int i = startOffset; while (html.at(i) != '\r' && html.at(i) != '\n') ++i; @@ -930,7 +930,7 @@ QVariant QWindowsMimeHtml::convertToMime(const QString &mime, IDataObject *pData } if (end != -1) { - int endOffset = end + 12; + int endOffset = end + 8; int i = endOffset ; while (html.at(i) != '\r' && html.at(i) != '\n') ++i; @@ -939,8 +939,7 @@ QVariant QWindowsMimeHtml::convertToMime(const QString &mime, IDataObject *pData } if (end > start && start > 0) { - html = "" + html.mid(start, end - start); - html += ""; + html = html.mid(start, end - start); html.replace('\r', ""); result = QString::fromUtf8(html); } @@ -954,10 +953,10 @@ bool QWindowsMimeHtml::convertFromMime(const FORMATETC &formatetc, const QMimeDa QByteArray data = mimeData->html().toUtf8(); QByteArray result = "Version:1.0\r\n" // 0-12 - "StartHTML:0000000105\r\n" // 13-35 - "EndHTML:0000000000\r\n" // 36-55 - "StartFragment:0000000000\r\n" // 58-86 - "EndFragment:0000000000\r\n\r\n"; // 87-105 + "StartHTML:0000000107\r\n" // 13-35 + "EndHTML:0000000000\r\n" // 36-55 + "StartFragment:0000000000\r\n" // 56-81 + "EndFragment:0000000000\r\n\r\n"; // 82-107 if (data.indexOf("") == -1) result += ""; -- cgit v1.2.3