Allow easily inverting the current search via the right click menu on the search box
This commit is contained in:
Kovid Goyal 2024-04-29 21:57:54 +05:30
commit 3bd4387f83
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -57,6 +57,12 @@ class SearchLineEdit(QLineEdit): # {{{
else: else:
menu.addAction(ac) menu.addAction(ac)
menu.addSeparator() menu.addSeparator()
ac = menu.addAction(_('Invert current search'))
ac.setEnabled(bool(self.text()))
ac.setIcon(QIcon.ic('search.png'))
ac.triggered.connect(self.reverse_search)
menu.addAction(ac)
menu.addSeparator()
if self.as_url is not None: if self.as_url is not None:
url = self.as_url(self.text()) url = self.as_url(self.text())
if url: if url:
@ -64,6 +70,11 @@ 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):
self.setText(f'NOT ( {self.text()} )')
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()
ev = QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier) ev = QKeyEvent(QEvent.Type.KeyPress, Qt.Key.Key_Enter, Qt.KeyboardModifier.NoModifier)