forked from qt-creator/qt-creator
Terminal: Allow dropping files
Change-Id: I978ea72d6de7df6c31d1d2d2368e7aadf835279d Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -32,6 +32,7 @@
|
|||||||
#include <QGlyphRun>
|
#include <QGlyphRun>
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QMimeData>
|
||||||
#include <QPaintEvent>
|
#include <QPaintEvent>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QPainterPath>
|
#include <QPainterPath>
|
||||||
@@ -90,6 +91,7 @@ TerminalWidget::TerminalWidget(QWidget *parent, const OpenTerminalParameters &op
|
|||||||
|
|
||||||
setAttribute(Qt::WA_InputMethodEnabled);
|
setAttribute(Qt::WA_InputMethodEnabled);
|
||||||
setAttribute(Qt::WA_MouseTracking);
|
setAttribute(Qt::WA_MouseTracking);
|
||||||
|
setAcceptDrops(true);
|
||||||
|
|
||||||
setCursor(Qt::IBeamCursor);
|
setCursor(Qt::IBeamCursor);
|
||||||
|
|
||||||
@@ -1439,6 +1441,25 @@ void TerminalWidget::mouseDoubleClickEvent(QMouseEvent *event)
|
|||||||
event->accept();
|
event->accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TerminalWidget::dragEnterEvent(QDragEnterEvent *event)
|
||||||
|
{
|
||||||
|
if (event->mimeData()->hasUrls()) {
|
||||||
|
event->setDropAction(Qt::CopyAction);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TerminalWidget::dropEvent(QDropEvent *event)
|
||||||
|
{
|
||||||
|
QString urls = Utils::transform(event->mimeData()->urls(), [](const QUrl &url) {
|
||||||
|
return QString("\"%1\"").arg(url.toDisplayString(QUrl::PreferLocalFile));
|
||||||
|
}).join(" ");
|
||||||
|
|
||||||
|
writeToPty(urls.toUtf8());
|
||||||
|
event->setDropAction(Qt::CopyAction);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
|
||||||
void TerminalWidget::showEvent(QShowEvent *event)
|
void TerminalWidget::showEvent(QShowEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event);
|
Q_UNUSED(event);
|
||||||
|
|||||||
@@ -103,6 +103,9 @@ protected:
|
|||||||
void mouseReleaseEvent(QMouseEvent *event) override;
|
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||||
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
||||||
|
|
||||||
|
void dragEnterEvent(QDragEnterEvent *event) override;
|
||||||
|
void dropEvent(QDropEvent *event) override;
|
||||||
|
|
||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
|
|
||||||
bool event(QEvent *event) override;
|
bool event(QEvent *event) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user