Esempio n. 1
0
    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
Esempio n. 3
0
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