Commit graph

722 commits

Author SHA1 Message Date
Damien Elmes
08f6ec649c fix finished screen not showing when learning cards due later 2021-01-25 21:12:57 +10:00
Damien Elmes
a6a4c0032d Merge pull request #934 from hgiesel/graphprefs
Add GraphsPreferences API to graphs for setting persistent preferences
2021-01-23 21:24:41 +10:00
Damien Elmes
387be76c00 minor wording tweak: GraphsPreferences -> GraphPreferences 2021-01-23 20:47:45 +10:00
Damien Elmes
fd6465c460 refresh new/rev counts when fillNew/fillRev() fails
This was the behaviour before, but got lost when ._reset_counts() was
added. Also added the check back to schedv2:fillRev(), which also
appears to have gotten lost in the move to ._reset_counts()

Just a stop-gap fix until this code can get a proper rewrite.
2021-01-23 14:02:05 +10:00
Damien Elmes
6329824e25 remove "invalid current deck"
This should resolve itself when a user clicks on a deck.
2021-01-23 13:04:58 +10:00
Henrik Giesel
25eee0e704 Change the function name in genbackend.py 2021-01-22 20:05:28 +01:00
Henrik Giesel
1516f5c37e Add GraphsPreferences endpoint to backend 2021-01-22 13:13:48 +01:00
abdo
4dfaf06308 Use new backend filters in rename_tag() 2021-01-16 18:49:48 +03:00
abdo
112aa44c90 Merge branch 'master' of https://github.com/ankitects/anki into tagtree 2021-01-15 01:12:01 +03:00
abdo
53736b7b9d Pass escaped name to bulk_update in rename_tag 2021-01-14 18:38:46 +03:00
abdo
4911945b9b Refactor code for clearing unused tags and saving collapse state 2021-01-14 07:04:14 +03:00
RumovZ
895b3a0b6f Use backend to set dupe filter 2021-01-14 10:42:37 +10:00
Damien Elmes
6cc58451b1 add local sync server frontend 2021-01-13 11:42:00 +10:00
abdo
c423e8d7bb Merge branch 'master' of https://github.com/ankitects/anki into tagtree 2021-01-12 23:31:58 +03:00
Damien Elmes
48892e588b tidy up UTC offset handling/timing calculations
- use the TimestampSecs newtype instead of raw i64s
- use FixedOffset instead of a minutes_west offset
- check localOffset each time the timing is calculated, and set it
if it's stale - even for v1.
- check for and fix missing rollover when calculating timing
- stop explicitly passing localOffset in the sync/start call
2021-01-12 21:32:56 +10:00
Damien Elmes
5e34168f7f remove temporary sync/dbcheck logging 2021-01-12 18:47:08 +10:00
Damien Elmes
0accefcd94 drop basicCheck()
It can considerably slow down syncing on large collections
2021-01-12 18:47:08 +10:00
Damien Elmes
4b98ce0145 Merge pull request #917 from hgiesel/querynozero3
Coerce added/edited:0 to 1, Constrain rated:n to 1-365
2021-01-11 16:24:12 +10:00
Henrik Giesel
3d2fcb6215 Adjust pyblib test_find 2021-01-10 16:25:52 +01:00
RumovZ
3d93d440c9 Also add FilterToSearch to want_release_gil() 2021-01-10 11:31:00 +01:00
RumovZ
02837ebbef Use explicit wrapper functions to get filters 2021-01-09 16:48:47 +01:00
abdo
a17d309ed3 Move tag collapse method to the backend 2021-01-09 17:10:16 +03:00
abdo
a18227acc4 Do not check for missing tag parents at registration time 2021-01-09 17:10:16 +03:00
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
RumovZ
ad361e7a77 Provide ConcatSeparator through rsbackend.py 2021-01-07 17:48:30 +01:00
RumovZ
e563e4a19e Add writer functions to want_release_gil() 2021-01-07 13:09:00 +01:00
Damien Elmes
2b5ef0b9a8 fix qt/ pylints 2021-01-07 16:21:50 +10:00
Damien Elmes
f333c3332a Make orjson optional again
While 32 bit platform support is probably not going to come back,
this allows Anki to run on other architectures orjson doesn't support.
2021-01-07 09:44:40 +10:00
Damien Elmes
ceca13516b no need to log card resets when exporting 2021-01-05 11:11:37 +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
2e4434df4f add linux_arm64 platform 2020-12-29 18:40:39 +10:00
Damien Elmes
0d3b80abd7 Merge pull request #866 from guillem-palau-salva/master
Update consts.py
2020-12-29 10:15:42 +10:00
Damien Elmes
ff0382ce11 Merge pull request #872 from RumovZ/fix-deck-check
Fix deck check and thus blue sync arrow bug
2020-12-29 10:11:59 +10:00
RumovZ
b4fa13aa0e Fix deck check and thus blue snyc arrow bug
Cast col.decks.selected() to int so the return type fits the annotation.
Thus, fix the comparison in col.decks.select() which was leading to
a superfluous db modification and in turn to a false indication of a
necessary sync right after another one in certain cases.
2020-12-29 00:29:36 +01:00
Guillem Palau-Salvà
2b5a6be3fa Update consts.py
I notices that type 4 is added in the revlog when rescheduling. Reviews are logged as 0 time and type 4.
2020-12-27 01:02:32 +01:00
Damien Elmes
d222686755 update to stable pyo3 0.13 release 2020-12-23 10:08:38 +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
250a45d32e possible fix for sync button colour blue after sync
If the client's clock is behind AnkiWeb's, even by a few seconds,
we can end up with a situation where last_begin_at is updated after
the sync to a value less than the mtime we received from AnkiWeb,
causing the collection to be saved, which bumps the modtime.

Work around this by recording mtime at begin() time, and seeing if it
has changed in either direction.

Thanks to Rumo, who did the hard work looking into it:
https://forums.ankiweb.net/t/why-is-my-sync-button-blue/2078/21
2020-12-21 19:27:26 +10:00
Damien Elmes
407b7f7410 tweak naming and move method into col.decks 2020-12-20 10:26:16 +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
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
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
42f583f8a1 fix some warnings on startup 2020-12-16 15:38:24 +10:00
Damien Elmes
32a71c5418 remove conditional rsbackend_gen import
It causes PyCharm to think methods are missing on col.backend, and
should not be needed with the move to Bazel.
2020-12-16 13:30:54 +10:00
Damien Elmes
c28885d191 add type stub for _rsbridge to make PyCharm happy 2020-12-16 13:13:42 +10:00
Damien Elmes
5c93898e32 symlink generated .py/.pyi into tree to fix Python code completion 2020-12-16 11:36:42 +10:00
Damien Elmes
75a97d75ee add ability to specify an individual Python test 2020-12-16 10:40:29 +10:00