aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui/memorytableview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_gui/memorytableview.cpp')
-rw-r--r--qtmips_gui/memorytableview.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/qtmips_gui/memorytableview.cpp b/qtmips_gui/memorytableview.cpp
index e2386fa..aeec25e 100644
--- a/qtmips_gui/memorytableview.cpp
+++ b/qtmips_gui/memorytableview.cpp
@@ -36,6 +36,9 @@
#include <QHeaderView>
#include <QFontMetrics>
#include <QScrollBar>
+#include <QKeyEvent>
+#include <QClipboard>
+#include <QApplication>
#include "memorytableview.h"
#include "memorymodel.h"
@@ -191,3 +194,20 @@ void MemoryTableView::focus_address(std::uint32_t address) {
return;
setCurrentIndex(m->index(row, 1));
}
+
+void MemoryTableView::keyPressEvent(QKeyEvent *event) {
+ if(event->matches(QKeySequence::Copy)) {
+ QString text;
+ QItemSelectionRange range = selectionModel()->selection().first();
+ for (auto i = range.top(); i <= range.bottom(); ++i)
+ {
+ QStringList rowContents;
+ for (auto j = range.left(); j <= range.right(); ++j)
+ rowContents << model()->index(i,j).data().toString();
+ text += rowContents.join("\t");
+ text += "\n";
+ }
+ QApplication::clipboard()->setText(text);
+ } else
+ Super::keyPressEvent(event);
+}