|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing functions to map QScintilla keyboard commands to |
|
8 QKeySequence standard keys. |
|
9 """ |
|
10 |
|
11 from __future__ import unicode_literals |
|
12 |
|
13 from PyQt5.QtCore import qVersion |
|
14 from PyQt5.QtGui import QKeySequence |
|
15 from PyQt5.Qsci import QsciScintilla |
|
16 |
|
17 __all__ = ["s2qTranslate"] |
|
18 |
|
19 Scintilla2QKeySequence = { |
|
20 QsciScintilla.SCI_CHARLEFT: QKeySequence.MoveToPreviousChar, |
|
21 QsciScintilla.SCI_CHARRIGHT: QKeySequence.MoveToNextChar, |
|
22 QsciScintilla.SCI_LINEUP: QKeySequence.MoveToPreviousLine, |
|
23 QsciScintilla.SCI_LINEDOWN: QKeySequence.MoveToNextLine, |
|
24 QsciScintilla.SCI_WORDPARTLEFT: QKeySequence.UnknownKey, |
|
25 QsciScintilla.SCI_WORDPARTRIGHT: QKeySequence.UnknownKey, |
|
26 QsciScintilla.SCI_WORDLEFT: QKeySequence.MoveToNextWord, |
|
27 QsciScintilla.SCI_WORDRIGHT: QKeySequence.MoveToPreviousWord, |
|
28 QsciScintilla.SCI_VCHOME: QKeySequence.MoveToStartOfLine, |
|
29 QsciScintilla.SCI_HOMEDISPLAY: QKeySequence.UnknownKey, |
|
30 QsciScintilla.SCI_LINEEND: QKeySequence.MoveToEndOfLine, |
|
31 QsciScintilla.SCI_LINESCROLLDOWN: QKeySequence.UnknownKey, |
|
32 QsciScintilla.SCI_LINESCROLLUP: QKeySequence.UnknownKey, |
|
33 QsciScintilla.SCI_PARAUP: QKeySequence.MoveToStartOfBlock, |
|
34 QsciScintilla.SCI_PARADOWN: QKeySequence.MoveToEndOfBlock, |
|
35 QsciScintilla.SCI_PAGEUP: QKeySequence.MoveToPreviousPage, |
|
36 QsciScintilla.SCI_PAGEDOWN: QKeySequence.MoveToNextPage, |
|
37 QsciScintilla.SCI_DOCUMENTSTART: QKeySequence.MoveToStartOfDocument, |
|
38 QsciScintilla.SCI_DOCUMENTEND: QKeySequence.MoveToEndOfDocument, |
|
39 QsciScintilla.SCI_TAB: QKeySequence.UnknownKey, |
|
40 QsciScintilla.SCI_BACKTAB: QKeySequence.UnknownKey, |
|
41 QsciScintilla.SCI_CHARLEFTEXTEND: QKeySequence.SelectPreviousChar, |
|
42 QsciScintilla.SCI_CHARRIGHTEXTEND: QKeySequence.SelectNextChar, |
|
43 QsciScintilla.SCI_LINEUPEXTEND: QKeySequence.SelectPreviousLine, |
|
44 QsciScintilla.SCI_LINEDOWNEXTEND: QKeySequence.SelectNextLine, |
|
45 QsciScintilla.SCI_WORDPARTLEFTEXTEND: QKeySequence.UnknownKey, |
|
46 QsciScintilla.SCI_WORDPARTRIGHTEXTEND: QKeySequence.UnknownKey, |
|
47 QsciScintilla.SCI_WORDLEFTEXTEND: QKeySequence.SelectPreviousWord, |
|
48 QsciScintilla.SCI_WORDRIGHTEXTEND: QKeySequence.SelectNextWord, |
|
49 QsciScintilla.SCI_VCHOMEEXTEND: QKeySequence.SelectStartOfLine, |
|
50 QsciScintilla.SCI_LINEENDEXTEND: QKeySequence.SelectEndOfLine, |
|
51 QsciScintilla.SCI_PARAUPEXTEND: QKeySequence.SelectStartOfBlock, |
|
52 QsciScintilla.SCI_PARADOWNEXTEND: QKeySequence.SelectEndOfBlock, |
|
53 QsciScintilla.SCI_PAGEUPEXTEND: QKeySequence.SelectPreviousPage, |
|
54 QsciScintilla.SCI_PAGEDOWNEXTEND: QKeySequence.SelectNextPage, |
|
55 QsciScintilla.SCI_DOCUMENTSTARTEXTEND: QKeySequence.SelectStartOfDocument, |
|
56 QsciScintilla.SCI_DOCUMENTENDEXTEND: QKeySequence.SelectEndOfDocument, |
|
57 QsciScintilla.SCI_DELETEBACK: QKeySequence.UnknownKey, |
|
58 QsciScintilla.SCI_DELETEBACKNOTLINE: QKeySequence.UnknownKey, |
|
59 QsciScintilla.SCI_CLEAR: QKeySequence.Delete, |
|
60 QsciScintilla.SCI_DELWORDLEFT: QKeySequence.DeleteStartOfWord, |
|
61 QsciScintilla.SCI_DELWORDRIGHT: QKeySequence.DeleteEndOfWord, |
|
62 QsciScintilla.SCI_DELLINELEFT: QKeySequence.UnknownKey, |
|
63 QsciScintilla.SCI_DELLINERIGHT: QKeySequence.DeleteEndOfLine, |
|
64 QsciScintilla.SCI_NEWLINE: QKeySequence.InsertLineSeparator, |
|
65 QsciScintilla.SCI_LINEDELETE: QKeySequence.UnknownKey, |
|
66 QsciScintilla.SCI_LINEDUPLICATE: QKeySequence.UnknownKey, |
|
67 QsciScintilla.SCI_LINETRANSPOSE: QKeySequence.UnknownKey, |
|
68 QsciScintilla.SCI_LINECUT: QKeySequence.UnknownKey, |
|
69 QsciScintilla.SCI_LINECOPY: QKeySequence.UnknownKey, |
|
70 QsciScintilla.SCI_EDITTOGGLEOVERTYPE: QKeySequence.UnknownKey, |
|
71 QsciScintilla.SCI_LINEENDDISPLAY: QKeySequence.UnknownKey, |
|
72 QsciScintilla.SCI_LINEENDDISPLAYEXTEND: QKeySequence.UnknownKey, |
|
73 QsciScintilla.SCI_FORMFEED: QKeySequence.UnknownKey, |
|
74 QsciScintilla.SCI_CANCEL: QKeySequence.UnknownKey, |
|
75 QsciScintilla.SCI_LINEDOWNRECTEXTEND: QKeySequence.UnknownKey, |
|
76 QsciScintilla.SCI_LINEUPRECTEXTEND: QKeySequence.UnknownKey, |
|
77 QsciScintilla.SCI_CHARLEFTRECTEXTEND: QKeySequence.UnknownKey, |
|
78 QsciScintilla.SCI_CHARRIGHTRECTEXTEND: QKeySequence.UnknownKey, |
|
79 QsciScintilla.SCI_VCHOMERECTEXTEND: QKeySequence.UnknownKey, |
|
80 QsciScintilla.SCI_LINEENDRECTEXTEND: QKeySequence.UnknownKey, |
|
81 QsciScintilla.SCI_PAGEUPRECTEXTEND: QKeySequence.UnknownKey, |
|
82 QsciScintilla.SCI_PAGEDOWNRECTEXTEND: QKeySequence.UnknownKey, |
|
83 QsciScintilla.SCI_SELECTIONDUPLICATE: QKeySequence.UnknownKey, |
|
84 QsciScintilla.SCI_SCROLLTOSTART: QKeySequence.UnknownKey, |
|
85 QsciScintilla.SCI_SCROLLTOEND: QKeySequence.UnknownKey, |
|
86 QsciScintilla.SCI_VERTICALCENTRECARET: QKeySequence.UnknownKey, |
|
87 QsciScintilla.SCI_WORDRIGHTEND: QKeySequence.UnknownKey, |
|
88 QsciScintilla.SCI_WORDRIGHTENDEXTEND: QKeySequence.UnknownKey, |
|
89 QsciScintilla.SCI_WORDLEFTEND: QKeySequence.UnknownKey, |
|
90 QsciScintilla.SCI_WORDLEFTENDEXTEND: QKeySequence.UnknownKey, |
|
91 QsciScintilla.SCI_HOME: QKeySequence.UnknownKey, |
|
92 QsciScintilla.SCI_HOMEEXTEND: QKeySequence.UnknownKey, |
|
93 QsciScintilla.SCI_HOMERECTEXTEND: QKeySequence.UnknownKey, |
|
94 QsciScintilla.SCI_HOMEDISPLAYEXTEND: QKeySequence.UnknownKey, |
|
95 QsciScintilla.SCI_HOMEWRAP: QKeySequence.UnknownKey, |
|
96 QsciScintilla.SCI_HOMEWRAPEXTEND: QKeySequence.UnknownKey, |
|
97 QsciScintilla.SCI_VCHOMEWRAP: QKeySequence.UnknownKey, |
|
98 QsciScintilla.SCI_VCHOMEWRAPEXTEND: QKeySequence.UnknownKey, |
|
99 QsciScintilla.SCI_LINEENDWRAP: QKeySequence.UnknownKey, |
|
100 QsciScintilla.SCI_LINEENDWRAPEXTEND: QKeySequence.UnknownKey, |
|
101 QsciScintilla.SCI_STUTTEREDPAGEUP: QKeySequence.UnknownKey, |
|
102 QsciScintilla.SCI_STUTTEREDPAGEUPEXTEND: QKeySequence.UnknownKey, |
|
103 QsciScintilla.SCI_STUTTEREDPAGEDOWN: QKeySequence.UnknownKey, |
|
104 QsciScintilla.SCI_STUTTEREDPAGEDOWNEXTEND: QKeySequence.UnknownKey, |
|
105 QsciScintilla.SCI_DELWORDRIGHTEND: QKeySequence.UnknownKey, |
|
106 QsciScintilla.SCI_MOVESELECTEDLINESUP: QKeySequence.UnknownKey, |
|
107 QsciScintilla.SCI_MOVESELECTEDLINESDOWN: QKeySequence.UnknownKey, |
|
108 QsciScintilla.SCI_LOWERCASE: QKeySequence.UnknownKey, |
|
109 QsciScintilla.SCI_UPPERCASE: QKeySequence.UnknownKey, |
|
110 } |
|
111 if qVersion() >= "5.2.0": |
|
112 Scintilla2QKeySequence[QsciScintilla.SCI_LINEDELETE] = \ |
|
113 QKeySequence.DeleteCompleteLine, |
|
114 if qVersion() >= "5.5.0": |
|
115 Scintilla2QKeySequence[QsciScintilla.SCI_DELETEBACK] = \ |
|
116 QKeySequence.Backspace |
|
117 |
|
118 |
|
119 def s2qTranslate(scintillaCommand): |
|
120 """ |
|
121 Function to translate a QScintilla command to a QKeySequence. |
|
122 |
|
123 @param scintillaCommand QScintilla command |
|
124 @type int |
|
125 @return Qt key sequence |
|
126 @rtype QKeySequence.StandardKey |
|
127 """ |
|
128 assert scintillaCommand in Scintilla2QKeySequence |
|
129 return Scintilla2QKeySequence[scintillaCommand] |