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.addAction(ac)
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
ac = menu.addAction(_('Invert current search'))
|
ac = menu.addAction(_('Invert current search'))
|
||||||
ac.setEnabled(bool(self.text()))
|
ac.setEnabled(bool(self.text().strip()))
|
||||||
ac.setIcon(QIcon.ic('search.png'))
|
ac.setIcon(QIcon.ic('search.png'))
|
||||||
ac.triggered.connect(self.reverse_search)
|
ac.triggered.connect(self.invert_search)
|
||||||
menu.addAction(ac)
|
menu.addAction(ac)
|
||||||
menu.addSeparator()
|
menu.addSeparator()
|
||||||
if self.as_url is not None:
|
if self.as_url is not None:
|
||||||
@ -70,10 +70,16 @@ class SearchLineEdit(QLineEdit): # {{{
|
|||||||
menu.addAction(_('&Clear search history')).triggered.connect(self.clear_history)
|
menu.addAction(_('&Clear search history')).triggered.connect(self.clear_history)
|
||||||
menu.exec(ev.globalPos())
|
menu.exec(ev.globalPos())
|
||||||
|
|
||||||
def reverse_search(self):
|
def invert_search(self):
|
||||||
self.setText(f'NOT ( {self.text()} )')
|
q = self.text().strip()
|
||||||
ev = QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier)
|
if q:
|
||||||
self.keyPressEvent(ev)
|
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)
|
||||||
|
|
||||||
def paste_and_search(self):
|
def paste_and_search(self):
|
||||||
self.paste()
|
self.paste()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user