mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Dont endlessly chain NOT when repeatedly inverting the same search
This commit is contained in:
parent
3bd4387f83
commit
dd747283ca
@ -58,9 +58,9 @@ class SearchLineEdit(QLineEdit): # {{{
|
||||
menu.addAction(ac)
|
||||
menu.addSeparator()
|
||||
ac = menu.addAction(_('Invert current search'))
|
||||
ac.setEnabled(bool(self.text()))
|
||||
ac.setEnabled(bool(self.text().strip()))
|
||||
ac.setIcon(QIcon.ic('search.png'))
|
||||
ac.triggered.connect(self.reverse_search)
|
||||
ac.triggered.connect(self.invert_search)
|
||||
menu.addAction(ac)
|
||||
menu.addSeparator()
|
||||
if self.as_url is not None:
|
||||
@ -70,8 +70,14 @@ class SearchLineEdit(QLineEdit): # {{{
|
||||
menu.addAction(_('&Clear search history')).triggered.connect(self.clear_history)
|
||||
menu.exec(ev.globalPos())
|
||||
|
||||
def reverse_search(self):
|
||||
self.setText(f'NOT ( {self.text()} )')
|
||||
def invert_search(self):
|
||||
q = self.text().strip()
|
||||
if q:
|
||||
if q.startswith('NOT ( ') and q.endswith(' )'):
|
||||
q = q[6:-2]
|
||||
else:
|
||||
q = f'NOT ( {q} )'
|
||||
self.setText(q)
|
||||
ev = QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier)
|
||||
self.keyPressEvent(ev)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user