From 2fc47773b69cc656b9d22718e64e73af022b23ae Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 2 Feb 2017 21:00:58 +1000 Subject: [PATCH] show error on invalid search --- anki/find.py | 2 +- aqt/browser.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/anki/find.py b/anki/find.py index ae3c9d549..0e954d636 100644 --- a/anki/find.py +++ b/anki/find.py @@ -38,7 +38,7 @@ class Finder(object): tokens = self._tokenize(query) preds, args = self._where(tokens) if preds is None: - return [] + raise Exception("invalidSearch") order, rev = self._order(order) sql = self._query(preds, order) try: diff --git a/aqt/browser.py b/aqt/browser.py index f204c5b50..cf740e5b9 100644 --- a/aqt/browser.py +++ b/aqt/browser.py @@ -121,11 +121,22 @@ class DataModel(QAbstractTableModel): # the db progress handler may cause a refresh, so we need to zero out # old data first self.cards = [] - self.cards = self.col.findCards(txt, order=True) - #self.browser.mw.pm.profile['fullSearch']) + invalid = False + try: + self.cards = self.col.findCards(txt, order=True) + except Exception as e: + if str(e) == "invalidSearch": + self.cards = [] + invalid = True + else: + raise #print "fetch cards in %dms" % ((time.time() - t)*1000) self.endReset() + if invalid: + showWarning(_("Invalid search - please check for typing mistakes.")) + + def reset(self): self.beginReset() self.endReset()