Mercurial > octave-dspies
changeset 18655:41489b96ebca gui-release
GUI: allow drag and drop to win32 GUI command window (Bug #41443)
* libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h, libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp
(QWinTerminalImpl::QWinTerminalImpl): set Accept Drops.
(QWinTerminalImpl::dragEnterEvent): New function.
(QWinTerminalImpl::dropEvent): New function.
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Thu, 17 Apr 2014 09:01:03 -0400 |
parents | 992b6354c8c6 |
children | 1b289f45187f |
files | libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h |
diffstat | 2 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Wed Apr 16 16:19:45 2014 -0400 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp Thu Apr 17 09:01:03 2014 -0400 @@ -35,6 +35,9 @@ #include <QToolTip> #include <QCursor> #include <QMessageBox> +#include <QDragEnterEvent> +#include <QDropEvent> +#include <QUrl> #include <fcntl.h> #include <io.h> @@ -1265,6 +1268,8 @@ connect (this, SIGNAL (set_global_shortcuts_signal (bool)), parent, SLOT (set_global_shortcuts (bool))); + + setAcceptDrops (true); } ////////////////////////////////////////////////////////////////////////////// @@ -1595,3 +1600,32 @@ QString selection = d->getSelection (); return selection; } + +////////////////////////////////////////////////////////////////////////////// + +void QWinTerminalImpl::dragEnterEvent (QDragEnterEvent *event) +{ + if (event->mimeData ()->hasUrls ()) + { + event->acceptProposedAction(); + } +} + +////////////////////////////////////////////////////////////////////////////// + +void QWinTerminalImpl::dropEvent (QDropEvent *event) +{ + QString dropText; + + if (event->mimeData ()->hasUrls ()) + { + foreach (QUrl url, event->mimeData ()->urls ()) + { + if(dropText.length () > 0) + dropText += "\n"; + dropText += url.toLocalFile (); + } + sendText (dropText); + } +} +
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Wed Apr 16 16:19:45 2014 -0400 +++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h Thu Apr 17 09:01:03 2014 -0400 @@ -32,6 +32,8 @@ class QResizeEvent; class QWheelEvent; class QPoint; +class QDragEnterEvent; +class QDropEvent; class QConsolePrivate; class QConsoleThread; @@ -91,6 +93,9 @@ bool eventFilter(QObject *obj, QEvent *ev); + void dragEnterEvent(QDragEnterEvent *event); + void dropEvent(QDropEvent *event); + private slots: void scrollValueChanged (int value); void monitorConsole (void);