def testMove(self): w = self.newWidget() item = w._path_item_map.get("/Variables/u") #b = w.tree.getBlockInfo("/Variables/u") w.scrollToItem(item) point = w.visualItemRect(item).center() item1 = w._path_item_map.get("/Variables/v") #b1 = w.tree.getBlockInfo("/Variables/v") w.scrollToItem(item1) point1 = w.visualItemRect(item1).bottomLeft() #idx = b.parent.children_list.index(b.name) #idx1 = b.parent.children_list.index(b1.name) w.setCurrentItem(item) mime = QMimeData() mime.setData(w._mime_type, "some data") ee = QDragEnterEvent(w.mapToGlobal(point), Qt.MoveAction, mime, Qt.LeftButton, Qt.NoModifier) w.dragEnterEvent(ee) #Testing.process_events(t=1) de = QDropEvent(w.mapToGlobal(point1), Qt.MoveAction, mime, Qt.LeftButton, Qt.NoModifier) w.dropEvent(de) # This doesn't seem to work for some reason #self.assertEqual(idx1, b.parent.children_list.index(b.name)) #self.assertEqual(idx, b.parent.children_list.index(b1.name)) w.setCurrentItem(None) self.assertEqual(w._current_drag, None) w.dropEvent(de) w.dragEnterEvent(ee) self.assertEqual(w._current_drag, None) w.setCurrentItem(item1) w.dragEnterEvent(ee) self.assertNotEqual(w._current_drag, None) w.dropEvent(de)
def test_file_dd_filter_drag_enter_event(qtbot): widget = QLineEdit() qtbot.addWidget(widget) mime = QMimeData() mime.setUrls([ QUrl("file:///path/to/file"), ]) action = Qt.CopyAction | Qt.MoveAction point = widget.rect().center() event = QDragEnterEvent(point, action, mime, Qt.LeftButton, Qt.NoModifier) event_filter = events.FileDragAndDropFilter() assert event_filter.eventFilter(widget, event) assert event.isAccepted()