From 3cb783f7fcad172096f10d3285f86e8a01c40c12 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 29 Apr 2009 12:20:10 +0200 Subject: [PATCH] debugger: allow drag&drop from main editor to watchers view --- src/plugins/debugger/watchwindow.cpp | 32 ++++++++++++++++++++++++++++ src/plugins/debugger/watchwindow.h | 4 ++++ 2 files changed, 36 insertions(+) diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 71ac3bb1e6c..7484b29e345 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -122,6 +122,9 @@ WatchWindow::WatchWindow(Type type, QWidget *parent) setIndentation(indentation() * 9/10); setUniformRowHeights(true); setItemDelegate(new WatchDelegate(this)); + setDragEnabled(true); + setAcceptDrops(true); + setDropIndicatorShown(true); connect(this, SIGNAL(expanded(QModelIndex)), this, SLOT(expandNode(QModelIndex))); @@ -161,6 +164,35 @@ void WatchWindow::keyPressEvent(QKeyEvent *ev) QTreeView::keyPressEvent(ev); } +void WatchWindow::dragEnterEvent(QDragEnterEvent *ev) +{ + //QTreeView::dragEnterEvent(ev); + if (ev->mimeData()->hasFormat("text/plain")) { + ev->setDropAction(Qt::CopyAction); + ev->accept(); + } +} + +void WatchWindow::dragMoveEvent(QDragMoveEvent *ev) +{ + //QTreeView::dragMoveEvent(ev); + if (ev->mimeData()->hasFormat("text/plain")) { + ev->setDropAction(Qt::CopyAction); + ev->accept(); + } +} + +void WatchWindow::dropEvent(QDropEvent *ev) +{ + if (ev->mimeData()->hasFormat("text/plain")) { + theDebuggerAction(WatchExpression)->trigger(ev->mimeData()->text()); + //ev->acceptProposedAction(); + ev->setDropAction(Qt::CopyAction); + ev->accept(); + } + //QTreeView::dropEvent(ev); +} + void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h index 715507f8b16..adf4e06347e 100644 --- a/src/plugins/debugger/watchwindow.h +++ b/src/plugins/debugger/watchwindow.h @@ -64,6 +64,10 @@ private: void keyPressEvent(QKeyEvent *ev); void contextMenuEvent(QContextMenuEvent *ev); + void dragEnterEvent(QDragEnterEvent *ev); + void dropEvent(QDropEvent *ev); + void dragMoveEvent(QDragMoveEvent *ev); + void editItem(const QModelIndex &idx); void reset(); /* reimpl */ -- GitLab