eric7/Preferences/ShortcutDialog.py

branch
eric7
changeset 8325
547319e56c60
parent 8322
b422b4e77d19
child 8366
2a9f5153c438
--- a/eric7/Preferences/ShortcutDialog.py	Wed May 19 17:36:34 2021 +0200
+++ b/eric7/Preferences/ShortcutDialog.py	Wed May 19 18:16:45 2021 +0200
@@ -7,7 +7,7 @@
 Module implementing a dialog for the configuration of a keyboard shortcut.
 """
 
-from PyQt6.QtCore import pyqtSignal, QEvent, Qt
+from PyQt6.QtCore import pyqtSignal, Qt, QEvent, QKeyCombination
 from PyQt6.QtGui import QKeySequence
 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
 
@@ -38,8 +38,8 @@
         self.setupUi(self)
         self.setWindowFlags(Qt.WindowType.Window)
         
-        self.keyIndex = 0
-        self.keys = [0, 0, 0, 0]
+        self.__clearKeys()
+        
         self.noCheck = False
         self.objectType = ""
         
@@ -63,7 +63,19 @@
         
         msh = self.minimumSizeHint()
         self.resize(max(self.width(), msh.width()), msh.height())
-
+    
+    def __clearKeys(self):
+        """
+        Private method to clear the list of recorded keys.
+        """
+        self.keyIndex = 0
+        self.keys = [
+            QKeyCombination(),
+            QKeyCombination(),
+            QKeyCombination(),
+            QKeyCombination()
+        ]
+    
     def setKeys(self, key, alternateKey, noCheck, objectType):
         """
         Public method to set the key to be configured.
@@ -74,8 +86,8 @@
             be performed (boolean)
         @param objectType type of the object (string).
         """
-        self.keyIndex = 0
-        self.keys = [0, 0, 0, 0]
+        self.__clearKeys()
+        
         self.keyEdit.setText(key.toString())
         self.alternateKeyEdit.setText(alternateKey.toString())
         self.primaryButton.setChecked(True)
@@ -96,16 +108,14 @@
         """
         Private slot to handle the Clear button press.
         """
-        self.keyIndex = 0
-        self.keys = [0, 0, 0, 0]
+        self.__clearKeys()
         self.__setKeyEditText("")
         
     def __typeChanged(self):
         """
         Private slot to handle the change of the shortcuts type.
         """
-        self.keyIndex = 0
-        self.keys = [0, 0, 0, 0]
+        self.__clearKeys()
         
     def __setKeyEditText(self, txt):
         """
@@ -138,7 +148,6 @@
         
         @param evt the key event (QKeyEvent)
         """
-        # TODO: change code to use QKeyCombination
         if evt.key() in [
             Qt.Key.Key_Control, Qt.Key.Key_Meta, Qt.Key.Key_Shift,
             Qt.Key.Key_Alt, Qt.Key.Key_Menu,
@@ -148,38 +157,41 @@
             return
     
         if self.keyIndex == 4:
-            self.keyIndex = 0
-            self.keys = [0, 0, 0, 0]
+            self.__clearKeys()
     
         if (
             evt.key() == Qt.Key.Key_Backtab and
             evt.modifiers() & Qt.KeyboardModifier.ShiftModifier
         ):
-            self.keys[self.keyIndex] = Qt.Key.Key_Tab
+            self.keys[self.keyIndex] = QKeyCombination(evt.modifiers(),
+                                                       Qt.Key.Key_Tab)
         else:
-            self.keys[self.keyIndex] = evt.key()
-        
-        if evt.modifiers() & Qt.KeyboardModifier.ShiftModifier:
-            self.keys[self.keyIndex] += Qt.Modifier.SHIFT
-        if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
-            self.keys[self.keyIndex] += Qt.Modifier.CTRL
-        if evt.modifiers() & Qt.KeyboardModifier.AltModifier:
-            self.keys[self.keyIndex] += Qt.Modifier.ALT
-        if evt.modifiers() & Qt.KeyboardModifier.MetaModifier:
-            self.keys[self.keyIndex] += Qt.Modifier.META
+            self.keys[self.keyIndex] = QKeyCombination(evt.modifiers(),
+                                                       Qt.Key(evt.key()))
         
         self.keyIndex += 1
         
         if self.keyIndex == 1:
-            self.__setKeyEditText(QKeySequence(self.keys[0]).toString())
+            self.__setKeyEditText(
+                QKeySequence(
+                    self.keys[0]
+                ).toString(QKeySequence.SequenceFormat.NativeText)
+            )
         elif self.keyIndex == 2:
             self.__setKeyEditText(
-                QKeySequence(self.keys[0], self.keys[1]).toString())
+                QKeySequence(
+                    self.keys[0], self.keys[1]
+                ).toString(QKeySequence.SequenceFormat.NativeText)
+            )
         elif self.keyIndex == 3:
-            self.__setKeyEditText(QKeySequence(
-                self.keys[0], self.keys[1],
-                self.keys[2]).toString())
+            self.__setKeyEditText(
+                QKeySequence(
+                    self.keys[0], self.keys[1], self.keys[2]
+                ).toString(QKeySequence.SequenceFormat.NativeText)
+            )
         elif self.keyIndex == 4:
-            self.__setKeyEditText(QKeySequence(
-                self.keys[0], self.keys[1],
-                self.keys[2], self.keys[3]).toString())
+            self.__setKeyEditText(
+                QKeySequence(
+                    self.keys[0], self.keys[1], self.keys[2], self.keys[3]
+                ).toString(QKeySequence.SequenceFormat.NativeText)
+            )

eric ide

mercurial