Commit graph

1753 commits

Author SHA1 Message Date
abdo
a30a2638ce Hierarchical tags 2021-01-09 17:10:13 +03:00
RumovZ
370c689c83 Prettify frontend filter code 2021-01-09 12:34:46 +01:00
RumovZ
0cb75f5601 Use backend filters instead of literal searches 2021-01-09 10:51:15 +01:00
abdo
4418e896bd Exclude aqt/hooks_gen.py from formatting 2021-01-09 03:01:48 +03:00
wallgrenen
3a1ef7b651 remove unused variables and commented-out code 2021-01-08 20:53:27 +01:00
RumovZ
0ebaf98c96 Compare and save filters normalised
When checking whether the current search is a saved filter, compare the
searches normalised to allow the detection of equivalent expressions.
Invalid searches are accepted unaltered to allow the deletion of invalid
saved filters.
As for saving new filters, do so normalised, respectively, reject
invalid searches.
2021-01-07 22:11:21 +01:00
RumovZ
5a559cab16 Format 2021-01-07 18:20:14 +01:00
RumovZ
ad361e7a77 Provide ConcatSeparator through rsbackend.py 2021-01-07 17:48:30 +01:00
Damien Elmes
dda65cac9a ignore missing pyaudio 2021-01-07 16:25:55 +10:00
Damien Elmes
2b5ef0b9a8 fix qt/ pylints 2021-01-07 16:21:50 +10:00
Damien Elmes
685e841771 cap pylint CPUs in qt/
After 4 cores, improvements are tiny, and soon start going backwards,
presumably due to the overhead of importing PyQt into each worker.
2021-01-07 16:19:52 +10:00
Damien Elmes
6872744689 fix pylint in qt
pylint fails to read Qt modules when invoked as a subprocess with
-j 0, and it looks like I committed this in the middle of debugging
the issue. Work around it by invoking pylint directly. It's still
awfully slow, taking 30 seconds on a 10 core machine.
2021-01-07 15:47:25 +10:00
Damien Elmes
5a1fb1da98 fix another broken setWindowFlags 2021-01-07 14:46:55 +10:00
Damien Elmes
8075d46011 convert setWindowFlags call into helper, and fix invalid variables
"type: ignore" was masking the invalid references to self in places
like showText()
2021-01-07 14:24:49 +10:00
Damien Elmes
73eec46bda Merge pull request #860 from RumovZ/norm-search
Normalise search
2021-01-07 10:51:36 +10:00
Damien Elmes
6fa649e8bf only adjust search on left button click
Closes #898
2021-01-07 10:08:23 +10:00
wallgrenen
49781ea29a replace broken link 2021-01-07 09:56:25 +10:00
Damien Elmes
07e7815ec4 Merge pull request #899 from BlueGreenMagick/remove-context-help-btn
remove context help button
2021-01-07 09:52:12 +10:00
RumovZ
ac4d254793 Merge branch 'master' of https://github.com/ankitects/anki into norm-search 2021-01-06 20:57:24 +01:00
RumovZ
85cb9c318c Format 2021-01-06 20:35:11 +01:00
RumovZ
163f92729d Add exception handling for filter modifications 2021-01-06 20:25:13 +01:00
RumovZ
0b1eec9cd8 Add tests for writer.rs
Also minor adjustments to concatenate_searches.
2021-01-06 19:39:34 +01:00
RumovZ
f061ccfb02 Implement search replacing via Ctrl+Shift combo
Also switch to using the new backend functions for concatenating and
negating searches.
2021-01-06 18:32:29 +01:00
wallgrenen
1c5f0ad44f replace broken link 2021-01-06 17:03:39 +01:00
BlueGreenMagick
9a29d1b97a remove context help button 2021-01-06 22:15:48 +09:00
RumovZ
8c0d666431 Adjust frontend to normalized search syntax 2021-01-06 14:05:28 +01:00
Damien Elmes
f4d4776f22 Merge pull request #891 from BlueGreenMagick/sidebar-delete-deck
Sidebar delete deck
2021-01-06 18:56:15 +10:00
Damien Elmes
923b4d65e9 fix unhandled sync error
Thanks to Abdo:
https://forums.ankiweb.net/t/sync-anki-on-desktop-error/6299/2
2021-01-06 18:51:28 +10:00
BlueGreenMagick
fee293b0d8 format ask_delete_deck method more readable 2021-01-05 21:33:59 +09:00
BlueGreenMagick
f7ee41976e delete deck in background 2021-01-05 21:33:59 +09:00
BlueGreenMagick
65037387d6 add BrowserDeleteDeck to ResetReason 2021-01-05 21:33:48 +09:00
BlueGreenMagick
8c3773262f add delete_deck to sidebar context menu 2021-01-05 20:09:55 +09:00
BlueGreenMagick
59fba57e07 seperate ask_delete_deck and _delete method 2021-01-05 20:09:47 +09:00
Damien Elmes
53b215e4c6 Merge pull request #890 from hgiesel/addonclose
Add closeWithCallback method to Addons dialog
2021-01-04 21:16:01 +10:00
Henrik Giesel
bd0b58ef1c Add silentlyClose method to Addons dialog 2021-01-04 11:52:00 +01:00
Damien Elmes
67455365c0 Merge pull request #888 from hgiesel/studiedtoday
Wrap studied_today in deckbrowser in div and span
2021-01-04 14:27:35 +10:00
Damien Elmes
3123e6df7f do tag rename and tag clearing in background; move logic to tags.py
Because the logic is in rename_tag() now, it means we create a
checkpoint even if the tag is orphaned. This is because currently
checkpointing is a GUI responsibility. In the future we need to introduce
multi-level undo, and should move responsibility for managing it
to the backend.
2021-01-04 14:14:39 +10:00
Damien Elmes
dabde048e1 types don't need quoting, as annotations is imported from future 2021-01-04 13:46:00 +10:00
Damien Elmes
175013b299 Merge pull request #887 from BlueGreenMagick/deck-rename-checkpoint
don't set checkpoint when deck rename is cancelled
2021-01-04 13:44:28 +10:00
Henrik Giesel
17119dcb1c Wrap studied_today in div and span in deckbrowser 2021-01-03 14:54:44 +01:00
BlueGreenMagick
57c60367ab escape tags when finding notes 2021-01-03 17:34:44 +09:00
BlueGreenMagick
e5405dd496 add rename_tag to browser sidebar contextmenu 2021-01-03 16:36:54 +09:00
BlueGreenMagick
56d89d7c9a don't set checkpoint when deck rename is cancelled 2021-01-03 16:30:14 +09:00
Damien Elmes
67bae1ec93 refreshing should happen outside of except clause 2021-01-03 10:09:42 +10:00
Damien Elmes
0b3ff5c88c Merge pull request #885 from Arthur-Milchior/hook_default_search
NF: Add a hook to change the default search from reviewer
2021-01-03 10:09:08 +10:00
Damien Elmes
0287099253 Merge pull request #884 from BlueGreenMagick/refresh-deckchooser
refresh deck browser after renaming deck in browser sidebar
2021-01-03 10:08:45 +10:00
Arthur Milchior
5c7dbdf72b NF: Add a hook to change the default search from reviewer
The goal here is to simplify my add-on which show a single card or the whole deck when the browser open
2021-01-02 19:49:11 +01:00
BlueGreenMagick
a7889fdcfa refresh deck browser on renaming deck 2021-01-02 23:21:41 +09:00
BlueGreenMagick
e9223bfd36 no need to call show() 2021-01-02 23:07:57 +09:00
Damien Elmes
a27e94e54d merge separate vendor rules into single rule
Rather than creating a separate rule for each package, we can just
create a generic one and reuse it. Also switch to keyword arguments
in the resulting macros, as it's easier to read.
2021-01-02 11:14:00 +10:00
Henrik Giesel
e51685d4e6 Fix input type for _drawFlag 2021-01-01 14:14:50 +01:00
Henrik Giesel
b7923ee20e Remove browsersel 2020-12-31 16:48:04 +01:00
Henrik Giesel
e0d34d526a Replace browsersel with css-browser-selector in aqt files and add redirect 2020-12-31 16:47:20 +01:00
Henrik Giesel
6087bb9a0f Add css-browser-selector to BAZEL build file in data/web/js/vendor 2020-12-31 16:41:31 +01:00
Henrik Giesel
137e4b3d15 Remove hardcoded protobufjs 2020-12-31 16:17:46 +01:00
Henrik Giesel
e30ed8c2fa Add build recipe to aqt/data/web/js 2020-12-31 16:15:25 +01:00
Damien Elmes
9953305241 Merge pull request #878 from hgiesel/updateQueue
Replace `_updatingQA` with promise-based `_updatingQueue`
2020-12-31 12:42:58 +10:00
Damien Elmes
201b886f10 Merge pull request #877 from hgiesel/jquery-ui
Update Jquery UI and include in Bazel deps
2020-12-31 12:07:53 +10:00
Henrik Giesel
a1d948d5a2 Replace () => void | Promise<void> with Callback typedef 2020-12-30 16:04:59 +01:00
Henrik Giesel
bbb1a9ed94 Add types to reviewer.ts 2020-12-30 15:06:22 +01:00
Henrik Giesel
8aef0be0f6 Replace _updatingQa synchronization with promise-based _updatingQueue 2020-12-30 14:45:27 +01:00
Henrik Giesel
03da021706 Put loads first in BUILD.bazel 2020-12-30 12:16:59 +01:00
Henrik Giesel
b9c4d2d1ad Remove jquery-ui from vendor folder 2020-12-30 12:12:49 +01:00
Henrik Giesel
da996302a5 Add redirect for jquery-ui 2020-12-30 12:08:12 +01:00
Henrik Giesel
7f85ac63f5 Change include name for jquery ui in deckbrowser 2020-12-30 12:07:02 +01:00
Henrik Giesel
dda55b16f1 Add jquery-ui to vendor/BUILD.bazel 2020-12-30 12:06:06 +01:00
Damien Elmes
cb646cb71e remove old symlink before installing a new version
https://forums.ankiweb.net/t/ubuntu-command-anki-not-found/6083/4
2020-12-30 20:56:28 +10:00
Damien Elmes
c3ff88ab88 fix media attachment
insertHtmlRemovingInitialBR() was removed in a previous PR
2020-12-30 19:30:23 +10:00
Damien Elmes
9b92d3ce1f Revert "Merge pull request #873 from hgiesel/otherjsdeps"
This reverts commit ad7491a9ae, reversing
changes made to 5a79515f2a.

