From 7c59955b54a78b1edc7af211cd7bb0142728bca4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 17 Jan 2022 12:16:08 +0530 Subject: [PATCH] Add set/unset operators for date searches in the advanced search dialog --- src/calibre/gui2/dialogs/search.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/gui2/dialogs/search.py b/src/calibre/gui2/dialogs/search.py index 18e01f5c53..8f6ed17161 100644 --- a/src/calibre/gui2/dialogs/search.py +++ b/src/calibre/gui2/dialogs/search.py @@ -31,6 +31,8 @@ def init_dateop(cb): ('>', _('after')), ('<=', _('before or equal to')), ('>=', _('after or equal to')), + ('s', _('set')), + ('u', _('unset')), ]: cb.addItem(desc, op) @@ -383,6 +385,8 @@ class SearchDialog(QDialog): def date_search_string(self): field = str(self.date_field.itemData(self.date_field.currentIndex()) or '') op = current_dateop(self.dateop_date) + if op in 'su': + return f'{field}:{"true" if op == "s" else "false"}' prefix = f'{field}:{op}' if self.sel_date.isChecked(): ans = f'{prefix}{self.date_year.value()}'