301 mimeTypes = self.__model.mimeTypes() |
301 mimeTypes = self.__model.mimeTypes() |
302 for mimeType in mimeTypes: |
302 for mimeType in mimeTypes: |
303 if evt.mimeData().hasFormat(mimeType): |
303 if evt.mimeData().hasFormat(mimeType): |
304 evt.acceptProposedAction() |
304 evt.acceptProposedAction() |
305 |
305 |
306 QMenu.dragEnterEvent(self, evt) |
306 super().dragEnterEvent(evt) |
307 |
307 |
308 def dropEvent(self, evt): |
308 def dropEvent(self, evt): |
309 """ |
309 """ |
310 Protected method to handle drop events. |
310 Protected method to handle drop events. |
311 |
311 |
332 evt.acceptProposedAction() |
332 evt.acceptProposedAction() |
333 self.__model.dropMimeData(evt.mimeData(), evt.dropAction(), |
333 self.__model.dropMimeData(evt.mimeData(), evt.dropAction(), |
334 row, 0, parentIndex) |
334 row, 0, parentIndex) |
335 self.close() |
335 self.close() |
336 |
336 |
337 QMenu.dropEvent(self, evt) |
337 super().dropEvent(evt) |
338 |
338 |
339 def mousePressEvent(self, evt): |
339 def mousePressEvent(self, evt): |
340 """ |
340 """ |
341 Protected method handling mouse press events. |
341 Protected method handling mouse press events. |
342 |
342 |
343 @param evt reference to the event object (QMouseEvent) |
343 @param evt reference to the event object (QMouseEvent) |
344 """ |
344 """ |
345 if evt.button() == Qt.LeftButton: |
345 if evt.button() == Qt.LeftButton: |
346 self.__dragStartPosition = evt.pos() |
346 self.__dragStartPosition = evt.pos() |
347 QMenu.mousePressEvent(self, evt) |
347 super().mousePressEvent(evt) |
348 |
348 |
349 def mouseMoveEvent(self, evt): |
349 def mouseMoveEvent(self, evt): |
350 """ |
350 """ |
351 Protected method to handle mouse move events. |
351 Protected method to handle mouse move events. |
352 |
352 |
353 @param evt reference to the event (QMouseEvent) |
353 @param evt reference to the event (QMouseEvent) |
354 """ |
354 """ |
355 if self.__model is None: |
355 if self.__model is None: |
356 QMenu.mouseMoveEvent(self, evt) |
356 super().mouseMoveEvent(evt) |
357 return |
357 return |
358 |
358 |
359 if not (evt.buttons() & Qt.LeftButton): |
359 if not (evt.buttons() & Qt.LeftButton): |
360 QMenu.mouseMoveEvent(self, evt) |
360 super().mouseMoveEvent(evt) |
361 return |
361 return |
362 |
362 |
363 manhattanLength = (evt.pos() - self.__dragStartPosition).manhattanLength() |
363 manhattanLength = (evt.pos() - self.__dragStartPosition).manhattanLength() |
364 if manhattanLength <= QApplication.startDragDistance(): |
364 if manhattanLength <= QApplication.startDragDistance(): |
365 QMenu.mouseMoveEvent(self, evt) |
365 super().mouseMoveEvent(evt) |
366 return |
366 return |
367 |
367 |
368 act = self.actionAt(self.__dragStartPosition) |
368 act = self.actionAt(self.__dragStartPosition) |
369 if act is None: |
369 if act is None: |
370 QMenu.mouseMoveEvent(self, evt) |
370 super().mouseMoveEvent(evt) |
371 return |
371 return |
372 |
372 |
373 idx = self.index(act) |
373 idx = self.index(act) |
374 if not idx.isValid(): |
374 if not idx.isValid(): |
375 QMenu.mouseMoveEvent(self, evt) |
375 super().mouseMoveEvent(evt) |
376 return |
376 return |
377 |
377 |
378 drag = QDrag(self) |
378 drag = QDrag(self) |
379 drag.setMimeData(self.__model.mimeData([idx])) |
379 drag.setMimeData(self.__model.mimeData([idx])) |
380 actionRect = self.actionGeometry(act) |
380 actionRect = self.actionGeometry(act) |
397 |
397 |
398 @param evt reference to the event object (QMouseEvent) |
398 @param evt reference to the event object (QMouseEvent) |
399 """ |
399 """ |
400 self._mouseButton = evt.button() |
400 self._mouseButton = evt.button() |
401 self._keyboardModifiers = evt.modifiers() |
401 self._keyboardModifiers = evt.modifiers() |
402 QMenu.mouseReleaseEvent(self, evt) |
402 super().mouseReleaseEvent(evt) |
403 |
403 |
404 def resetFlags(self): |
404 def resetFlags(self): |
405 """ |
405 """ |
406 Public method to reset the saved internal state. |
406 Public method to reset the saved internal state. |
407 """ |
407 """ |