diff --git a/src/soundboard.cpp b/src/soundboard.cpp index cd89d03..f2fff7f 100644 --- a/src/soundboard.cpp +++ b/src/soundboard.cpp @@ -556,10 +556,26 @@ void Soundboard::on_actionFilters_triggered() void Soundboard::dragEnterEvent(QDragEnterEvent *event) { + // refuse drops of our own widgets + if (event->source() != nullptr) { + event->setDropAction(Qt::IgnoreAction); + return; + } + if (event->mimeData()->hasUrls()) event->acceptProposedAction(); } +void Soundboard::dragLeaveEvent(QDragLeaveEvent *event) +{ + event->accept(); +} + +void Soundboard::dragMoveEvent(QDragMoveEvent *event) +{ + event->acceptProposedAction(); +} + void Soundboard::dropEvent(QDropEvent *event) { QStringList supportedExt; diff --git a/src/soundboard.hpp b/src/soundboard.hpp index 57472ec..9a69f02 100644 --- a/src/soundboard.hpp +++ b/src/soundboard.hpp @@ -67,6 +67,8 @@ private slots: protected: virtual void dragEnterEvent(QDragEnterEvent *event) override; + virtual void dragLeaveEvent(QDragLeaveEvent *event) override; + virtual void dragMoveEvent(QDragMoveEvent *event) override; virtual void dropEvent(QDropEvent *event) override; };