Bug in Qt 5.12 drag n'drop ?
- 
@skylendar said in Bug in Qt 5.12 drag n'drop ?: The codes are very similar So you should modify one of them until you hit or fix the problem... @Christian-Ehrlicher 
 it's exactly what I'm doing :-£
- 
On the contrary ! My code didn't change between 5.11 and 5.12, and suddenly it doesn't work... @skylendar said in Bug in Qt 5.12 drag n'drop ?: My code didn't change between 5.11 and 5.12, and suddenly it doesn't work This does not prove that there is a bug in Qt (though there could be). 
 It could be a problem in your code which didn't cause issues with Qt 5.11 but does with Qt 5.12.
 So, before saying there is a bug in Qt you should really prove that.
- 
@skylendar said in Bug in Qt 5.12 drag n'drop ?: My code didn't change between 5.11 and 5.12, and suddenly it doesn't work This does not prove that there is a bug in Qt (though there could be). 
 It could be a problem in your code which didn't cause issues with Qt 5.11 but does with Qt 5.12.
 So, before saying there is a bug in Qt you should really prove that.@jsulm said in Bug in Qt 5.12 drag n'drop ?: t prove that there is a bug in I also have an Application which has a drag n'drop problem since I've updated to Qt 5.12.0 (macOS 10.14.2 Mojave). The eventFilter method is not called anymore with QEvent::Drop Therefore I can not drop anything into my QLineEdit derived object... // MyLineEdit is derived from QLineEdit bool MyLineEdit::eventFilter(QObject* object, QEvent* event) { if(m_droppable) { if(event->type() == QEvent::DragEnter) { event->accept(); } // since Qt 5.12.0 the following condition is never true! if(event->type() == QEvent::Drop) { // this line is never reached // .. } } }
- 
This works fine with 5.11 and 5.12 on Linux: class MyLineEdit : public QLineEdit { Q_OBJECT public: using QLineEdit::QLineEdit; bool eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::DragEnter) event->accept(); if (event->type() == QEvent::Drop) qDebug() << "Drop"; return QLineEdit::eventFilter(object, event); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MyLineEdit le; le.installEventFilter(&le); le.show(); return app.exec(); } #include "main.moc"If it does not work on Mac please open a bug report. /edit: There were some dnd changes between 5.11 and 5.12: 10b3286313c78fa380b5fe676a7c14f3ae84f017 - it works fine on Linux, did not yet test on windows and don't have a mac... 
- 
Hello guys... Since we are talking about Drag and Drop. Can somebody also look into this bug report? 
- 
This works fine with 5.11 and 5.12 on Linux: class MyLineEdit : public QLineEdit { Q_OBJECT public: using QLineEdit::QLineEdit; bool eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::DragEnter) event->accept(); if (event->type() == QEvent::Drop) qDebug() << "Drop"; return QLineEdit::eventFilter(object, event); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MyLineEdit le; le.installEventFilter(&le); le.show(); return app.exec(); } #include "main.moc"If it does not work on Mac please open a bug report. /edit: There were some dnd changes between 5.11 and 5.12: 10b3286313c78fa380b5fe676a7c14f3ae84f017 - it works fine on Linux, did not yet test on windows and don't have a mac... @Christian-Ehrlicher said in Bug in Qt 5.12 drag n'drop ?: MyLineEdit Hm... this works on mac too! Seems to be a special constelation which doesn't work or it's a bug in specific circumstancens only... 
- 
@armindev said in Bug in Qt 5.12 drag n'drop ?: Seems to be a special constelation Is it possible to simplify your program until the bug is gone away? 
- 
@armindev said in Bug in Qt 5.12 drag n'drop ?: Seems to be a special constelation Is it possible to simplify your program until the bug is gone away? I will try this but this will take a while .. 
- 
@armindev said in Bug in Qt 5.12 drag n'drop ?: I will try this but this will take a while .. Thx and take your time. There seems to be something wrong in a corner case and it would be really good to find it out :) 
- 
Hi there and thx for reading and answering if you can. My app based on Qt5 x86_64 worked fine with qt5.11 but suddenly, the drag n'drop doesn't work anymore with qt5.12 ? Have you already noticed this behaviour ? Is this a bug ? Thx again for reading this post. @skylendar 
 I found same bug in my app. change to 5.11.2 drop is ok
- 
I have checked the drag & drop in my app when running on Ubuntu 16.04. The drag is from a QListWidgetItem to a drop on a QGraphicsView. I appropriately overrode QGraphicsView::dropEvent (and all the drag methods of QGraphicsView). It still works in Qt5.12.0 although the willingness to accept the QMimeData constructed from the QListWidgetItem as a droppable on the QGraphicsView (visible as a change in the mouse pointer icon) seems to be less than it was with Qt5.7 that I used up to yesterday. No clue whether this is in any way related, but perhaps it brings some ideas of what causes the issue for dropping on a QLineEdit. 
- 
@ModelTech can you provide a minimal compilable example that shows that change of behaviour ? 
- 
Hi. I had the same problem. Everything worked fine on Qt 5.7 then after I updated to Qt 5.12 dropping would not work at all. 
 At least in my case it seems that for previous version of Qt only implementingdragEnterEventwas enough but with 5.12 I had to also override thedragMoveEventevent.
 So, basically I have this 2 things and now it works as expected. Hope it helps someone.void QtDropArea::dragEnterEvent(QDragEnterEvent *event) { event->acceptProposedAction(); } // this was added after updating to Qt 5.12 void QtDropArea::dragMoveEvent(QDragMoveEvent *event) { event->acceptProposedAction(); }
- 
- 
Thx for your hint with the dragMoveEvent() reimpl. I think I can reproduce your issue and also found the corresponding commit. 
- 
Can you please check if you get a dragEnterEvent in the problematic case? I would guess no.
 The problem was introduced with f8944a7f07112c85dc4f66848cabb490514cd28e which is a bugfix for QTBUG-67155.
- 
Can you please check if you get a dragEnterEvent in the problematic case? I would guess no.
 The problem was introduced with f8944a7f07112c85dc4f66848cabb490514cd28e which is a bugfix for QTBUG-67155.@Christian-Ehrlicher I already did some cross-links, can you create a bugreport for that issue? 
 


