# HG changeset patch # User John Donoghue # Date 1397739663 14400 # Node ID 41489b96ebca033df32c9b60096bf11973466297 # Parent 992b6354c8c62fc85adb012a6779c1cce7256a5e 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. diff -r 992b6354c8c6 -r 41489b96ebca libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp --- 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 #include #include +#include +#include +#include #include #include @@ -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); + } +} + diff -r 992b6354c8c6 -r 41489b96ebca libgui/qterminal/libqterminal/win32/QWinTerminalImpl.h --- 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);