src/eric7/Utilities/MouseUtilities.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

# -*- coding: utf-8 -*-

# Copyright (c) 2015 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing utility functions related to Mouse stuff.
"""

from PyQt6.QtCore import QCoreApplication, Qt

from eric7.SystemUtilities import OSUtilities

if OSUtilities.isMacPlatform():
    __modifier2String = {
        Qt.KeyboardModifier.ShiftModifier: QCoreApplication.translate(
            "MouseUtilities", "Shift"
        ),
        Qt.KeyboardModifier.AltModifier: QCoreApplication.translate(
            "MouseUtilities", "Alt"
        ),
        Qt.KeyboardModifier.ControlModifier: QCoreApplication.translate(
            "MouseUtilities", "Cmd"
        ),
        Qt.KeyboardModifier.MetaModifier: QCoreApplication.translate(
            "MouseUtilities", "Ctrl"
        ),
    }
    __modifierOrder = [
        Qt.KeyboardModifier.MetaModifier,
        Qt.KeyboardModifier.AltModifier,
        Qt.KeyboardModifier.ShiftModifier,
        Qt.KeyboardModifier.ControlModifier,
    ]
else:
    __modifier2String = {
        Qt.KeyboardModifier.ShiftModifier: QCoreApplication.translate(
            "MouseUtilities", "Shift"
        ),
        Qt.KeyboardModifier.AltModifier: QCoreApplication.translate(
            "MouseUtilities", "Alt"
        ),
        Qt.KeyboardModifier.ControlModifier: QCoreApplication.translate(
            "MouseUtilities", "Ctrl"
        ),
        Qt.KeyboardModifier.MetaModifier: QCoreApplication.translate(
            "MouseUtilities", "Meta"
        ),
    }
    __modifierOrder = [
        Qt.KeyboardModifier.MetaModifier,
        Qt.KeyboardModifier.ControlModifier,
        Qt.KeyboardModifier.AltModifier,
        Qt.KeyboardModifier.ShiftModifier,
    ]


__button2String = {
    Qt.MouseButton.LeftButton: QCoreApplication.translate(
        "MouseUtilities", "Left Button"
    ),
    Qt.MouseButton.RightButton: QCoreApplication.translate(
        "MouseUtilities", "Right Button"
    ),
    Qt.MouseButton.MiddleButton: QCoreApplication.translate(
        "MouseUtilities", "Middle Button"
    ),
    Qt.MouseButton.XButton1: QCoreApplication.translate(
        "MouseUtilities", "Extra Button 1"
    ),
    Qt.MouseButton.XButton2: QCoreApplication.translate(
        "MouseUtilities", "Extra Button 2"
    ),
}


def MouseButtonModifier2String(modifiers, button):
    """
    Function to convert a modifier and mouse button combination to a
    displayable string.

    @param modifiers keyboard modifiers of the handler
    @type Qt.KeyboardModifiers
    @param button mouse button of the handler
    @type Qt.MouseButton
    @return display string of the modifier and mouse button combination
    @rtype str
    """
    if button not in __button2String:
        return ""

    parts = []
    for mod in __modifierOrder:
        if modifiers & mod:
            parts.append(__modifier2String[mod])
    parts.append(__button2String[button])
    return "+".join(parts)

eric ide

mercurial