def from_mouse_event(qe: QtGui.QMouseEvent) -> 'Optional[EventID]': if qe.type() == QtCore.QEvent.MouseButtonRelease: if qe.button() == Qt.LeftButton: return EventID.Mouse_B1 elif qe.button() == Qt.RightButton: return EventID.Mouse_B2 elif qe.button() == Qt.MidButton: return EventID.Mouse_B3 elif qe.type() == QtCore.QEvent.MouseButtonPress: if qe.button() == Qt.LeftButton: return EventID.Mouse_B1_DragStart elif qe.button() == Qt.RightButton: return EventID.Mouse_B2_DragStart elif qe.button() == Qt.MidButton: return EventID.Mouse_B3_DragStart return None
def __cloneMouseEvent(self, e: QMouseEvent): event_type = e.type() local_pos = e.localPos() button = e.button() buttons = e.buttons() modifiers = e.modifiers() clone = QMouseEvent(event_type, local_pos, button, buttons, modifiers) clone.ignore() return clone
def ConvertMouseEventToShortcut(event: QG.QMouseEvent): key = None shortcut_press_type = SHORTCUT_PRESS_TYPE_PRESS if event.type() == QC.QEvent.MouseButtonPress: for (qt_button, hydrus_button ) in qt_mouse_buttons_to_hydrus_mouse_buttons.items(): if event.buttons() & qt_button: key = hydrus_button break elif event.type() in (QC.QEvent.MouseButtonDblClick, QC.QEvent.MouseButtonRelease): if event.type() == QC.QEvent.MouseButtonRelease: shortcut_press_type = SHORTCUT_PRESS_TYPE_RELEASE elif event.type() == QC.QEvent.MouseButtonDblClick: shortcut_press_type = SHORTCUT_PRESS_TYPE_DOUBLE_CLICK for (qt_button, hydrus_button ) in qt_mouse_buttons_to_hydrus_mouse_buttons.items(): if event.button() == qt_button: key = hydrus_button break elif event.type() == QC.QEvent.Wheel: if event.angleDelta().y() > 0: key = SHORTCUT_MOUSE_SCROLL_UP elif event.angleDelta().y() < 0: key = SHORTCUT_MOUSE_SCROLL_DOWN if key is not None: modifiers = [] if event.modifiers() & QC.Qt.AltModifier: modifiers.append(SHORTCUT_MODIFIER_ALT) if event.modifiers() & QC.Qt.ControlModifier: modifiers.append(SHORTCUT_MODIFIER_CTRL) if event.modifiers() & QC.Qt.ShiftModifier: modifiers.append(SHORTCUT_MODIFIER_SHIFT) if event.modifiers() & QC.Qt.GroupSwitchModifier: modifiers.append(SHORTCUT_MODIFIER_GROUP_SWITCH) if event.modifiers() & QC.Qt.KeypadModifier: modifiers.append(SHORTCUT_MODIFIER_KEYPAD) shortcut = Shortcut(SHORTCUT_TYPE_MOUSE, key, shortcut_press_type, modifiers) if HG.gui_report_mode: HydrusData.ShowText('mouse event caught: ' + repr(shortcut)) return shortcut return None