Henrik Giesel
3f3bd04f38
Add ephemeral card method
2021-02-02 16:38:21 +01:00
Damien Elmes
957e781484
add tag drag & drop support
2021-02-02 20:14:04 +10:00
Damien Elmes
9ef0a1e070
Merge pull request #968 from abdnh/sidebar-expand-matches
...
Expand sidebar match trees one level
2021-02-02 19:03:04 +10:00
Damien Elmes
c5704e6102
collapsed->expanded in other tag uses for consistency
2021-02-02 18:52:57 +10:00
Damien Elmes
e0a79b421b
return tags as a string list directly; we don't need usn or collapse state
2021-02-02 18:52:57 +10:00
Damien Elmes
5c25a71634
fix: slowdowns after import; hard to read popup
...
QTextEdit() will pin the CPU at 100% for seconds to minutes when
fed a large string to display - work around it by switching to
QPlainTextEdit().
Also strip HTML before showing the user - easier to read, and less
text to display. And turn off word wrap, as it makes it easier to skim,
and further reduces the work the widget needs to do.
https://forums.ankiweb.net/t/big-issue-where-anki-gets-slow-when-you-import-this-deck/7050
2021-02-02 15:49:47 +10:00
Damien Elmes
0697e197cb
update mypy and other Python deps
...
latest mypy_protobuf can no longer be run directly, so we need
to run a wrapper instead
2021-02-01 15:50:04 +10:00
Damien Elmes
39f253f125
always quote types in generated hooks
2021-02-01 08:36:33 +10:00
Damien Elmes
5114fde01c
add more typing, and enable checks for missing types for most of pylib
2021-01-31 21:38:36 +10:00
Damien Elmes
0fee5b5bfd
warn add-ons importing json from anki.utils; use stdout not stderr
2021-01-31 21:05:46 +10:00
Damien Elmes
37ffa66736
add some typehints, and remove some unused code
2021-01-31 20:56:21 +10:00
Damien Elmes
01fb95719f
make backend instance on col private
2021-01-31 18:56:16 +10:00
Damien Elmes
56a75c07dc
add public wrappers for remaining backend functions
2021-01-31 18:56:16 +10:00
Damien Elmes
c27fd93fbc
fix _backend files not getting format checked
2021-01-31 18:56:16 +10:00
Damien Elmes
27e605e9eb
move the remaining exports from _backend
2021-01-31 18:56:16 +10:00
Damien Elmes
e5f9e4c5e4
embed BuiltinSortKind
2021-01-31 18:56:16 +10:00
Damien Elmes
1b4106dbf0
embed kind enum in StockNoteType and remove prefix
2021-01-31 18:56:16 +10:00
Damien Elmes
7325d0e0d4
add back basic rsbackend.py for compatibility
2021-01-31 18:55:45 +10:00
Damien Elmes
ff19818097
remove template_legacy.py
2021-01-31 18:55:45 +10:00
Damien Elmes
ebfc9d1915
move rsbridge into _backend
2021-01-31 18:55:45 +10:00
Damien Elmes
a6be0f493b
start work on more clearly defining backend/protobuf boundaries
...
- anki._backend stores the protobuf files and rsbackend.py code
- pylib modules import protobuf messages directly from the
_pb2 files, and explicitly export any will be returned or consumed
by public pylib functions, so that calling code can import from pylib
- the "rsbackend" no longer imports and re-exports protobuf messages
- pylib can just consume them directly.
- move errors to errors.py
Still todo:
- rsbridge
- finishing the work on rsbackend, and check what we need to add
back to the original file location to avoid breaking add-ons
2021-01-31 18:55:45 +10:00
RumovZ
ea73d1f39d
Remove unused BackendNoteTypeID
2021-01-31 08:57:10 +01:00
Damien Elmes
9a697fd843
Merge branch 'more-backend-search' into main
2021-01-31 14:21:51 +10:00
Damien Elmes
5710e4bbd0
move drag/drop deck logic to backend
2021-01-31 13:46:31 +10:00
RumovZ
0374e8f4fe
Revert addition of pb.NoteIDs
2021-01-30 12:59:18 +01:00
RumovZ
8033cc6784
Remove redundant docstring
2021-01-30 10:37:46 +01:00
Damien Elmes
2f1bbd44d2
simplify nid/nids searches, and ditch helper function
...
- IdList could be re-used for a cids: search in the future if required.
- Embedding the message means it's easy to access from Python as
an attribute of SearchTerm.
2021-01-30 11:37:00 +10:00
Damien Elmes
f6f537e89f
simplify Dupe message and ditch helper function
...
Calling code doesn't need to know about the existence of such helpers;
it can just rely on code completion to discover the required arguments.
2021-01-30 11:10:26 +10:00
Damien Elmes
cf1e2a2c0d
export SearchTerm from collection.py, and avoid exporting embedded items
2021-01-30 11:01:11 +10:00
Damien Elmes
b34d128560
rename FilterToSearchIn in backend to match frontend
2021-01-30 10:54:21 +10:00
RumovZ
c7365abc9e
Refactor search_string() and FilterToSearchIn
...
See #955 .
2021-01-29 18:27:33 +01:00
Damien Elmes
34c53aafb4
add getter/setter for boolean config values
2021-01-29 21:03:19 +10:00
RumovZ
9cf02efd20
Use proper docstrings
2021-01-29 09:40:21 +01:00
RumovZ
12c97442c9
Rename filters added_in etc. to added_in_days
2021-01-29 09:38:13 +01:00
Damien Elmes
137679a1a1
remove unused set_all_config; expose .all_config().
2021-01-29 16:30:42 +10:00
RumovZ
df1d059128
Use backend filter for findDupes and handle excep.
2021-01-28 19:49:16 +01:00
RumovZ
d3d34bd9b3
Add backend filter for field name
2021-01-28 19:48:01 +01:00
RumovZ
cd9a3734c3
Use backend nid filter in browser
2021-01-28 16:21:56 +01:00
RumovZ
5af4b9f2a4
Add helper functions for search strings in col
2021-01-28 11:13:57 +01:00
Maksim Abramchuk
abd2f1a712
Remove unused variable
2021-01-26 21:37:16 +00:00
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
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
cf8cfcf97f
drop unused i686 references
...
https://forums.ankiweb.net/t/changing-ankis-build-system-to-bazel/4737/9
2020-12-09 15:45:01 +10:00
Damien Elmes
1315d8b3c1
update Rust deps incl. Pyo3
...
This includes the refcount bug fix from pyo3 0.12.4
2020-12-01 16:48:45 +10:00
Damien Elmes
00d7a99562
expose Gaelic in language selection
2020-11-30 14:44:29 +10:00
Damien Elmes
2f9ddadf2c
switch to workspace for Rust code
2020-11-24 18:41:03 +10: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