- Standard graphs render incorrectly on latest version - the wrong number
of days are shown, and the grid lines look wrong. Any version after 0.8.3
seems to suffer from this problem.
- Pie graphs and stack graphs don't render - they are provided in separate
files, and plot.js in previous Anki versions has them included in the one
file. To maintain compatibility with add-ons, we'd need to create a single
file as before, instead of importing multiple files.

If the above issues are fixed I'd be happy to merge this in again, but
as the old graphs are on the way out, it's probably not worth the effort.
2020-12-30 14:13:52 +10:00
Damien Elmes
c11e9c45d7 Merge pull request #875 from stayingpeachy/help-link
Update help link
2020-12-30 13:52:50 +10:00
Damien Elmes
fcffad3535 Merge pull request #874 from hgiesel/jqueryreview
Update _updateQa
2020-12-30 13:51:54 +10:00
Meredith
adc54c71e3 update help link
old help link was outdated
2020-12-29 11:09:28 -05:00
Henrik Giesel
633d20f9fd Satisfy prettier 2020-12-29 14:45:20 +01:00
Henrik Giesel
05425c666f Hook functions may also return void 2020-12-29 14:01:09 +01:00
Henrik Giesel
9b844a469a Replace ts-ignore with declare var 2020-12-29 13:43:47 +01:00
Henrik Giesel
a1d389a5b8 Fix typing of reviewer hooks 2020-12-29 13:42:30 +01:00
Henrik Giesel
244219ab27 Use async/await syntax in _updateQa 2020-12-29 13:34:39 +01:00
Henrik Giesel
7ecdb2859e Remove plot.js 2020-12-29 12:16:50 +01:00
Henrik Giesel
644ae453d7 Redirect references to old plotting library version 2020-12-29 12:15:46 +01:00
Henrik Giesel
a9f533a852 Use new version of plotting library in stats.py 2020-12-29 12:13:25 +01:00
Henrik Giesel
fe7d1aef2b Copy flot file to vendor directory 2020-12-29 12:11:28 +01:00
RumovZ
6ad500db55 Make function names more explicit and add docs 2020-12-29 11:18:49 +01:00
Damien Elmes
b68c513cac Merge pull request #856 from hgiesel/jquery
Update jQuery from 1.12.4 to 3.5.1, include in Bazel build process
2020-12-29 10:00:33 +10:00
Damien Elmes
41222e0ba6 fix legacy js remapping
Thanks to Henrik for catching it.
2020-12-29 09:57:34 +10:00
Henrik Giesel
c5fd2d2a55 Fix formatting 2020-12-28 14:56:41 +01:00
Henrik Giesel
d9256c2c2e Add mapping in redirectWebExport for new jquery file 2020-12-28 14:52:44 +01:00
Henrik Giesel
b9dfab79dd Avoid building jquery to its own directory 2020-12-28 14:18:07 +01:00
Henrik Giesel
0b5ee75861 Rename references from vendor/jquery.js to vendor/jquery/jquery.min.js 2020-12-28 13:16:12 +01:00
Henrik Giesel
b6fba45ad5 Remove jquery from Anki repo and replace with Bazel BUILD 2020-12-28 13:16:12 +01:00
Damien Elmes
05a0c3c40e Merge pull request #869 from Arthur-Milchior/trip_new_field_name
New field name checks are more specific
2020-12-28 16:53:32 +10:00
Damien Elmes
184d5ab368 Merge pull request #858 from hgiesel/editorwhitespace
Remove placeholder `<br>`s in empty fields in editor
2020-12-28 16:50:23 +10:00
Arthur Milchior
ebd4938507 Reject field name with : { or }
More than {{ is acceptable to start a tag, which means that `{{{Foo}}` won't be interpreted as "the content of `Foo`"
and should be rejected. For the sake of clarity and parsing, I suspect that those symbol should be rejected elsewhere
too.

Similary `{{Foo}}}` won't be interpreted as "Show the content of field `Foo}`" even if this field exists, so it's better
to reject `}`. It's clearly necessary to reject "}}" inside the field name, rejecting "}" seems easier to explain and
avoid future unexpected problem if the templates change.

The ":" are used to separate filters, and rejecting it in field name would ensure that there is no ambiguity.
2020-12-28 07:33:26 +01:00
Arthur Milchior
b2e0d0b968 Rejects field names starting with #, ^ and / 2020-12-28 06:23:49 +01:00
Arthur Milchior
ae489b1278 New field are stripped
Otherwise, you can rename "Back" to " Front" and then get unexpected result
2020-12-28 06:18:42 +01:00
Damien Elmes
7bda223999 Merge pull request #865 from hgiesel/configaction
Open AddonsDialog via dialog manager
2020-12-28 10:36:02 +10:00
Damien Elmes
680ded95f6 Merge pull request #862 from hgiesel/reviewerbottombuttons
Hide stats buttons in reviewer bottom bar, if window width is too small
2020-12-28 10:33:14 +10:00
Henrik Giesel
b7556281d0 Open AddonsDialog via dialog manager 2020-12-26 18:07:37 +01:00
Henrik Giesel
3db9dec76b Hide "Edit" and "More" buttons in reviewer bottom bar, if window width is too small 2020-12-26 15:50:32 +01:00
Damien Elmes
e7f82d926a winrt 1.0.20239.1 isn't available for python 3.9 2020-12-23 20:31:13 +10:00
RumovZ
f61cc9112d Norm search 2020-12-22 11:08:47 +01:00
Damien Elmes
d183ce85bf further decrease default q/a fade time 2020-12-22 13:02:07 +10:00
Damien Elmes
08b0c3aa5a add video driver enum; allow setting angle+software on mac in prefs 2020-12-22 13:01:06 +10:00
Damien Elmes
25160daa90 tag the wheels as manual so test ... doesn't build them 2020-12-21 19:28:47 +10:00
Damien Elmes
584f23cfe0 Merge pull request #859 from hgiesel/tabindex2
Consider removing special handling of Shift+Tab in Editor on macOS
2020-12-21 18:38:35 +10:00
Damien Elmes
147be1258d work around --text-fg ending up in fields
https://forums.ankiweb.net/t/strange-behaviour-in-the-html-editor/5796/4
2020-12-21 17:56:20 +10:00
Damien Elmes
e2ba0c3b1c .prettierrc needs to be in web/, as it's needed for sass as well 2020-12-21 17:05:31 +10:00
Henrik Giesel
8f3bf6ad3c Focus special handling of Shift+Tab on macOS 2020-12-21 08:00:47 +01:00
Damien Elmes
177764e065 add a small delay before terminating recording
https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824/12
2020-12-21 16:37:28 +10:00
Damien Elmes
9d71906d9f remove voice recording fixme 2020-12-21 16:13:32 +10:00
Damien Elmes
7f89750fde check formatting of .js files in aqt/data
mathjax.js did not match //ts:format output
2020-12-21 16:10:59 +10:00
Damien Elmes
5dcae09c5a link .prettierrc into qt/aqt/data/web/js
So automatic formatting in VS Code matches CI format
2020-12-21 16:09:06 +10:00
Damien Elmes
3ecd321dc3 ask users to report if PyAudio works better for them 2020-12-21 16:04:41 +10:00
Damien Elmes
5171633515 drop QtRecorder driver; rename existing 2020-12-21 15:02:22 +10:00
Damien Elmes
683ff0c02d fail gracefully in winrt voice list fails to load
If no voices are installed, get_all_voices() throws a "file not found"
error.
2020-12-21 14:29:14 +10:00
Damien Elmes
3abf1cf959 Merge pull request #857 from hgiesel/editorspan
Wrap field name in editor in a span
2020-12-21 12:16:22 +10:00
Henrik Giesel
a21636a1d7 Remove special treatment of empty fields in editor ts 2020-12-21 03:13:31 +01:00
Ryan Aird
7fc6dfae9c Make RT import statement conditional, fix formatting, ignore WinRT for type checking 2020-12-20 19:43:09 -06:00
Henrik Giesel
c6a082f120 Wrap field name in editor in span 2020-12-20 23:40:51 +01:00
Ryan Aird
78c4947298 Lower default rank for non-RT voices and restrict to Windows 10 October 2018 or greater 2020-12-19 20:10:23 -06:00
Ryan Aird
e7e028fdbb WinRT TTS API support 2020-12-19 19:29:34 -06:00
Damien Elmes
4111f9cea5 add winrt for TTS work
https://github.com/ankitects/anki/pull/855

Also update psutil version
2020-12-20 10:54:57 +10:00
Damien Elmes
407b7f7410 tweak naming and move method into col.decks 2020-12-20 10:26:16 +10:00
Damien Elmes
5e6f8f8345 Merge pull request #854 from k12ish/master
Add method `card_count_from_did()`
2020-12-20 10:17:25 +10:00
k12ish
5da867c88a Added type hints, renamed kwarg 2020-12-19 18:12:58 +00:00
k12ish
9dc01bace1 Added method 2020-12-19 17:59:07 +00:00
abdo
5f698b2b01 Strip isolation characters from app link
Reported in https://forums.ankiweb.net/t/bug-link-in-about-window/5894
2020-12-18 23:53:44 +03:00
Damien Elmes
c18927b7ff pin pyaudio and qtmultimedia 2020-12-18 19:57:19 +10:00
Damien Elmes
583e0ceca8 expose recording driver in preferences (at least for now) 2020-12-18 19:49:17 +10:00
Damien Elmes
a969046852 write .wav in background 2020-12-18 19:24:53 +10:00
Damien Elmes
e77211c636 leave iodevice alone after calling .stop()
Docs say it should not be accessed, and it fails on Linux.
2020-12-18 19:14:24 +10:00
Damien Elmes
9778ac8d80 experiment with lower-level QAudioInput
Allows us to discard the start of the recording like PyAudio, instead
of just muting it.
2020-12-18 18:59:10 +10:00
Damien Elmes
1aba818ccd add back pyaudio as an optional alternative 2020-12-18 16:52:00 +10:00
Damien Elmes
faf992643a exhaustiveness checks on literals are now possible with the move to py38 2020-12-18 16:50:55 +10:00
Damien Elmes
9038015f4f formatting fix 2020-12-18 10:27:32 +10:00
Damien Elmes
b13f6d4931 document ANKI_PROFILE_CODE and add bazel command to run snakeviz 2020-12-17 12:03:24 +10:00
Damien Elmes
555e638e7e explicitly set sample rate and channels
Windows sounds awful by default on a machine here.
2020-12-16 20:18:13 +10:00
Damien Elmes
eb5100d3c7 formatting & mypy fix 2020-12-16 19:51:46 +10:00
Damien Elmes
640e381081 update recording time more frequently; remove print statement 2020-12-16 19:45:08 +10:00
Damien Elmes
9f3659a1d3 use QtMultimedia for recording instead of PyAudio
The unmute-on-first-duration-change approach is to try to prevent
clicks/pops that can happen at the start of recordings. If it doesn't
solve the problem, we may need to drop down to the lower-level
QAudioInput().

Closes https://github.com/ankitects/help-wanted/issues/23

May fix https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824,
which I suspect was caused by processEvents()
2020-12-16 19:33:25 +10:00
Damien Elmes
9d1362d69e fix deprecation error on startup on Windows 2020-12-16 15:56:10 +10:00
Damien Elmes
6f5f0787d2 Merge pull request #850 from cecini/warn
fix float to int conversion DeprecationWarning
2020-12-16 15:40:35 +10:00
Damien Elmes
42f583f8a1 fix some warnings on startup 2020-12-16 15:38:24 +10:00
Damien Elmes
f37fcf950d ignore pickle.dumps() warning 2020-12-16 15:38:11 +10:00
Damien Elmes
5f424d1283 bump pickle proto to v4; change column type to blob 2020-12-16 15:38:07 +10:00
Damien Elmes
3778d343b1 don't catch DeprecationWarnings in the GUI 2020-12-16 14:25:11 +10:00
Damien Elmes
d75ef92a01 Merge pull request #851 from hgiesel/cardtypeprobs
Remove unicode isolation from card type names
2020-12-16 13:37:44 +10:00
Henrik Giesel
eb1ddefa42 Remove unicode isolation from card type names 2020-12-16 03:09:33 +01:00
Damien Elmes
5c93898e32 symlink generated .py/.pyi into tree to fix Python code completion 2020-12-16 11:36:42 +10:00
cecini
8be949e0d5 fix float to int conversion DeprecationWarning 2020-12-15 13:10:12 +00:00
Damien Elmes
5ab1b06ddb avoid distributing BUILD.bazel in js/vendor 2020-12-12 10:35:01 +10:00
Damien Elmes
f7b87bb716 minor doc updates 2020-12-11 22:37:12 +10:00
Damien Elmes
7a95d7e189 remove unwanted leading '/' in wheel records 2020-12-10 23:02:18 +10:00
Damien Elmes
51635ff7e4 simplify wheel building 2020-12-10 20:27:21 +10:00
Damien Elmes
256146703a set the minimum ease to 131% for now
https://forums.ankiweb.net/t/force-sync-triggers-2-1-34-ease-fixup-behaviour/5632/
2020-12-10 15:46:22 +10:00
Henrik Giesel
6fb80a78bf Switch back to fadeTo rather than fadeIn/fadeOut 2020-12-09 14:19:45 +01:00
Damien Elmes
5f9d4c1a65 tweak README in qt/linux 2020-12-07 11:54:54 +10:00
Damien Elmes
d799ffbe63 add explicit entry point to start Anki; update docs 2020-12-07 11:22:31 +10:00
L.M.Sherlock
6faad081ac Update about.py 2020-12-05 14:11:47 +08:00
Henrik Giesel
599cfb37a1 Fix fields_did_rename_field 2020-12-01 02:28:10 +01:00
Damien Elmes
e845424bc9 update sync status after profile open sync
https://forums.ankiweb.net/t/why-is-my-sync-button-blue/2078/15
2020-12-01 10:20:55 +10:00
Damien Elmes
19e6c9cb50 export mathjax.js 2020-11-30 15:15:37 +10:00
Damien Elmes
bf4a2998c7 update sync color at end of sync
https://forums.ankiweb.net/t/why-is-my-sync-button-blue/2078/13
2020-11-30 10:14:43 +10:00
Damien Elmes
892d349181 update about
https://forums.ankiweb.net/t/may-i-trouble-you-to-add-my-name-on-the-about-page/5433/2
2020-11-29 12:00:16 +10:00
abdo
a313ec2fe7 Fix UnboundLocalError in profiler code 2020-11-25 04:54:41 +03:00
Damien Elmes
6a1cf40dcd Merge branch 'master' into init-lang 2020-11-22 16:10:49 +10:00
Damien Elmes
68311500b3 update remaining python format strings to Fluent 2020-11-22 14:57:53 +10:00
abdo
d06a9137b6 Set up default language before loading profile
We can make more strings translatable this way.
2020-11-21 05:29:23 +03:00
Damien Elmes
0dee358839 remove make dependency in packaged Linux build 2020-11-20 19:33:40 +10:00
Damien Elmes
4043bd90bb Merge pull request #823 from RumovZ/rework-search-parser
Rework search parser
2020-11-20 16:22:12 +10:00
Damien Elmes
89491b8c12 Merge pull request #833 from abdnh/setdeflang-fix
Initialize translation system to default language on first run
2020-11-20 16:11:13 +10:00
abdo
97cead2bda Initialize translation system to default language on first run
The setlang screen was trying to use the translation system before
we initialize it.
2020-11-20 06:18:51 +03:00
abdo
702c5712e4 Fix description of exporters
Description broke yet again with the full migration to Fluent
2020-11-19 23:52:46 +03:00
abdo
caade20ad4 Strip isolation characters from more strings 2020-11-18 18:03:04 +03:00
Damien Elmes
679a4573aa quieten MathJax 2020-11-18 21:34:44 +10:00
RumovZ
f05e70a03e Merge branch 'master' into rework-search-parser
Conflicts:
    rslib/src/search/sqlwriter.rs
2020-11-18 09:04:04 +01:00
Damien Elmes
2f1d5cd38b move ftl into top level ftl/ folder; make it source of truth for aqt
This avoids the need to modify the external repo before new strings
can be used in aqt.
2020-11-18 16:20:58 +10:00
Damien Elmes
072b626535 formatting fix 2020-11-18 13:48:23 +10:00
Damien Elmes
d1a23fd65a fix browser updateTitle() 2020-11-18 13:40:21 +10:00
Damien Elmes
ebd1236ab0 strip out unused gettext refs 2020-11-18 13:22:51 +10:00
Damien Elmes
7e655614b2 fix remaining _() references; remove unused imports 2020-11-18 12:43:46 +10:00
Damien Elmes
b02badb224 update multi-line _() references 2020-11-18 11:32:22 +10:00
Damien Elmes
b9544ad210 more ngettext references 2020-11-18 10:52:13 +10:00
Damien Elmes
686b640e11 update some qt ngettext references 2020-11-18 09:22:27 +10:00
Damien Elmes
bd0919b7f1 update pylib ngettext references 2020-11-18 09:12:25 +10:00
Damien Elmes
dac8daf113 begin plural string migration 2020-11-17 23:29:08 +10:00
Damien Elmes
2feddb3d70 update temporary val="%s" references to standard ftl 2020-11-17 22:00:44 +10:00
Damien Elmes
8b11c2c451 update translations
add qt ftl strings from external repo
2020-11-17 20:11:06 +10:00
Damien Elmes
bdd642a7a8 update designer references 2020-11-17 19:55:18 +10:00
Damien Elmes
1781e83252 merge pylib references 2020-11-17 19:23:06 +10:00
Damien Elmes
767933e2f5 fix the preview shortcut references 2020-11-17 17:51:57 +10:00
Damien Elmes
066b1498ae merge bulk of qt/ - designer files still to do 2020-11-17 17:42:43 +10:00
Damien Elmes
d2e97d8332 add script to rewrite py files 2020-11-17 17:39:48 +10:00
Damien Elmes
39fe93be1f output strings into ftl files 2020-11-17 15:12:05 +10:00
Damien Elmes
83cbe0d412 map gettext strings to keys/modules for ftl conversion 2020-11-17 14:11:09 +10:00
Damien Elmes
f4d424788e Merge pull request #825 from hgiesel/mathjax3plus2
Switch from jQuery pre 3.0.0 pseudo promises to ES6 promises for ts hooks
2020-11-16 11:44:21 +10:00
Damien Elmes
e92848e0c2 Merge pull request #826 from abdnh/write-dupes-fix
Make dupe search operate on non-stripped text
2020-11-16 11:43:33 +10:00
abdo
35bfd20240 Make dupe search operate on non-stripped text
See https://github.com/ankitects/anki/pull/822/
2020-11-16 04:01:04 +03:00
Henrik Giesel
0d94016193 Switch from jQuery pre 3.0.0 pseudo promises to ES6 promises 2020-11-16 01:09:59 +01:00
Henrik Giesel
35b82bcd72 Satisfy formatter 2020-11-15 21:40:59 +01:00
Henrik Giesel
f498ae88dc Improve ts hooks to allow for asynchronous actions
* reviewer ts hooks may now return a promise, which are then waited upon with Promise.all
* this does not break old ts hooks, as Promise.all allows for non-Promises in its array
2020-11-15 21:16:06 +01:00
Henrik Giesel
d18653cf16 Include default MathJax packages
* by default load all the default tex-chtml packages, which additionally include:
  * require: using \require{package-name} to load a package
  * autoload: using a command from a different package automatically loads it
  * configmacros: allows for definition of predefined macros
2020-11-15 20:56:50 +01:00
Henrik Giesel
cc2ba7d07f Load require package in Mathjax 2020-11-15 13:58:51 +01:00
Damien Elmes
7f040cad0d Merge branch 'mathjax3' 2020-11-15 20:24:50 +10:00
Damien Elmes
896a1e44b1 add rule to copy mathjax from node_modules 2020-11-15 20:22:28 +10:00
Damien Elmes
da58bbaaa3 ignore incorrect clock in dev mode 2020-11-15 18:29:16 +10:00
RumovZ
8fc5d4c897 Update frontend search escapes to new parsing 2020-11-14 20:37:40 +01:00
Henrik Giesel
06bd0376b1 Remove @types/mathjax as it is for MathJax 2 2020-11-14 14:14:25 +01:00
Henrik Giesel
3ec4b0da3a Add moving MathJax3 into mathjax directory to build process 2020-11-14 14:14:25 +01:00
Henrik Giesel
6a29e0cd4d Rip out MathJax 2 and setup MathJax 3 environment 2020-11-14 14:14:25 +01:00
Henrik Giesel
839e6652dd Update MathJax2 config to MathJax3 config
Used: https://mathjax.github.io/MathJax-demos-web/convert-configuration/convert-configuration.html
2020-11-14 14:14:25 +01:00
Damien Elmes
a4af59fc4d format_fix -> format; rename svelte-check for consistency 2020-11-12 20:19:32 +10:00
Damien Elmes
ba5dc96a6b fix some unwanted leading space in i18n keys 2020-11-12 08:55:26 +10:00
Damien Elmes
0cb2b3f0c1 update qt/ to 3.8 as well 2020-11-11 21:37:36 +10:00
Damien Elmes
48d07b7541 sort merged po files 2020-11-11 21:18:41 +10:00
Damien Elmes
c62e6e61c2 update i18n scripts
- export updated .po files for consumption
- add a script to pull and push translations
2020-11-11 21:08:06 +10:00
Damien Elmes
5ab4cbfd63 prep for i18n updates
Update scripts will be split into separate repo
2020-11-11 16:18:28 +10:00
Damien Elmes
5f8df09271 add Makefile and README from packaged Linux version 2020-11-11 13:57:38 +10:00
Damien Elmes
fb21e89653 add pyqtwebengine to wheel deps and bump minimum required pyqt 2020-11-11 10:33:49 +10:00
Damien Elmes
ec74cf6730 handle packaged pylib buildinfo.txt; drop aqt buildinfo 2020-11-11 10:33:49 +10:00
Damien Elmes
8147c9996a Merge pull request #793 from nwwt/object-audio-tags-support
Audio & object tag support
2020-11-11 10:33:31 +10:00
Andreas Reis
776c46e23b Allow <audio> to play without user interaction in accordance to autoplay setting
Since 2018, Chromium by default requires at least one user interaction with a page in order for sound to play. That's not what an Anki user expects.

So this commit undoes this by setting the policy accordingly if the deck's settings have autoplay set, so that files in <audio> tags (if they further have the autoplay attribute set / are jscripted accordingly) are treated the same as ones in [sound:…] elements. OFC, it's obviously not a good idea to mix both on one card.

(AnkiDroid's WebView has already been unconditionally ignoring the requirement since forever.)
2020-11-10 14:53:45 +01:00
Andreas Reis
81d6d21ae3 cleanup / renames
・ soundRegexps →  sound_regexps

・ htmlRegexps →  html_media_regexps

・ HTML_TAGS →  HTML_MEDIA_TAGS

・ escapeImages →  escape_media_filenames + alias

・ strip_html_preserving_image_filenames →  strip_html_preserving_media_filenames
2020-11-10 14:53:04 +01:00
ianki
28ad68d490 Add hooks for filtering media. 2020-11-09 02:12:23 -08:00
Damien Elmes
27e14dc59e Merge pull request #814 from k12ish/master
Improve compatibility with graphics pad/touchscreen
2020-11-09 19:42:41 +10:00
Damien Elmes
b3db379655 Merge pull request #813 from RumovZ/fix-search-combos
Fix clicking filters with keyboard modifiers
2020-11-09 19:42:13 +10:00
k12ish
1ca0eb04bb Improve compatibility with graphics pad/touchscreen
When using anki with a graphics pad, text is often selected on accident. This snippet of CSS will fix that issue
2020-11-08 18:14:37 +00:00
RumovZ
7f9aa879b5 Fix clicking filters with keyboard modifiers 2020-11-08 11:05:11 +01:00
Damien Elmes
8cc6f338f5 fix missing QAudioDeviceInfo on macOS 2020-11-06 12:01:37 +10:00
Damien Elmes
5e3a4d2c88 Merge pull request #808 from sobjornstad/reposition-highlight
Start with default value in reposition spinbox selected
2020-11-06 11:09:15 +10:00
Damien Elmes
f128f0f79a fix aqt version requirement; use py3 instead of cp38 tag 2020-11-05 20:25:08 +10:00
Damien Elmes
338836ebb9 cleanups 2020-11-05 11:21:13 +10:00
Damien Elmes
d6e13ee28e fix tests on Linux 2020-11-04 21:39:41 +10:00
Damien Elmes
e4ba941cf1 move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00
Soren Bjornstad
e8b40ec7d5 start with default value in reposition text box highlighted
This saves a keystroke if you want to replace the default value. It's
hard to imagine a situation in which you would want to *prepend*
characters to the default value, as is the current behavior. If you want
to accept the default value, you can still hit enter or tab immediately.
2020-11-02 19:07:53 -06:00
Damien Elmes
9999ec8124 fix pywintypes issue when running tests on Windows 2020-11-02 21:36:01 +10:00
Damien Elmes
7c27c4b9a0 move backend.proto into rslib/ 2020-11-02 16:28:31 +10:00
Damien Elmes
a7f403f0b0 rspy -> pylib/rsbridge 2020-11-02 15:21:12 +10:00
Damien Elmes
99b20cbaa6 update CI 2020-11-01 16:33:40 +10:00
Damien Elmes
f9171eb3d3 remove old makefiles 2020-11-01 14:41:01 +10:00
Damien Elmes
e40be43843 always return str in aqt_data_folder() 2020-11-01 14:38:13 +10:00
Damien Elmes
ce3b08ac58 initial Bazel conversion
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:

- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00
Damien Elmes
4d861e4c95 Merge pull request #803 from RumovZ/fix-completer-focus
Work around Qt's focus bug (fix help-wanted#22)
2020-10-29 21:44:13 +10:00
Damien Elmes
fc46426951 Merge pull request #804 from hgiesel/mime
Set MIME type for javascript files
2020-10-29 20:54:03 +10:00
Henrik Giesel
3a4036d59d Set MIME type for javascript files 2020-10-26 23:32:38 +01:00
RumovZ
00a5a6ff33 Work around Qt's focus bug (fix help-wanted#22)
Manually hide the editor's completer popup before accepting a short cut which changes the focus widget. Thus, work around the bug in PyQt 5.15 where a QLineEdit with open QCompleter popup won't get notified about focus changes handled by the Main Window, leading to inconsistent focus.
2020-10-24 10:47:25 +02:00
abdo
96eadecdec Use replace instead of strip
https://github.com/ankitects/anki/pull/801
2020-10-22 15:21:30 +03:00
abdo
69da22a2b9 Strip double quotes from names
Strip double quotes from all kinds of names

https://github.com/ankitects/anki/pull/798
2020-10-21 21:48:49 +03:00
Damien Elmes
00a71b6499 Merge pull request #799 from hgiesel/cal
Introduce Browser.search_for and Browser.update_search
2020-10-21 21:31:21 +10:00
Damien Elmes
dff4849241 Merge pull request #798 from abdnh/escape-quotes-in-search
Escape double quotes in search
2020-10-21 21:28:51 +10:00
Damien Elmes
d32fd008c0 Merge pull request #797 from abdnh/importing-fix
Fix notes being imported to the wrong deck in some cases
2020-10-21 21:22:33 +10:00
Damien Elmes
75716d13ff Merge pull request #795 from abdnh/reviewer-cleanup
Set card to None in reviewer cleanup
2020-10-21 21:19:43 +10:00
Damien Elmes
1d330138cb Merge pull request #794 from abdnh/tagedit-enter-fix
Don't apply suggestion when no suggestion list is shown in tagedit
2020-10-21 21:19:05 +10:00
Damien Elmes
17de596fc1 Merge pull request #791 from abdnh/sidebar-context-menu
help-wanted#6: continue work on new browser sidebar (based on #590)
2020-10-21 21:13:32 +10:00
Henrik Giesel
ee34a3458c Turn update_search into its own method 2020-10-19 21:07:29 +02:00
Henrik Giesel
bd9fca786d Add search prompt for setupSearch 2020-10-19 20:57:19 +02:00
Henrik Giesel
634a6f04d1 Add uses of search_for 2020-10-19 20:51:36 +02:00
Henrik Giesel
ae26e2fc70 Add search_for method 2020-10-19 20:37:17 +02:00
abdo
0c7726f87e Escape double quotes in search 2020-10-19 01:06:41 +03:00
abdo
8f76fd5a39 Remove unused code 2020-10-15 16:14:14 +03:00
abdo
6e4d5453ac Save importing model in any case
https://forums.ankiweb.net/t/bug-notes-are-imported-to-the-wrong-deck-in-certain-cases/4318
2020-10-15 15:14:55 +03:00
abdo
d0aa8625b4 Set card to None in reviewer cleanup 2020-10-14 12:56:47 +03:00
abdo
51e5eba3fe Don't apply suggestion when no suggestion list is shown 2020-10-14 05:00:24 +03:00
Damien Elmes
74981145cf formatting fix
formatting fix
2020-10-14 10:35:57 +10:00
Damien Elmes
2c36fde269 Update __init__.py 2020-10-14 09:45:34 +10:00
Andreas Reis
4e35b1780d Add command-line argument to skip addons
Shift doesn't work for me occasionally, for whatever reason. So just add an -s to skip it that way.

(Also, update my github nick)
2020-10-14 01:31:07 +02:00
abdo
5463b13128 Fix typing warning 2020-10-12 11:01:15 +03:00
abdo
e0bbf38850 Do sidebar switch check in browser init
https://github.com/ankitects/help-wanted/issues/6#issuecomment-706880794
2020-10-12 10:28:21 +03:00
abdo
3d3e68ed7a Merge branch 'sidebar-context-menu' of https://github.com/abdnh/anki into sidebar-context-menu 2020-10-12 10:15:23 +03:00
Damien Elmes
874366fce7 formatting fix 2020-10-12 12:37:51 +10:00
Damien Elmes
362ebef832 Merge pull request #790 from hgiesel/fields
Add fields_did_rename_field and fields_did_remove_field hooks
2020-10-12 12:36:39 +10:00
Damien Elmes
b182c07a99 Merge pull request #789 from abdnh/editor-decode-urls
Decode pasted URLs for nicer display
2020-10-12 12:33:52 +10:00
Damien Elmes
089e48adac Merge branch 'master' into opus-audio 2020-10-12 12:32:43 +10:00
Damien Elmes
accffbd29a formatting fixes 2020-10-12 12:17:02 +10:00
Damien Elmes
597b81ebeb Merge pull request #782 from johan456789/patch-1
fix outdated help site
2020-10-12 12:15:46 +10:00
Henrik Giesel
0f09258e68 Add fields_did_rename_field and fields_did_remove_field hooks 2020-10-11 19:16:30 +02:00
abdo
9140c3597f Decode pasted URLs 2020-10-11 16:46:46 +03:00
Piotr Kubowicz
1add0e6c6b Add .opus as an audio extension
Wikimedia Commons has pronunciation recordings with .opus extension.
Anki is able to play such files, but until now adding them required
changing the extension to .ogg or some other supported one.

Also sort the audio extensions list.
2020-10-10 16:28:40 +02:00
Damien Elmes
909367efc1 fixes for latest mypy 2020-10-10 19:02:59 +10:00
abdo
401485834b Move new sidebar code to a separate file
- Move the new sidebar code and SidebarTreeView implementation to a
  new file. Old sidebar can be accessed with the shift key. The "new" sidebar
  doesn't add much for now.
- Make rename_deck work with subdecks
- Fix an issue when trying to open context menu over areas not populated
  with sidebar items
2020-10-10 04:42:49 +03:00
abdo
69f9543fda Merge commit 'refs/pull/590/head' of https://github.com/ankitects/anki into sidebar2 2020-10-10 04:11:54 +03:00
johan456789
0ebe5d14eb fix help url paths 2020-10-10 00:38:07 +08:00
johan456789
a5b452780e remove never used link 2020-10-10 00:07:34 +08:00
abdo
1b3b1e3329 Escape ampersands in note type names too 2020-10-07 15:26:32 +03:00
abdo
2e48b437eb Fix 'Filter' menu item in deck filters not working 2020-10-07 14:32:21 +03:00
abdo
2ebf8d5f0e Escape ampersands in filter menu
Fixes ankitects/help-wanted#20
2020-10-07 13:44:33 +03:00
Damien Elmes
53ceab9bd3 Merge pull request #778 from hgiesel/refocus
Always focus main web instead of bottom web in reviewer
2020-10-07 16:22:49 +10:00
Damien Elmes
515de117f4 add Gustavo Costa
A reminder that anyone who's contributed is welcome to send
a PR adding themselves!
2020-10-06 14:36:11 +10:00
Damien Elmes
8b0be88df5 fix invisible scrollbar in nightmode
vars.scss no longer contains the Qt theme definitions, so the
easiest solution was to duplicate the colour in this case
2020-10-06 14:35:21 +10:00
Henrik Giesel
5517e69f7e Have a "default" highlight, but naturally follow focus if focus is in container 2020-10-05 22:54:23 +02:00
Henrik Giesel
e7fe9b470f Give the focus on .focus element a red tint 2020-10-05 22:39:16 +02:00
Henrik Giesel
65f77ef44e Add focus class which mimics built-in focus 2020-10-05 22:18:46 +02:00
Damien Elmes
d3df6dd92a fix IndexError when switching notetypes
Closes #780
https://github.com/ankitects/anki/pull/780
2020-10-05 13:33:54 +10:00
Damien Elmes
0ed130b133 Merge pull request #781 from hgiesel/leftbtns
Refactor Buttons in editor and add editor_did_init_left_buttons gui_hook
2020-10-05 13:14:52 +10:00
Damien Elmes
28e00f487b Merge pull request #779 from david-allison-1/fix-sign-up-link
Fix "Sign Up" link location
2020-10-05 12:34:11 +10:00
Damien Elmes
bfd960af1a Merge pull request #777 from kelciour/mpv-anki-freeze-on-windows
Separate player for videos on Windows
2020-10-05 12:27:31 +10:00
Henrik Giesel
90572d1b7c Turn _class into rightside boolean flag 2020-10-04 23:03:37 +02:00
Henrik Giesel
b5b2a07a88 Refactor out theclass assignment 2020-10-04 22:51:34 +02:00
Henrik Giesel
716f8a103c Add editor_did_init_left_buttons gui_hook 2020-10-04 22:50:02 +02:00
Henrik Giesel
70b28b95a2 Make icon Optional explicitly in function signature 2020-10-04 22:42:28 +02:00
Henrik Giesel
b2d8db67f7 Rewrite so all editor toolbar buttons use _addButton 2020-10-04 22:41:18 +02:00