mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-31 14:33:54 -04:00
A spot of refactoring
This commit is contained in:
parent
d96714ed24
commit
33d2ff5662
@ -184,24 +184,32 @@ class CompletionPopup(QWidget):
|
|||||||
QWidget.hide(self)
|
QWidget.hide(self)
|
||||||
self.relayout_timer.stop()
|
self.relayout_timer.stop()
|
||||||
|
|
||||||
|
def handle_keypress(self, ev):
|
||||||
|
key = ev.key()
|
||||||
|
if key == Qt.Key_Escape:
|
||||||
|
self.hide(), ev.accept()
|
||||||
|
return True
|
||||||
|
if key == Qt.Key_Tab:
|
||||||
|
self.choose_next_result(previous=ev.modifiers() & Qt.ShiftModifier)
|
||||||
|
ev.accept()
|
||||||
|
return True
|
||||||
|
if key == Qt.Key_Backtab:
|
||||||
|
self.choose_next_result(previous=ev.modifiers() & Qt.ShiftModifier)
|
||||||
|
return True
|
||||||
|
if key in (Qt.Key_Up, Qt.Key_Down):
|
||||||
|
self.choose_next_result(previous=key == Qt.Key_Up)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def eventFilter(self, obj, ev):
|
def eventFilter(self, obj, ev):
|
||||||
if obj is self.parent() and self.isVisible():
|
if obj is self.parent() and self.isVisible():
|
||||||
if ev.type() == ev.KeyPress:
|
etype = ev.type()
|
||||||
key = ev.key()
|
if etype == ev.KeyPress:
|
||||||
if key == Qt.Key_Escape:
|
ret = self.handle_keypress(ev)
|
||||||
self.hide()
|
if ret:
|
||||||
return True
|
ev.accept()
|
||||||
if key == Qt.Key_Tab:
|
return ret
|
||||||
self.choose_next_result(previous=ev.modifiers() & Qt.ShiftModifier)
|
elif etype == ev.Resize:
|
||||||
return True
|
|
||||||
if key == Qt.Key_Backtab:
|
|
||||||
self.choose_next_result(previous=ev.modifiers() & Qt.ShiftModifier)
|
|
||||||
return True
|
|
||||||
if key in (Qt.Key_Up, Qt.Key_Down):
|
|
||||||
self.choose_next_result(previous=key == Qt.Key_Up)
|
|
||||||
return True
|
|
||||||
|
|
||||||
elif ev.type() == ev.Resize:
|
|
||||||
self.relayout_timer.start()
|
self.relayout_timer.start()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user