From 18dd27354786d3c7b4b522a7ddc538ae8700fb80 Mon Sep 17 00:00:00 2001
From: ck <qt-info@nokia.com>
Date: Tue, 2 Feb 2010 11:06:27 +0100
Subject: [PATCH] BinEditor: Copy data as displayed in hex column.

Instigated-by: hjk
---
 src/plugins/bineditor/bineditor.cpp | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index 5242702709a..cc82aac138a 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -1121,10 +1121,19 @@ void BinEditor::zoomOut(int range)
 
 void BinEditor::copy()
 {
-    int selStart = qMin(m_cursorPosition, m_anchorPosition);
-    int selEnd = qMax(m_cursorPosition, m_anchorPosition);
-    if (selStart < selEnd)
-        QApplication::clipboard()->setText(QString::fromLatin1(dataMid(selStart, selEnd - selStart)));
+    const int selStart = selectionStart();
+    const int selEnd = selectionEnd();
+    if (selStart < selEnd) {
+        const QByteArray &data = dataMid(selStart, selEnd - selStart);
+        QString hexString;
+        const char * const hex = "0123456789abcdef";
+        for (int i = 0; i < data.size(); ++i) {
+            const uchar val = static_cast<uchar>(data[i]);
+            hexString.append(hex[val >> 4]).append(hex[val & 0xf]).append(' ');
+        }
+        hexString.chop(1);
+        QApplication::clipboard()->setText(hexString);
+    }
 }
 
 void BinEditor::highlightSearchResults(const QByteArray &pattern, QTextDocument::FindFlags findFlags)
-- 
GitLab