Anki/qt/aqt/forms
Abdo 946eb46813
Add option to exclude fields from search (#2394)
* Add option to exclude fields from unqualified searches

* Use temp tables instead

This is slightly faster according to my (very rough) tests.

* Make query a bit more readable

* exclude_from_search -> excludeFromSearch

* Remove superfluous notetypes table from query

* Rework to use field search logic

Thanks to Rumo for the suggestion: https://github.com/ankitects/anki/pull/2394#issuecomment-1446702402

* Exclude fields from field searches too

* Fix error on notetypes with no included fields

* Add back the exclude_fields function

This approach seems to perform better on average than the previously
benchmarked ones.

* Use pure-SQL approach to excluding fields

* Change single field search to use new approach

* Fix flawed any_excluded/sortf_excluded logic

* Support field exclusion in the nc operator

Also fix search text being wrapped in % in the any_excluded=true case.

* Support field exclusion in the re and w operators

* Label field exclusion as being slower

* Unqualified search should be wrapped in % in all cases

I was under the impression that it shouldn't be wrapped with the new
field exclusion logic.

* Remove unnecessary .collect()

* Refactor some complex return types into structs

* Do not exclude fields in field searches

* Add a test and docstring for CollectRanges

* Avoid destructuring in closures

* Remove the exclude_fields function

Minor wording tweaks by dae:
* num_fields -> total_fields_in_note
* fields -> field_ranges_to_search
* fields -> fields_to_search
* SingleField -> FieldQualified
* mid -> ntid
2023-03-20 07:46:03 +10:00
..
__init__.py Revamp Preferences, implement Minimalist Mode and Qt widget gallery to test GUI changes (#2289) 2023-01-18 21:24:16 +10:00
about.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
about.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
addcards.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
addcards.ui Remove unused actions from ui files (#1655) 2022-02-11 10:15:36 +10:00
addfield.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
addfield.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
addmodel.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
addmodel.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
addonconf.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
addonconf.ui Use a webview to show add-on's config help (#2281) 2022-12-21 16:55:31 +10:00
addons.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
addons.ui Increase initial add-on dialog size 2022-12-09 12:36:28 +10:00
browser.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
browser.ui Allow burying cards in browser (#2351) 2023-01-30 19:21:06 +10:00
browserdisp.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
browserdisp.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
browseropts.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
browseropts.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
changemap.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
changemap.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
changemodel.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
changemodel.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
clayout_top.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
clayout_top.ui Add minimumContentsLength property to templatesBox (#1781) 2022-04-09 13:55:03 +10:00
customstudy.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
customstudy.ui Redesign deck options inputs (#2082) 2022-09-27 12:16:45 +10:00
dconf.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
dconf.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
debug.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
debug.ui Improve debug console (#2435) 2023-03-15 15:29:05 +10:00
editaddon.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
editaddon.ui update designer references 2020-11-17 19:55:18 +10:00
editcurrent.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
editcurrent.ui update designer references 2020-11-17 19:55:18 +10:00
edithtml.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
edithtml.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
emptycards.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
emptycards.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
exporting.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
exporting.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
fields.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
fields.ui Add option to exclude fields from search (#2394) 2023-03-20 07:46:03 +10:00
fields_web.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
fields_web.ui Add a flag to allow loading the fields dialog in a web view (#1706) 2022-03-03 22:45:26 +10:00
filtered_deck.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
filtered_deck.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
finddupes.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
finddupes.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
findreplace.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
findreplace.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
forget.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
forget.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
getaddons.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
getaddons.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
importing.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
importing.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
main.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
main.ui Backup improvements (#1728) 2022-03-21 19:40:42 +10:00
modelopts.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
modelopts.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
models.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
models.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
preferences.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
preferences.ui Add a button in the preferences to reset window sizes (#2405) 2023-02-28 12:23:34 +10:00
preview.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
preview.ui Redesign deck options inputs (#2082) 2022-09-27 12:16:45 +10:00
profiles.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
profiles.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
progress.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
progress.ui update designer references 2020-11-17 19:55:18 +10:00
reposition.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
reposition.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
setgroup.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
setgroup.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
setlang.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
setlang.ui Revamp Preferences, implement Minimalist Mode and Qt widget gallery to test GUI changes (#2289) 2023-01-18 21:24:16 +10:00
stats.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
stats.ui Redesign deck options inputs (#2082) 2022-09-27 12:16:45 +10:00
studydeck.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
studydeck.ui update TR references in .ui files 2021-03-26 15:03:51 +10:00
synclog.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
synclog.ui initial Bazel conversion 2020-11-01 14:26:58 +10:00
taglimit.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
taglimit.ui Improve hover feedback on various widgets (#2079) 2022-09-20 16:34:15 +10:00
template.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
template.ui Add separate styling for template editor QGroupBoxes (#2337) 2023-01-19 21:14:52 +10:00
widgets.py Revamp Preferences, implement Minimalist Mode and Qt widget gallery to test GUI changes (#2289) 2023-01-18 21:24:16 +10:00
widgets.ui Revamp Preferences, implement Minimalist Mode and Qt widget gallery to test GUI changes (#2289) 2023-01-18 21:24:16 +10:00