E5Gui/E5ModelMenu.py

changeset 1131
7781e396c903
parent 1112
8a7d1b9d18db
child 1509
c0b5e693b0eb
equal deleted inserted replaced
1130:3e9f0330f833 1131:7781e396c903
25 """ 25 """
26 Constructor 26 Constructor
27 27
28 @param parent reference to the parent widget (QWidget) 28 @param parent reference to the parent widget (QWidget)
29 """ 29 """
30 QMenu.__init__(self, parent) 30 super().__init__(parent)
31 31
32 self.__maxRows = -1 32 self.__maxRows = -1
33 self.__firstSeparator = -1 33 self.__firstSeparator = -1
34 self.__maxWidth = -1 34 self.__maxWidth = -1
35 self.__statusBarTextRole = 0 35 self.__statusBarTextRole = 0
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
317 if act is None: 317 if act is None:
318 row = self.__model.rowCount(self.__root) 318 row = self.__model.rowCount(self.__root)
319 else: 319 else:
320 idx = self.index(act) 320 idx = self.index(act)
321 if not idx.isValid(): 321 if not idx.isValid():
322 QMenu.dropEvent(self, evt) 322 super().dropEvent(evt)
323 return 323 return
324 324
325 row = idx.row() 325 row = idx.row()
326 if self.__model.hasChildren(idx): 326 if self.__model.hasChildren(idx):
327 parentIndex = idx 327 parentIndex = idx
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 """

eric ide

mercurial