diff libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp @ 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 5b6901b06106
children 8b9e99c061f9
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);
+    }
+}
+