Qt 5.0.2 & 5.1.0 Drag and Drop crash
-
Hard to tell if you can't show more code...
-
Never mind, thanks for help anyway.
-
Hello,
I also experience a crash during drag n drop with the very same callstack after the crash.
In my case the crash occurs in a qtreeview when i drag n drop item internally.
In fact everything works fine until I double click an item of the view to rename it.
1 - I fill the item delegate with the new name
2 - Press enter to validate
3 - setData of the model is called (but does nothing).
4 - I try to drag & drop an item
5 - dragEnterEvent is called once.
6 - dragMoveEvent is called once
7 - program crash in QScopedPointer line134@0 QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >::data qscopedpointer.h 134 0x651f1d4a
1 qGetPtrHelper<QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> > > qglobal.h 991 0x651df58b
2 QObject::d_func qobject.h 119 0x651f0323
3 QCoreApplication::notifyInternal qcoreapplication.cpp 764 0x65468230
4 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 206 0x65577098
5 QWidgetWindow::handleDropEvent qwidgetwindow.cpp 566 0x65d3e759
6 QWidgetWindow::event qwidgetwindow.cpp 195 0x65d3d30c
7 QApplicationPrivate::notify_helper qapplication.cpp 3398 0x65cc291e
8 QApplication::notify qapplication.cpp 2829 0x65cc035a
9 QCoreApplication::notifyInternal qcoreapplication.cpp 767 0x65468264
10 QCoreApplication::sendEvent qcoreapplication.h 203 0x6546d5e9
11 QGuiApplicationPrivate::processDrop qguiapplication.cpp 2228 0x66673045
12 QWindowSystemInterface::handleDrop qwindowsysteminterface.cpp 556 0x6665860c
13 QWindowsOleDropTarget::Drop qwindowsdrag.cpp 683 0x64eef4dd
14 CPrivDragDrop::PrivDragDrop getif.cxx 960 0x770f2b79
15 PrivDragDrop getif.cxx 1099 0x770f2d78
16 CDropTarget::Drop drag.cpp 2492 0x770ca04d
17 CDragOperation::CompleteDrop drag.cpp 1601 0x770c9ede
18 DoDragDrop drag.cpp 1964 0x770ca8dd
19 QWindowsDrag::drag qwindowsdrag.cpp 802 0x64eef9fa
20 QDragManager::drag qdnd.cpp 143 0x666831c8
21 QDrag::exec qdrag.cpp 282 0x66681daa
22 QAbstractItemView::startDrag qabstractitemview.cpp 3581 0x65faf1a5
23 QAbstractItemView::mouseMoveEvent qabstractitemview.cpp 1761 0x65fa9d9b
24 QTreeView::mouseMoveEvent qtreeview.cpp 1924 0x65ff6a8b
25 QWidget::event qwidget.cpp 7842 0x65d0a0ed
26 QFrame::event qframe.cpp 534 0x65e67772
27 QAbstractScrollArea::viewportEvent qabstractscrollarea.cpp 1163 0x65f089c4
28 QAbstractItemView::viewportEvent qabstractitemview.cpp 1680 0x65fa971b
29 QTreeView::viewportEvent qtreeview.cpp 1260 0x65ff3ece
30 QAbstractScrollAreaPrivate::viewportEvent qabstractscrollarea_p.h 105 0x65caaf28
31 QAbstractScrollAreaFilter::eventFilter qabstractscrollarea_p.h 121 0x65f0a919
32 QCoreApplicationPrivate::sendThroughObjectEventFilters qcoreapplication.cpp 863 0x654684f3
33 QApplicationPrivate::notify_helper qapplication.cpp 3394 0x65cc2902
34 QApplication::notify qapplication.cpp 2962 0x65cc098c
35 QCoreApplication::notifyInternal qcoreapplication.cpp 767 0x65468264
36 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 206 0x65577098
37 QApplicationPrivate::sendMouseEvent qapplication.cpp 2469 0x65cbfab5
38 QWidgetWindow::handleMouseEvent qwidgetwindow.cpp 403 0x65d3dd00
39 QWidgetWindow::event qwidgetwindow.cpp 155 0x65d3d274
40 QApplicationPrivate::notify_helper qapplication.cpp 3398 0x65cc291e
41 QApplication::notify qapplication.cpp 2829 0x65cc035a
42 QCoreApplication::notifyInternal qcoreapplication.cpp 767 0x65468264
43 QCoreApplication::sendSpontaneousEvent qcoreapplication.h 206 0x65577098
44 QGuiApplicationPrivate::processMouseEvent qguiapplication.cpp 1417 0x6666ffe4
45 QGuiApplicationPrivate::processWindowSystemEvent qguiapplication.cpp 1249 0x6666f852
46 QWindowSystemInterface::sendWindowSystemEventsImplementation qwindowsysteminterface.cpp 536 0x66658561
47 QWindowSystemInterface::sendWindowSystemEvents qwindowsysteminterface.cpp 516 0x666584e9
48 QWindowsGuiEventDispatcher::sendPostedEvents qwindowsguieventdispatcher.cpp 86 0x64ecc014
49 qt_internal_proc qeventdispatcher_win.cpp 423 0x654f08d7
50 InternalCallWinProc USER32 0x766662fa
51 UserCallWinProcCheckWow USER32 0x76666d3a
52 DispatchMessageWorker USER32 0x766677c4
53 DispatchMessageW USER32 0x7666788a
54 QEventDispatcherWin32::processEvents qeventdispatcher_win.cpp 744 0x654f19c3
55 QWindowsGuiEventDispatcher::processEvents qwindowsguieventdispatcher.cpp 78 0x64ecbf7e
56 QEventLoop::processEvents qeventloop.cpp 137 0x65464ea1
57 QEventLoop::exec qeventloop.cpp 212 0x65464ffe
58 QCoreApplication::exec qcoreapplication.cpp 1020 0x6546879d
59 QGuiApplication::exec qguiapplication.cpp 1184 0x6666f5e8
60 QApplication::exec qapplication.cpp 2674 0x65cc0009
61 main main.cpp 20 0xbaf6fe
62 WinMain qtmain_win.cpp 131 0xc5f5ea
63 __tmainCRTStartup crtexe.c 547 0xc5d440
64 WinMainCRTStartup crtexe.c 371 0xc5d1cf
65 BaseThreadInitThunk kernel32 0x775f33aa
66 __RtlUserThreadStart ntdll32 0x77bd9f72
67 _RtlUserThreadStart ntdll32 0x77bd9f45 @ -
I just found something that seems to fix the issue here.
I have unchecked acceptDrop on the qtreeview that own the items and it doesn't crash anymore.
EDIT : it doesn't works finally, it was the interruption of the debugger that prevented the problem to occur by interrupting the item delegate validation.
-
Well, I've updated to 5.1.0, it still crashes. But now it also outputs this:
bq. QAccessibleTree::indexFromLogical: invalid index: 1 0 for QTreeWidget(0x4b06408)
Cannot creat accessible child interface for object: QTreeWidget(0x4b06408) index: 1
QAccessibleTree::indexFromLogical: invalid index: 2 0 for LayersTreeWidget(0x4a69668, name = "treeWidget")
Cannot creat accessible child interface for object: LayersTreeWidget(0x4a69668, name = "treeWidget") index: 2
QAccessibleTree::indexFromLogical: invalid index: 2 0 for LayersTreeWidget(0x4a69668, name = "treeWidget")
Cannot creat accessible child interface for object: LayersTreeWidget(0x4a69668, name = "treeWidget") index: 2
First-chance exception at 0x74c2c41f in JOI_Editor.exe: 0x80010001: Вызов был отклонен.
QAccessibleTree::indexFromLogical: invalid index: 3 0 for LayersTreeWidget(0x4a69668, name = "treeWidget")
Cannot creat accessible child interface for object: LayersTreeWidget(0x4a69668, name = "treeWidget") index: 3
First-chance exception at 0x6631232a in JOI_Editor.exe: 0xC0000005: Access violation reading location 0x00000004.
Unhandled exception at 0x770815de in JOI_Editor.exe: 0xC0000005: Access violation reading location 0x00000004.
The program '[7544] JOI_Editor.exe: Native' has exited with code -1073741819 (0xc0000005). -
I have debugged a little in qt's code and there is something weird.
Before I rename an item everything works fine and the function QWindowsOleDropTarget::Drop qwindowsdrag.cpp 683 is called only when I release the mouse button over the item I want to do the drop on.
After I have renamed an item I start a drag, the dragEnterEvent occurs one time, then dragMoveEvent occurs one time too and the program crashes under QWindowsOleDropTarget::Drop qwindowsdrag.cpp 683 but I never released the button so this drop should not have occured.
If , after I renamed an item (so the app should crash the next time I drag an item in the treeview), I open an explorer windows, start to drag an item in it and press escape to cancel the drag then come back to my application and start a drag I don't crash and everything works fine.I am on Windows 7 x64 with Qt 5.1.0 (vs2010)
QtCreator designer has a very similar problem, I can't drag widget from the toolbox until I canceled a drag with ESC in an explorer window. If I delete a widget in the designer the pb reappear and I must cancel a drag again in an explorer window.
-
Hi,
Can you write a little test program showing the problem ? You could then open a "bug report":http://bugreports.qt-project.org/issues/ with it
-
The issue still exists in QT 5.2 for Ubuntu and it does not only affect QTreeView but also the QPlainTextEdit affected or others.
-
https://bugreports.qt-project.org/browse/QTBUG-33057
I think it should be the same one.
-
i have the same problem, in this link explain more about that.
https://bugreports.qt-project.org/browse/QTBUG-33635?focusedCommentId=229983&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-229983