def eventFilter(self, obj, event): # type: (QObject, QEvent) -> bool if event.type() == QEvent.MouseButtonPress: assert isinstance(event, QMouseEvent) self.buttonDownPos = event.pos() self.buttonDownObj = obj self.button = event.button() elif event.type() == QEvent.MouseMove and obj is self.buttonDownObj: assert self.buttonDownObj is not None if (self.buttonDownPos - event.pos()).manhattanLength() > \ QApplication.startDragDistance() and \ not self.buttonDownObj.hitButton(event.pos()): # Process the widget's mouse event, before starting the # drag operation, so the widget can update its state. obj.mouseMoveEvent(event) self.dragStartOperationRequested.emit(obj) obj.setDown(False) self.button = None self.buttonDownPos = None self.buttonDownObj = None return True # Already handled return super().eventFilter(obj, event)
def eventFilter(self, viewport, event): # type: (QObject, QEvent) -> bool view = viewport.parent() if event.type() == QEvent.MouseButtonPress and \ event.button() == Qt.LeftButton: index = view.indexAt(event.pos()) if index is not None: self._pos = event.pos() self._index = QPersistentModelIndex(index) elif event.type() == QEvent.MouseMove and self._pos is not None and \ ((self._pos - event.pos()).manhattanLength() >= QApplication.startDragDistance()): assert self._index is not None if self._index.isValid(): # Map to a QModelIndex in the model. index = QModelIndex(self._index) self._pos = None self._index = None self.dragStarted.emit(index) return super().eventFilter(view, event)
def eventFilter(self, viewport, event): view = viewport.parent() if event.type() == QEvent.MouseButtonPress and \ event.button() == Qt.LeftButton: index = view.indexAt(event.pos()) if index is not None: self._pos = event.pos() self._index = QPersistentModelIndex(index) elif event.type() == QEvent.MouseMove and self._pos is not None and \ ((self._pos - event.pos()).manhattanLength() >= QApplication.startDragDistance()): if self._index.isValid(): # Map to a QModelIndex in the model. index = self._index index = index.model().index(index.row(), index.column(), index.parent()) self._pos = None self._index = None self.dragStarted.emit(index) return super().eventFilter(view, event)
def eventFilter(self, obj, event): """Reimplemented.""" if isinstance(obj, SequenceFlow.Frame) and obj.parent() is self: etype = event.type() if etype == QEvent.MouseButtonPress and \ event.button() == Qt.LeftButton: # Is the mouse press on the dock title bar # (assume everything above obj.widget is a title bar) # TODO: Get the proper title bar geometry. if event.pos().y() < obj.widget().y(): index = self.indexOf(obj.widget()) self.__dragstart = (obj, index, event.pos()) elif etype == QEvent.MouseMove and \ event.buttons() & Qt.LeftButton and \ obj is self.__dragstart[0]: _, _, down = self.__dragstart if (down - event.pos()).manhattanLength() >= \ QApplication.startDragDistance(): self.__startInternalDrag(obj, event.pos()) self.__dragstart = None, None, None return True elif etype == QEvent.MouseButtonRelease and \ event.button() == Qt.LeftButton and \ self.__dragstart[0] is obj: self.__dragstart = None, None, None return super().eventFilter(obj, event)
def eventFilter(self, obj, event): """Reimplemented.""" if isinstance(obj, SequenceFlow.Frame) and obj.parent() is self: etype = event.type() if etype == QEvent.MouseButtonPress and \ event.button() == Qt.LeftButton: # Is the mouse press on the dock title bar # (assume everything above obj.widget is a title bar) # TODO: Get the proper title bar geometry. if event.pos().y() < obj.widget().y(): index = self.indexOf(obj.widget()) self.__dragstart = (obj, index, event.pos()) elif etype == QEvent.MouseMove and \ event.buttons() & Qt.LeftButton and \ obj is self.__dragstart[0]: _, _, down = self.__dragstart if (down - event.pos()).manhattanLength() >= \ QApplication.startDragDistance(): self.__startInternalDrag(obj, event.pos()) self.__dragstart = None, None, None return True elif etype == QEvent.MouseButtonRelease and \ event.button() == Qt.LeftButton and \ self.__dragstart[0] is obj: self.__dragstart = None, None, None return super().eventFilter(obj, event)
def eventFilter(self, viewport, event): view = viewport.parent() if event.type() == QEvent.MouseButtonPress and event.button( ) == Qt.LeftButton: index = view.indexAt(event.pos()) if index is not None: self._pos = event.pos() self._index = QPersistentModelIndex(index) elif (event.type() == QEvent.MouseMove and self._pos is not None and ((self._pos - event.pos()).manhattanLength() >= QApplication.startDragDistance())): if self._index.isValid(): # Map to a QModelIndex in the model. index = self._index index = index.model().index(index.row(), index.column(), index.parent()) self._pos = None self._index = None self.dragStarted.emit(index) return QObject.eventFilter(self, view, event)
def eventFilter(self, obj, event): if event.type() == QEvent.MouseButtonPress: self.buttonDownPos = event.pos() self.buttonDownObj = obj self.button = event.button() elif event.type() == QEvent.MouseMove and obj is self.buttonDownObj: if (self.buttonDownPos - event.pos()).manhattanLength() > \ QApplication.startDragDistance() and \ not self.buttonDownObj.hitButton(event.pos()): # Process the widget's mouse event, before starting the # drag operation, so the widget can update its state. obj.mouseMoveEvent(event) self.dragStartOperationRequested.emit(obj) obj.setDown(False) self.button = None self.buttonDownPos = None self.buttonDownObj = None return True # Already handled return QObject.eventFilter(self, obj, event)