eric6/E5Gui/E5ModelMenu.py

changeset 8218
7c09585bd960
parent 8143
2c730d5fd177
equal deleted inserted replaced
8217:385f60c94548 8218:7c09585bd960
26 """ 26 """
27 Constructor 27 Constructor
28 28
29 @param parent reference to the parent widget (QWidget) 29 @param parent reference to the parent widget (QWidget)
30 """ 30 """
31 super(E5ModelMenu, self).__init__(parent) 31 super().__init__(parent)
32 32
33 self.__maxRows = -1 33 self.__maxRows = -1
34 self.__firstSeparator = -1 34 self.__firstSeparator = -1
35 self.__maxWidth = -1 35 self.__maxWidth = -1
36 self.__statusBarTextRole = 0 36 self.__statusBarTextRole = 0
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
331 if act is None: 331 if act is None:
332 row = self.__model.rowCount(self.__root) 332 row = self.__model.rowCount(self.__root)
333 else: 333 else:
334 idx = self.index(act) 334 idx = self.index(act)
335 if not idx.isValid(): 335 if not idx.isValid():
336 super(E5ModelMenu, self).dropEvent(evt) 336 super().dropEvent(evt)
337 return 337 return
338 338
339 row = idx.row() 339 row = idx.row()
340 if self.__model.hasChildren(idx): 340 if self.__model.hasChildren(idx):
341 parentIndex = idx 341 parentIndex = idx
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)
420 self._keyboardModifiers = evt.modifiers() 420 self._keyboardModifiers = evt.modifiers()
421 421
422 if evt.button() == Qt.MouseButton.LeftButton: 422 if evt.button() == Qt.MouseButton.LeftButton:
423 self.__dragStartPosition = QPoint() 423 self.__dragStartPosition = QPoint()
424 424
425 super(E5ModelMenu, self).mouseReleaseEvent(evt) 425 super().mouseReleaseEvent(evt)
426 426
427 def resetFlags(self): 427 def resetFlags(self):
428 """ 428 """
429 Public method to reset the saved internal state. 429 Public method to reset the saved internal state.
430 """ 430 """

eric ide

mercurial