1
1
# Copyright: Ankitects Pty Ltd and contributors
2
2
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
3
3
4
+ from __future__ import annotations
5
+
4
6
import re
5
7
6
8
from aqt import gui_hooks
7
9
from aqt .qt import *
8
10
9
11
10
12
class TagEdit (QLineEdit ):
13
+ completer : Union [QCompleter , TagCompleter ]
11
14
12
15
lostFocus = pyqtSignal ()
13
16
@@ -18,12 +21,12 @@ def __init__(self, parent, type=0):
18
21
self .model = QStringListModel ()
19
22
self .type = type
20
23
if type == 0 :
21
- self .completer_ = TagCompleter (self .model , parent , self )
24
+ self .completer = TagCompleter (self .model , parent , self )
22
25
else :
23
- self .completer_ = QCompleter (self .model , parent )
24
- self .completer_ .setCompletionMode (QCompleter .PopupCompletion )
25
- self .completer_ .setCaseSensitivity (Qt .CaseInsensitive )
26
- self .setCompleter (self .completer_ )
26
+ self .completer = QCompleter (self .model , parent )
27
+ self .completer .setCompletionMode (QCompleter .PopupCompletion )
28
+ self .completer .setCaseSensitivity (Qt .CaseInsensitive )
29
+ self .setCompleter (self .completer )
27
30
28
31
def setCol (self , col ):
29
32
"Set the current col, updating list of available tags."
@@ -40,26 +43,26 @@ def focusInEvent(self, evt):
40
43
def keyPressEvent (self , evt ):
41
44
if evt .key () in (Qt .Key_Up , Qt .Key_Down ):
42
45
# show completer on arrow key up/down
43
- if not self .completer_ .popup ().isVisible ():
46
+ if not self .completer .popup ().isVisible ():
44
47
self .showCompleter ()
45
48
return
46
49
if evt .key () == Qt .Key_Tab and evt .modifiers () & Qt .ControlModifier :
47
50
# select next completion
48
- if not self .completer_ .popup ().isVisible ():
51
+ if not self .completer .popup ().isVisible ():
49
52
self .showCompleter ()
50
- index = self .completer_ .currentIndex ()
51
- self .completer_ .popup ().setCurrentIndex (index )
53
+ index = self .completer .currentIndex ()
54
+ self .completer .popup ().setCurrentIndex (index )
52
55
cur_row = index .row ()
53
- if not self .completer_ .setCurrentRow (cur_row + 1 ):
54
- self .completer_ .setCurrentRow (0 )
56
+ if not self .completer .setCurrentRow (cur_row + 1 ):
57
+ self .completer .setCurrentRow (0 )
55
58
return
56
59
if evt .key () in (Qt .Key_Enter , Qt .Key_Return ):
57
60
# apply first completion if no suggestion selected
58
- selected_row = self .completer_ .popup ().currentIndex ().row ()
61
+ selected_row = self .completer .popup ().currentIndex ().row ()
59
62
if selected_row == - 1 :
60
- self .completer_ .setCurrentRow (0 )
61
- index = self .completer_ .currentIndex ()
62
- self .completer_ .popup ().setCurrentIndex (index )
63
+ self .completer .setCurrentRow (0 )
64
+ index = self .completer .currentIndex ()
65
+ self .completer .popup ().setCurrentIndex (index )
63
66
self .hideCompleter ()
64
67
QWidget .keyPressEvent (self , evt )
65
68
return
@@ -80,18 +83,18 @@ def keyPressEvent(self, evt):
80
83
gui_hooks .tag_editor_did_process_key (self , evt )
81
84
82
85
def showCompleter (self ):
83
- self .completer_ .setCompletionPrefix (self .text ())
84
- self .completer_ .complete ()
86
+ self .completer .setCompletionPrefix (self .text ())
87
+ self .completer .complete ()
85
88
86
89
def focusOutEvent (self , evt ) -> None :
87
90
QLineEdit .focusOutEvent (self , evt )
88
91
self .lostFocus .emit () # type: ignore
89
- self .completer_ .popup ().hide ()
92
+ self .completer .popup ().hide ()
90
93
91
94
def hideCompleter (self ):
92
- if sip .isdeleted (self .completer_ ):
95
+ if sip .isdeleted (self .completer ):
93
96
return
94
- self .completer_ .popup ().hide ()
97
+ self .completer .popup ().hide ()
95
98
96
99
97
100
class TagCompleter (QCompleter ):
0 commit comments