Utilities/MouseUtilities.py

changeset 4290
5d4f4230a5ed
child 4291
5f7f8c8d8bc2
diff -r 6c1ab651c9ce -r 5d4f4230a5ed Utilities/MouseUtilities.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Utilities/MouseUtilities.py	Wed Jun 24 19:52:13 2015 +0200
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing utility functions related to Mouse stuff.
+"""
+
+from PyQt5.QtCore import Qt, QCoreApplication
+
+import Globals
+
+if Globals.isMacPlatform():
+    __modifier2String = {
+        Qt.ShiftModifier: QCoreApplication.translate(
+            "MouseUtilities", "Shift"),
+        Qt.AltModifier: QCoreApplication.translate(
+            "MouseUtilities", "Alt"),
+        Qt.ControlModifier: QCoreApplication.translate(
+            "MouseUtilities", "Cmd"),
+        Qt.MetaModifier: QCoreApplication.translate(
+            "MouseUtilities", "Ctrl"),
+    }
+    __modifierOrder = [Qt.MetaModifier, Qt.AltModifier, Qt.ShiftModifier,
+                       Qt.ControlModifier]
+else:
+    __modifier2String = {
+        Qt.ShiftModifier: QCoreApplication.translate(
+            "MouseUtilities", "Shift"),
+        Qt.AltModifier: QCoreApplication.translate(
+            "MouseUtilities", "Alt"),
+        Qt.ControlModifier: QCoreApplication.translate(
+            "MouseUtilities", "Ctrl"),
+        Qt.MetaModifier: QCoreApplication.translate(
+            "MouseUtilities", "Meta"),
+    }
+    __modifierOrder = [Qt.MetaModifier, Qt.ControlModifier, Qt.AltModifier,
+                       Qt.ShiftModifier]
+
+
+__button2String = {
+    Qt.LeftButton: QCoreApplication.translate(
+        "MouseUtilities", "Left Button"),
+    Qt.RightButton: QCoreApplication.translate(
+        "MouseUtilities", "Right Button"),
+    Qt.MidButton: QCoreApplication.translate(
+        "MouseUtilities", "Middle Button"),
+    Qt.XButton1: QCoreApplication.translate(
+        "MouseUtilities", "Extra Button 1"),
+    Qt.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