315 mimeTypes = self.__model.mimeTypes() |
315 mimeTypes = self.__model.mimeTypes() |
316 for mimeType in mimeTypes: |
316 for mimeType in mimeTypes: |
317 if evt.mimeData().hasFormat(mimeType): |
317 if evt.mimeData().hasFormat(mimeType): |
318 evt.acceptProposedAction() |
318 evt.acceptProposedAction() |
319 |
319 |
320 super(E5ModelMenu, self).dragEnterEvent(evt) |
320 super().dragEnterEvent(evt) |
321 |
321 |
322 def dropEvent(self, evt): |
322 def dropEvent(self, evt): |
323 """ |
323 """ |
324 Protected method to handle drop events. |
324 Protected method to handle drop events. |
325 |
325 |
346 evt.acceptProposedAction() |
346 evt.acceptProposedAction() |
347 self.__model.dropMimeData(evt.mimeData(), evt.dropAction(), |
347 self.__model.dropMimeData(evt.mimeData(), evt.dropAction(), |
348 row, 0, parentIndex) |
348 row, 0, parentIndex) |
349 self.close() |
349 self.close() |
350 |
350 |
351 super(E5ModelMenu, self).dropEvent(evt) |
351 super().dropEvent(evt) |
352 |
352 |
353 def mousePressEvent(self, evt): |
353 def mousePressEvent(self, evt): |
354 """ |
354 """ |
355 Protected method handling mouse press events. |
355 Protected method handling mouse press events. |
356 |
356 |
357 @param evt reference to the event object (QMouseEvent) |
357 @param evt reference to the event object (QMouseEvent) |
358 """ |
358 """ |
359 if evt.button() == Qt.MouseButton.LeftButton: |
359 if evt.button() == Qt.MouseButton.LeftButton: |
360 self.__dragStartPosition = evt.pos() |
360 self.__dragStartPosition = evt.pos() |
361 super(E5ModelMenu, self).mousePressEvent(evt) |
361 super().mousePressEvent(evt) |
362 |
362 |
363 def mouseMoveEvent(self, evt): |
363 def mouseMoveEvent(self, evt): |
364 """ |
364 """ |
365 Protected method to handle mouse move events. |
365 Protected method to handle mouse move events. |
366 |
366 |
367 @param evt reference to the event (QMouseEvent) |
367 @param evt reference to the event (QMouseEvent) |
368 """ |
368 """ |
369 if self.__model is None: |
369 if self.__model is None: |
370 super(E5ModelMenu, self).mouseMoveEvent(evt) |
370 super().mouseMoveEvent(evt) |
371 return |
371 return |
372 |
372 |
373 if not (evt.buttons() & Qt.MouseButton.LeftButton): |
373 if not (evt.buttons() & Qt.MouseButton.LeftButton): |
374 super(E5ModelMenu, self).mouseMoveEvent(evt) |
374 super().mouseMoveEvent(evt) |
375 return |
375 return |
376 |
376 |
377 if self.__dragStartPosition.isNull(): |
377 if self.__dragStartPosition.isNull(): |
378 super(E5ModelMenu, self).mouseMoveEvent(evt) |
378 super().mouseMoveEvent(evt) |
379 return |
379 return |
380 |
380 |
381 manhattanLength = (evt.pos() - |
381 manhattanLength = (evt.pos() - |
382 self.__dragStartPosition).manhattanLength() |
382 self.__dragStartPosition).manhattanLength() |
383 if manhattanLength <= QApplication.startDragDistance(): |
383 if manhattanLength <= QApplication.startDragDistance(): |
384 super(E5ModelMenu, self).mouseMoveEvent(evt) |
384 super().mouseMoveEvent(evt) |
385 return |
385 return |
386 |
386 |
387 act = self.actionAt(self.__dragStartPosition) |
387 act = self.actionAt(self.__dragStartPosition) |
388 if act is None: |
388 if act is None: |
389 super(E5ModelMenu, self).mouseMoveEvent(evt) |
389 super().mouseMoveEvent(evt) |
390 return |
390 return |
391 |
391 |
392 idx = self.index(act) |
392 idx = self.index(act) |
393 if not idx.isValid(): |
393 if not idx.isValid(): |
394 super(E5ModelMenu, self).mouseMoveEvent(evt) |
394 super().mouseMoveEvent(evt) |
395 return |
395 return |
396 |
396 |
397 drag = QDrag(self) |
397 drag = QDrag(self) |
398 drag.setMimeData(self.__model.mimeData([idx])) |
398 drag.setMimeData(self.__model.mimeData([idx])) |
399 actionRect = self.actionGeometry(act) |
399 actionRect = self.actionGeometry(act) |