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
David Allison
94382867d0
Fix "Sign Up" link location
...
String states "Sign Up", but currently points to the "Sign In" screen: https://ankiweb.net/account/login
c8a6d81fde/rslib/ftl/sync.ftl (L38-L42)
2020-10-04 18:14:49 +01:00
Henrik Giesel
f7256569c5
Also focus main web instead of bottom web
2020-10-03 22:33:01 +02:00
kelciour
ec4bd071fe
Separate player for videos on Windows
...
https://forums.ankiweb.net/t/anki-crashes-because-of-mpv/3359/13
2020-10-03 22:53:17 +03:00
abdo
375a395ef5
Paste links as plain text in basic mode
2020-10-03 19:46:05 +03:00
Damien Elmes
05f8ae116a
Merge branch 'master' into fix-ui-scale
2020-10-03 09:44:04 +10:00
Akshara Balachandra
c5da91206b
fix: sizing issue with scale UI
...
Fixes ankitects/help-wanted#18 . Height of webview should be the height
of the contents inside it. Previously, scale factors increased fixed
height of the container webview, thus creating empty space (e.g.
at 200% scaling, height of webview was double the height of the inner
HTML page). Now height of webview is always the height of the contained
element.
2020-10-02 18:07:28 -04:00
abdo
a09a70fec2
Recognize ico files
...
Local icons were being pasted as normal links previously instead of
being enclosed in img tags.
2020-10-03 00:17:38 +03:00
Damien Elmes
2ed1507162
bump version
2020-10-02 10:22:21 +10:00
Damien Elmes
14885acc44
don't reschedule repeating timers that occur during progress
...
For things like updating the deck list, it makes no sense to do it
multiple times at the end of a long operation, and the once/second signal
timer was causing hundreds or thousands of 100ms timers to be created.
https://forums.ankiweb.net/t/anki-memory-usage/3842
2020-09-30 10:01:06 +10:00
Damien Elmes
722454bab1
Merge pull request #769 from abdnh/escape-sidebar-terms
...
Escape browser sidebar search terms
2020-09-27 16:06:10 +10:00
Damien Elmes
fa6ee12f47
fix links not opening externally after finishing
...
https://forums.ankiweb.net/t/anki-2-1-34-35-beta/3569/19
2020-09-27 14:36:55 +10:00
Damien Elmes
aefcdfa17f
backups no longer happen on each sync
...
https://forums.ankiweb.net/t/accidentally-deleted-backs-one-deck/3740/6
2020-09-27 12:59:51 +10:00
Damien Elmes
86e8df58ee
fix old content appearing when flagging
...
https://forums.ankiweb.net/t/very-specific-but-quite-consistent-bug-in-browser/3685
2020-09-27 12:31:25 +10:00
Damien Elmes
2cc4fad19a
fix import shortcut
...
https://forums.ankiweb.net/t/anki-2-1-34-35-beta/3569/21
2020-09-27 11:57:12 +10:00
abdo
9ff8aa4830
Escape sidebar search terms
2020-09-25 21:05:34 +03:00
abdo
7aaf22b0a2
Fix previewer not refreshing when selecting multiple cards in browser
2020-09-24 07:05:16 +03:00
Damien Elmes
88114b0662
Merge pull request #767 from abdnh/context-menu-copy-image
...
Allow copying of images using context menu
2020-09-24 10:57:13 +10:00
Damien Elmes
1a619073d7
bump version
2020-09-24 10:52:24 +10:00
abdo
b20e022097
Allow copying of images using context menu
2020-09-22 06:32:37 +03:00
Damien Elmes
b57d1ed08a
allow dragging of images in review screen again
...
when we were using webkit+file URLs, this deleted files from the
media folder! But we're behind a HTTP server now, so this should
be safe.
https://forums.ankiweb.net/t/no-longer-able-to-copy-latex-output/3128/5
originally disabled in
dd4bae6e8d
2020-09-22 10:29:53 +10:00
abdo
25c2eda7d2
'Show Both Sides' -> 'Back Side Only'
2020-09-20 19:31:00 +03:00
kelciour
401b1b43b2
Revert back to listening for idle callback
...
https://forums.ankiweb.net/t/anki-2-1-33-linux-audio-stops-working/3023
2020-09-16 09:25:18 +03:00
Damien Elmes
1b8d1303ca
Merge pull request #758 from hgiesel/synchook
...
Add sync_will_start and sync_did_finish hook
2020-09-15 21:20:46 +10:00
Henrik Giesel
5981cebb8e
Move sync_did_finish before reset
2020-09-15 13:06:11 +02:00
abdo
a410a1117a
Support extended drag & drop
2020-09-14 17:07:31 +03:00
Henrik Giesel
306424455c
Add some documentation to sync_did_finish hook
2020-09-14 13:18:16 +02:00
Henrik Giesel
52502fb1d3
Put sync_did_finish hook before after_sync because it might unload collection
2020-09-14 13:06:20 +02:00
Henrik Giesel
a685272e16
Add sync_will_start and sync_did_finish hook
2020-09-14 12:22:01 +02:00
Damien Elmes
32f5bc96a8
another showDupes fix from ANH
...
https://forums.ankiweb.net/t/show-duplicates-not-working/2883/10
2020-09-04 10:13:30 +10:00
Damien Elmes
a5955f0206
sound tags need filename html escaped
...
https://forums.ankiweb.net/t/unable-to-play-longer-audio-on-cards/1313/30
2020-09-04 09:36:38 +10:00
Damien Elmes
d81251676d
Revert "Merge pull request #749 from ANH25/editor-media-autoplay"
...
This reverts commit 373402ed0a , reversing
changes made to 35c59cb899 .
https://github.com/ankitects/anki/pull/749#issuecomment-686385112
2020-09-04 08:34:26 +10:00
Damien Elmes
bc60d233e5
rebuild_filtered_deck() and new_filtered()
2020-09-03 18:02:47 +10:00
Damien Elmes
6f7f5686e8
empty_filtered_deck()
2020-09-03 17:43:07 +10:00
Damien Elmes
f32d773e25
set_deck()
2020-09-03 17:42:46 +10:00
Damien Elmes
366c5c4774
log manual reschedule, but ignore the log entry in the stats
2020-09-02 17:56:23 +10:00
Damien Elmes
52425a9851
ensure background override works in night mode
2020-09-01 12:20:45 +10:00
Damien Elmes
9f51347e1e
move bury/suspend into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
a8f84c1264
formatting fixes for latest black
2020-09-01 10:24:38 +10:00
Damien Elmes
130f99fe44
fix some lints
2020-09-01 10:24:38 +10:00
Damien Elmes
fcf63205b6
add a hook to support extending external .html files
2020-09-01 10:24:38 +10:00
Damien Elmes
5536969f29
add load_ts_page() & avoid duplicate call
2020-09-01 10:24:38 +10:00
Damien Elmes
999b659c3a
reimplement congrats screen in Rust+Typescript
2020-09-01 10:24:38 +10:00
Damien Elmes
a629e1acf2
apply standard zoom and background to graphs; prevent FOUC
2020-09-01 10:24:38 +10:00
Damien Elmes
7d84954f53
use css vars for graph styling as well; base webview.scss off core.scss
2020-09-01 10:24:38 +10:00
Damien Elmes
3b1a4d029c
most of the .nightMode redefinitions are no longer required
2020-09-01 10:24:38 +10:00
Damien Elmes
2411e944e4
drop the old sass vars and define the properties directly
2020-09-01 10:24:38 +10:00
Damien Elmes
514409d86f
migrate the majority of the sass vars to css variables
...
Allows add-ons to easily override the theme, and allows us to apply
styling to elements outside of the normal document flow (like applying
the normal background colour to a position: fixed element).
2020-09-01 10:24:38 +10:00
Damien Elmes
a6aaaf8691
move _vars to outer ts folder
...
First step in sharing styling with graphs + future .html files
2020-09-01 10:24:38 +10:00
Henrik Giesel
87bcc39a77
Some minor reformatting to satisfy black
2020-08-31 13:50:59 +02:00
Henrik Giesel
f32dc05daf
Address broken translations and increase readibility of button insertion
2020-08-31 13:40:42 +02:00
Henrik Giesel
c87d60ea4c
Remove unnecessary import
2020-08-31 13:35:18 +02:00
Henrik Giesel
31b2d46247
Fix type signature: models is passed because it's a method
2020-08-31 13:35:18 +02:00
Henrik Giesel
b9e26ae052
Remove duplicated buttons
2020-08-31 13:35:18 +02:00
Henrik Giesel
2a4f0edfe7
Don't import models in gui_hooks to avoid circular import
2020-08-31 13:35:18 +02:00
Henrik Giesel
14a33cb2ce
Fix uninitialized buttons object
2020-08-31 13:35:18 +02:00
Henrik Giesel
6ee503742f
Add compiled hook model_did_init_buttons
2020-08-31 13:35:18 +02:00
Henrik Giesel
14f4380c2e
Add usage in models.py
2020-08-31 13:35:18 +02:00
Henrik Giesel
6d2f2282d2
Add gui_hook models_did_init_buttons
2020-08-31 13:35:01 +02:00
Henrik Giesel
a36a9ee3e0
Add unused add_button method
2020-08-31 13:33:59 +02:00
Damien Elmes
8729edffbb
update to latest black
2020-08-31 13:29:28 +10:00
Damien Elmes
aeca369c9b
update to latest isort, pylint and pytest
2020-08-31 12:05:36 +10:00
Damien Elmes
204db71586
fix new pylint raise-missing-from lint
2020-08-31 12:04:14 +10:00
Damien Elmes
0f24885581
Merge pull request #751 from ANH25/addon-config-editor-title
...
Remove unicode isolation markers from add-on config editor title
2020-08-31 11:10:44 +10:00
Damien Elmes
f3c6d565b0
bump version
2020-08-31 11:07:54 +10:00
ANH
ff4cb87433
remove unicode isolation markers from add-on config editor title
2020-08-31 00:35:17 +03:00
Damien Elmes
486ef03a0d
fix card.template() in card layout screen
...
https://forums.ankiweb.net/t/card-template-does-not-work-when-called-in-card-will-show-hook-in-template-editor/2798
2020-08-30 11:23:44 +10:00
Damien Elmes
1ae6eb1255
add some names to about screen
...
a reminder that anyone who's contributed is welcome - please just
send a PR adding yourself
2020-08-27 11:24:13 +10:00
Damien Elmes
373402ed0a
Merge pull request #749 from ANH25/editor-media-autoplay
...
Only autoplay added media when recording in editor
2020-08-27 10:37:42 +10:00
Damien Elmes
35c59cb899
Merge pull request #745 from ANH25/reviewer-context-menu-shortcut
...
add shortcut for reviewer context menu
2020-08-27 10:33:22 +10:00
ANH
063644a8f6
editor: only autoplay added media when recording
2020-08-26 14:49:19 +03:00
Damien Elmes
37fa80bbd6
Merge pull request #748 from ANH25/drag-and-drop
...
fix drag & drop issue when dropping things over existing content
2020-08-26 08:38:48 +10:00
Damien Elmes
a657310726
formatting
2020-08-26 08:36:08 +10:00
Damien Elmes
31f011b3a5
fix description in export screen (thanks to ANH)
...
https://forums.ankiweb.net/t/anki-2-1-31-exporting-display-bug/2669/3
2020-08-26 08:33:35 +10:00
Damien Elmes
ff10af10ac
bigger default window size
...
https://forums.ankiweb.net/t/increase-the-standard-window-size-so-all-buttons-are-visible/2613
2020-08-26 08:06:46 +10:00
Damien Elmes
2f6d816cdc
bump version
2020-08-26 08:05:45 +10:00
ANH
564f95c941
fix drag & drop issue when dropping things over existing content
2020-08-25 17:28:13 +03:00
Damien Elmes
52a7fa36cd
fix signup link
2020-08-25 13:29:02 +10:00
Damien Elmes
58c8609332
bump version
2020-08-24 11:28:22 +10:00
ANH
6d69a0ba4e
add shortcut for reviewer context menu
2020-08-23 17:46:47 +03:00
Damien Elmes
385a1c50fd
'cards' instead of 'notes' in export
...
thanks to hgiesel; closes #744
2020-08-23 13:48:20 +10:00
Damien Elmes
f9fe0504f0
fix formatting & lint
2020-08-21 12:36:18 +10:00
Damien Elmes
5adc3eff6f
Merge pull request #735 from brownbat/master
...
Add hook for initializing answer buttons
2020-08-21 12:34:14 +10:00
Damien Elmes
f936735114
fix formatting
2020-08-21 11:45:14 +10:00
Damien Elmes
1db1f71261
Merge pull request #742 from evandroforks/fix_ts_sass
...
Fix error reading scss;..\aqt_data\web: no such file or directory
2020-08-21 11:44:55 +10:00
evandrocoan
36a8eff311
Fix error reading scss;..\aqt_data\web: no such file or directory
...
Recently on my Windows, out of nowhere, it started throwing:
```
../../ts/node_modules/.bin/tsc --build
../../ts/node_modules/.bin/sass --no-source-map scss:..\\aqt_data\\web
Error reading scss;..\aqt_data\web: no such file or directory.
make: *** [Makefile:26: build] Error 66
```
2020-08-20 22:22:33 -03:00
Damien Elmes
d91b686df2
Merge pull request #740 from kelciour/mpv-restart-fix
...
Fix no sound after restarting mpv
2020-08-21 11:10:46 +10:00
Damien Elmes
54f8a7ded5
Add comment
2020-08-21 11:10:30 +10:00
kelciour
580e561805
Reset av_player.current_player after mpv restart
2020-08-21 02:17:21 +03:00
Damien Elmes
e5c4ad9c78
Merge pull request #739 from ANH25/add-custom-study-ftl
...
Add custom-study-must-rename-deck to Fluent
2020-08-21 08:56:17 +10:00
Thomas B
c94336bbf5
Remove conflict- Sequence type no longer needed
2020-08-20 10:34:08 -04:00
Thomas B
e7e67e0c87
Fix other docstring to match.
2020-08-20 10:33:46 -04:00
Thomas B
718fd2c44d
Clarify docstring
2020-08-20 10:30:31 -04:00
Damien Elmes
9393a33337
need to invalidate notetype cache on sync completion
...
basicCheck() was populating it on startup sync, leading to
https://forums.ankiweb.net/t/error-when-adding-a-new-note/1664
2020-08-20 15:35:23 +10:00
Damien Elmes
51ba6f6b31
fix find&replace getting too large
...
https://forums.ankiweb.net/t/bug-find-and-replace-dialog-displays-length-of-longest-string-in-dropdown-list/2469
2020-08-20 15:26:23 +10:00
Thomas B
3bcb7759d2
Add both Union and Sequence to typing import
...
Resolve conflict.
2020-08-19 16:19:15 -04:00
Thomas B
0450fde53a
Update gui_hooks.py
2020-08-19 16:15:56 -04:00
Thomas B
a54135c5ac
Fixing type hints
...
Matched all type hints, changed the original Sequence[] type hint for _answerButtonList() in reviewer.py on mypy's recommendation.
2020-08-19 16:15:49 -04:00
ANH
233e6abc55
add custom-study-must-rename-deck to Fluent
2020-08-19 18:27:14 +03:00
ANH
bfd08fa2be
work around editor freeze issue after external drag & drop
2020-08-19 18:14:07 +10:00
Thomas B
9cbf5e2251
Update as part of previous commit
2020-08-18 10:38:59 -04:00
Thomas B
8b95ab5441
Bugfix proposed filter post-testing
...
Mirrored filter more closely on _ReviewerWillAnswerCardFilter, including taking and returning the value to be modified.
2020-08-18 10:37:45 -04:00
Henrik Giesel
2de59074a3
Remove ResetReason.BrowserDeleteNote
2020-08-17 12:50:40 +02:00
Henrik Giesel
8a3f6d72c7
Merge branch 'master' into resethook
2020-08-17 12:39:09 +02:00
Damien Elmes
67148b1c8a
clear undo queue on sync
...
https://forums.ankiweb.net/t/ios-ipad-sync-failure-with-filtered-decks/1617/34
2020-08-17 20:09:07 +10:00
Damien Elmes
e573ed3eb6
close edit current window when card deleted
...
https://forums.ankiweb.net/t/bug-report-editor-updating-non-existing-card/2117
2020-08-17 20:07:48 +10:00
Damien Elmes
e856aa9952
fix duplicates not escaping html
...
https://forums.ankiweb.net/t/bug-report-showdupes-not-html-escaping-field-content/2167
2020-08-17 17:50:27 +10:00
Henrik Giesel
e613083018
Reorder gui_hooks imports
2020-08-16 23:34:24 +02:00
Henrik Giesel
a47cca75b2
Add Union import
2020-08-16 19:11:11 +02:00
Henrik Giesel
747c8532c2
Create ResetReason enum
2020-08-16 18:56:32 +02:00
Henrik Giesel
1f4e604e2b
Rename to should_require_reset
2020-08-16 18:56:32 +02:00
Henrik Giesel
7bb4df13d9
Reorder + make all parameters optional
2020-08-16 18:56:32 +02:00
Henrik Giesel
0b9d7b2cb8
Satisfy formatter
2020-08-16 18:56:32 +02:00
Henrik Giesel
4f37e6196b
Update signature of main_window_will_require_reset hook
2020-08-16 18:56:32 +02:00
Henrik Giesel
ea6eb2ba3b
Add new use of requireReset
2020-08-16 18:56:32 +02:00
Henrik Giesel
9044a4b96b
Insert gui_hook main_window_will_require_reset
...
* into AnkiQt.requireReset method
2020-08-16 18:56:32 +02:00
Henrik Giesel
28528fc3ec
Add main_window_will_require_reset hook
2020-08-16 18:56:32 +02:00
Thomas B
830ab9cedb
Add hook for initializing answer buttons
2020-08-14 13:52:20 -04:00
Arthur Milchior
e3e929fed2
Search_model has context
...
I have an add-on which allow to open multiple windows. So would like to know which browser has done the search. This
would allow me to have browser with various setting. In particular, I've an add-on which allow to show a single line by
note, and I would like for some browser to have this feature on and for some other to have this feature off.
2020-08-13 19:46:14 +02:00
Damien Elmes
2c500a1538
Merge pull request #732 from Arthur-Milchior/typing
...
Typing
2020-08-13 20:19:30 +10:00
Damien Elmes
90ad63cfa3
Merge pull request #730 from ANH25/rtl-editing
...
fix Ctrl+right/left handling in RTL fields
2020-08-13 20:09:51 +10:00
Damien Elmes
1dfe5b8165
remove RTL special case in cloze deletion
...
https://forums.ankiweb.net/t/erroneous-characters-added-to-rtl-cloze-deletions/2164
2020-08-13 19:11:48 +10:00
Arthur Milchior
110f4c664f
Any removed
2020-08-12 01:37:21 +02:00
Arthur Milchior
a74601a0f0
NF: childMapNode
2020-08-12 00:42:42 +02:00
ANH
8ee74a02b2
add modify to the Selection interface
2020-08-11 03:32:58 +03:00
ANH
a2227960c0
fix Ctrl+right/left handling in RTL fields
2020-08-11 03:09:03 +03:00
Damien Elmes
bf1ac7e4a9
Merge pull request #728 from hgiesel/mungehtml
...
Move "remove null bytes" and "reverse url formatting" functionality to editor_will_munge_html hook
2020-08-10 16:33:56 +10:00
Henrik Giesel
31916102ed
Add newlines
2020-08-09 11:16:19 +02:00
Henrik Giesel
6122b9ac53
Avoid extra assignment
2020-08-09 10:38:31 +02:00
Henrik Giesel
097538b061
Move reverse url quoting functionality to editor_will_munge_html hook
2020-08-09 10:37:38 +02:00
Henrik Giesel
612e38def3
Move remove null bytes functionality to editor_will_munge_html hook
2020-08-09 10:35:52 +02:00
Damien Elmes
d273f1b5b8
accept alternate strings file
2020-08-09 14:44:23 +10:00
Damien Elmes
ea2c5c6920
deauth -> log out
2020-08-09 14:44:03 +10:00
Damien Elmes
4629dd38fb
bump version
2020-08-09 13:44:59 +10:00
Damien Elmes
c79bb313f8
Merge pull request #727 from hgiesel/mungehtml
...
Add editor_will_munge_html hook
2020-08-09 13:38:39 +10:00
Damien Elmes
41c95c07b4
make sure to reset after deleting empty cards
...
https://anki.tenderapp.com/discussions/private/5067-anki-was-unable-to-open-your-file
2020-08-09 12:42:58 +10:00
Damien Elmes
c366f07e65
find/replace completer should be case sensitive
...
https://forums.ankiweb.net/t/bug-report-search-and-replace/2037
2020-08-09 12:10:34 +10:00
Henrik Giesel
b3b77ea3b3
Replace functionality of mungeHTML with call to new gui_hook
2020-08-08 23:59:01 +02:00
Henrik Giesel
7d1d20cbf4
Add editor_will_munge_html hook
2020-08-08 23:27:58 +02:00
ANH
eecff63aa1
add card layout save shortcut
2020-08-06 13:23:17 +03:00
Damien Elmes
c2c929d63f
avoid internal URLs in alert titlebar
...
https://forums.ankiweb.net/t/anki-stats-no-longer-displaying-invalid-data-found-please-use-check-database-to-fix-the-problem/1902
2020-08-06 09:50:12 +10:00
Damien Elmes
a2cbaa1ede
fix Windows packages failing to start
2020-08-06 09:05:26 +10:00
Damien Elmes
4a13ffbfcf
unnecessary f-string
2020-08-04 17:52:49 +10:00
Damien Elmes
d336ccd81a
catch duplicate keys
2020-08-04 11:52:19 +10:00
Damien Elmes
c1bff288b8
convert po string extraction to GUI app
2020-08-04 11:21:39 +10:00
Damien Elmes
1ec9f606ea
disable media get / posts when collection closed
...
https://forums.ankiweb.net/t/countdown-to-events-exams-addon-official-thread/1093/4?u=dae
2020-08-04 10:03:17 +10:00
Damien Elmes
c6b727f71a
fix preview options responding to enter key by default
2020-08-03 13:32:38 +10:00
Damien Elmes
065e829a45
fix mobile class emulation
...
should be set on html element
2020-08-03 13:32:10 +10:00
Damien Elmes
02c7a0e339
enable strict equality checks in mypy
...
Without it, the following code reports no problems:
def foo() -> int:
return 5
print(foo == 5)
2020-08-03 10:26:40 +10:00
Damien Elmes
6be12d6f90
fix automatic logout on auth failure not working
2020-08-03 10:24:49 +10:00
Damien Elmes
c14dc3ec38
check_untyped_defs can now be enabled globally for aqt
...
A big thanks to Matt and phwoo who put in most of the work to get
to this point.
2020-08-02 10:29:25 +10:00
Damien Elmes
c21cb89a93
fix untyped def issues in aqt/utils.py
2020-08-02 10:25:48 +10:00
Damien Elmes
5700d0c7a1
fix untyped def issues in aqt/mediasrv.py
2020-08-02 10:22:21 +10:00
Damien Elmes
1e05595e3a
fix untyped def issues in aqt/__init__.py
2020-08-02 10:22:08 +10:00
Damien Elmes
efd6d81ba9
Merge pull request #723 from phwoo/typehints-for-qt-addons
...
Typehints for qt addons
2020-08-02 10:08:48 +10:00
Fabian Wood
d8bce7731f
Fixed runtime error from changes in qt addons.py
...
Changes to meet returning of Iterable (rather than List), meant
returning a different variable, but that may not have been created.
Reverted, changing to return List.
2020-08-01 17:50:37 +10:00
Fabian Wood
00236ce253
Updated qt addons with more extensive typehints
2020-08-01 15:50:27 +10:00
Matt Krump
85ca0eff78
Turn on check_untyped_defs for aqt.progress
2020-07-31 21:00:08 -06:00
Matt Krump
411accc165
Turn on check_untyped_defs for aqt.main
2020-07-31 20:34:14 -06:00
Damien Elmes
f7eb3512a9
force stdout/stderr encoding to utf8
...
As a GUI app, Anki only uses these for debugging info, and we've been
bitten numerous times in the past by bugs caused by printing Unicode
when the console only supported ASCII. An ens var might have been
a better approach, but Pyinstaller does not support defining them before
Python is initialized from what I can tell.
Latest issue:
https://forums.ankiweb.net/t/crashing-anki-version-2-1-29-3f62c1f7/1650
2020-08-01 11:31:22 +10:00
Damien Elmes
684cf9732c
pass night mode into body_class() instead of changing globally
2020-07-31 14:47:17 +10:00
Damien Elmes
58d3127d3c
remove 'invert', as night mode is on when checkbox is on
2020-07-31 14:35:18 +10:00
Damien Elmes
9c2cb8bc2a
fix button display on Macs
2020-07-31 14:23:56 +10:00
Damien Elmes
b5c72ac201
Merge branch 'master' into master
2020-07-31 14:14:10 +10:00
Damien Elmes
d4d73a4a59
Merge branch 'master' into help-wanted-4-add-type-hints-6
2020-07-31 14:07:59 +10:00
Damien Elmes
ee428d7949
Merge pull request #719 from ANH25/reviewer-hooks
...
Add reviewer_will_play_question_sounds and reviewer_will_play_answer_sounds hooks
2020-07-31 14:06:28 +10:00
Damien Elmes
ae796a5edd
Merge pull request #718 from phwoo/typehints-for-qt-profiles
...
Added typehints for qt profiles
2020-07-31 14:04:29 +10:00
Damien Elmes
1bb256483c
i18n some card template strings
...
https://forums.ankiweb.net/t/untranslated-strings/1623
2020-07-31 13:33:41 +10:00
Damien Elmes
961789562e
refresh tag list after clearing unused
2020-07-31 13:33:41 +10:00
ANH
5d2cf10ee9
just forgot to regenerate gui_hooks.py to fix typo
2020-07-31 04:47:31 +03:00
ANH
9a768fc198
fix typo
2020-07-31 04:41:49 +03:00
Matt Krump
eef069f2b7
Turn on check_untyped_defs for aqt.emptycards
2020-07-30 18:43:57 -06:00
Matt Krump
1fe46438c0
Turn on check_untyped_defs for aqt.addons
2020-07-30 18:43:57 -06:00
Matt Krump
8feb2acbbf
Turn on check_untyped_defs for aqt.webview
2020-07-30 18:43:57 -06:00
ANH
0eb48d3603
document hooks
2020-07-31 03:06:13 +03:00
ANH
23d0008a6f
add reviewer_will_play_question_sounds and reviewer_will_play_answer_sounds hooks
2020-07-30 22:20:19 +03:00
ANH
2a5131a5d3
use 'Preview Settings' as a label for the new options button
2020-07-30 18:04:50 +03:00
Fabian Wood
4a7558f9be
Added typehints for qt profiles
...
* `Any` used for pickle methods, this could probably be improved
with some kind of Callable
* str used for self.base, though this may be a problem for
different OSes. Some type of os.PathLike might be good.
* Line 75, type ignored: mypy was complaining about no. of args,
and kwargs there didn't seem to be needed. Separate issue to test,
though.
2020-07-31 00:56:48 +10:00
ANH
393403ffbf
add night mode and mobile class toggles in card layout screen
2020-07-30 15:39:02 +03:00
Damien Elmes
3d947febab
Merge pull request #715 from phwoo/typehints-for-qt-modelchooser
...
Added typehints to qt/aqt/modelchooser.py, updated qt/mypy.ini
2020-07-30 17:00:58 +10:00
Damien Elmes
fb029d844b
Merge branch 'master' into add-type-hints-for-qt-models
2020-07-30 16:05:55 +10:00
Fabian Wood
b23129c3eb
added typehints to modelchooser, updated mypy.ini
2020-07-30 15:25:25 +10:00
Fabian Wood
f0dabf4570
added type hints to qt models
2020-07-30 13:28:52 +10:00
Adam Plaice
df9e22aef5
Re-add previously supported file extensions for media
...
(They had been removed in 6939d8ba5b ).
2020-07-29 15:08:33 +02:00
Damien Elmes
bb8127517f
Merge pull request #703 from ANH25/master
...
fix help-wanted#13
2020-07-29 14:14:57 +10:00
Damien Elmes
aca9f5232c
Merge branch 'master' into help-wanted-4-add-type-hints-5
2020-07-29 13:56:57 +10:00
Damien Elmes
55891fc8f7
clearer message when template error is preventing save
2020-07-29 12:53:03 +10:00
Matt Krump
d4511e3287
Turn on check_untyped_defs for aqt.exporting
2020-07-28 18:42:22 -06:00
Matt Krump
98d8e1c926
Turn on check_untyped_defs for aqt.editor
...
* Turn on check_untyped_defs for aqt.browser
* Add type hints
2020-07-28 18:42:22 -06:00
Damien Elmes
e1bfe68b9e
Merge pull request #706 from mkrump/help-wanted-4-add-type-hints-4
...
Turn on check_untyped_defs for aqt.taglimit, aqt.update and aqt.browser
2020-07-28 13:16:49 +10:00
Damien Elmes
d3653ab6d5
bump version
2020-07-28 12:59:56 +10:00
Damien Elmes
ee10fd9008
don't throw error on empty path
...
https://forums.ankiweb.net/t/anki-2-1-28-error-message-when-reviewing-cards/1439
2020-07-27 11:28:32 +10:00
Matt Krump
1317b9f2b5
Fix browser.py import sorting
2020-07-26 13:16:06 -06:00
Matt Krump
0d8979f05e
Cast set to list to fix mypy failure in browser.py
2020-07-26 13:00:06 -06:00
Damien Elmes
1d1f5e1afc
apply AltGr workaround on qt 5.14 as well
2020-07-26 10:13:53 +10:00
Matt Krump
f27d465d69
Turn on check_untyped_defs for aqt.browser
...
* Turn on check_untyped_defs for aqt.browser
* Add type hints to browser
2020-07-25 17:31:49 -06:00
Matt Krump
a389e3ca94
Turn on check_untyped_defs for aqt.update
...
* Turn on check_untyped_defs for aqt.update
2020-07-25 17:31:44 -06:00
Matt Krump
8d988d2b6f
Turn on check_untyped_defs for aqt.taglimit
...
* Add type hints taglimit
* Turn on check_untyped_defs for aqt.taglimit
2020-07-25 15:45:31 -06:00
ANH
9279d5e33d
Merge branch 'master' into master
2020-07-25 05:24:45 +03:00
Damien Elmes
6ad544cf62
Merge branch 'master' into help-wanted-4-add-type-hints-3
2020-07-25 11:43:46 +10:00
Matt Krump
e93ae88cdf
Add type hints to importing
...
* Add type hints to importing
* Turn on type checking for aqt.importing
2020-07-24 12:38:34 -06:00
Matt Krump
38651d6a4e
Add type hints to errors
...
* Add type hints to errors
* Turn on type checking for aqt.errors
2020-07-24 11:20:54 -06:00
Matt Krump
a88f935a8c
Add type hints to aqt.models
...
* Add type hints to aqt.models
* Turn on type checking for aqt.models
2020-07-24 10:59:45 -06:00
ANH
a777784a38
add missing string r flag
2020-07-24 09:18:05 +03:00
ANH
3ad5c866b3
formatting
2020-07-24 09:00:34 +03:00
ANH
3276cc2e5e
avoid string concatenation
2020-07-24 08:12:46 +03:00
Matt Krump
90457e5f20
Add type hints for apt.deckconf
...
* Add type hints for apt.deckconf
* Turn on check_untyped_defs for apt.deckconf
2020-07-23 21:53:12 -06:00
ANH
939f3c8dc7
fix ankitects/help-wanted#13
2020-07-24 06:00:55 +03:00
Damien Elmes
7e4b2ac4d9
fix lint issue in previewer, and drop unused code
...
No add-ons appear to be using the removed code, and Anki wasn't
using it either.
2020-07-24 12:18:37 +10:00
Damien Elmes
4dff66cd10
formatting and debug statement tweak
2020-07-24 11:57:37 +10:00
Damien Elmes
d8ff54c884
fix preview not updating on edit
...
https://forums.ankiweb.net/t/modification-and-preview/1331
2020-07-24 11:57:22 +10:00
Damien Elmes
5104c0fd1b
enable AltGr workaround by default
...
5.15.1 may still be another month away
2020-07-24 10:32:50 +10:00
Damien Elmes
d460549b8f
ask user to check db when graphs fail to load
2020-07-24 09:56:28 +10:00
Damien Elmes
538f399787
Merge pull request #702 from mkrump/help-wanted-4-add-type-hints
...
Add type hints for apt.dyndeckconf
2020-07-24 09:01:07 +10:00
Matt Krump
51e50c176b
Add type hints for apt.dyndeckconf
...
* Add type hints for apt.dyndeckconf
* Turn on check_untyped_defs for apt.dyndeckconf
2020-07-23 16:04:46 -06:00
kelciour
6f8585b98a
Add --no-autoload-files option to mpv
2020-07-23 14:28:47 +03:00
Damien Elmes
fd45d7e2ae
fix misaligned deck heading in RTL languages
...
https://forums.ankiweb.net/t/anki-2-1-29-beta/1220/2?u=dae
2020-07-22 11:00:39 +10:00
Damien Elmes
f33451f12f
fix pylint failing in CI
2020-07-21 16:16:34 +10:00
Damien Elmes
47a9b523f7
protect against exception on initial recording wait
2020-07-21 16:07:58 +10:00
Damien Elmes
7e78d12b99
bump version
2020-07-21 15:54:14 +10:00
Damien Elmes
d084898b92
trigger recording permission on newer macOS SDKs
2020-07-21 15:54:04 +10:00
Damien Elmes
1b0228c4fc
formatting
2020-07-21 14:17:56 +10:00
Damien Elmes
876f474b7d
apply rtl dir to webviews
...
https://forums.ankiweb.net/t/gui-problems-with-right-to-left-languages/1205
2020-07-21 11:52:25 +10:00
Damien Elmes
976d42cc90
full sync terminates media sync; start it again afterwards
...
https://forums.ankiweb.net/t/media-files-not-downloaded-in-first-full-sync-v2-1-28/1198/3
2020-07-21 11:26:41 +10:00
Damien Elmes
3ca4a882a1
Merge pull request #692 from Arthur-Milchior/remove_useles_variables
...
Remove useless variables
2020-07-20 11:35:40 +10:00
Damien Elmes
8fb3da2e27
split add-ons window title from menu bar action
...
https://anki.tenderapp.com/discussions/private/4781-print-mistake
2020-07-19 09:49:36 +10:00
Damien Elmes
2ed481c37a
catch SIGTERM, and respond more quickly
2020-07-18 11:26:04 +10:00
Arthur Milchior
71afb2b4d3
Remove useless variables
2020-07-17 08:38:48 +02:00
Damien Elmes
5f93eaaf8f
i18n downgrade&quit button
2020-07-17 15:06:14 +10:00
Damien Elmes
9a457266f4
Merge pull request #690 from glutanimate/stats-will-show-hooks
...
Add a couple of hooks to trigger add-on actions before showing stats
2020-07-17 14:38:41 +10:00
Glutanimate
7056765179
Fix type annotation for old stats dialog class
2020-07-17 03:08:09 +02:00
Glutanimate
b7c8374095
Add a couple of hooks to trigger add-on actions before showing stats
2020-07-16 21:48:46 +02:00
Glutanimate
a9334014d3
Make sure to set domDone to False before loading URLs
...
Fixes an issue where JS would be evaluated prematurely in views
directly loaded from URLs.
2020-07-16 19:56:57 +02:00
Damien Elmes
baed2d8fa5
formatting
2020-07-16 13:55:53 +10:00
Damien Elmes
e471497bd2
add platform version back into sync metadata
2020-07-16 10:12:41 +10:00
Damien Elmes
d598a76f4a
can't rely on stdout to handle unicode
2020-07-15 09:36:29 +10:00
Damien Elmes
c6f8854ec8
Revert "Added parameter/return types, fixed possible logic error and typo"
2020-07-13 21:25:44 +10:00
Damien Elmes
9a3a96e599
Merge pull request #686 from zerrs/master
...
Added parameter/return types, fixed possible logic error and typo
2020-07-13 21:25:16 +10:00
Damien Elmes
178a8fb29e
Update customstudy.py
2020-07-13 21:24:18 +10:00
Damien Elmes
35494414cc
Merge pull request #684 from flagist0/select-note-type-with-ctrl-plus-digit-key
...
Allow to choose note type from list by pressing ctrl + row number
2020-07-13 21:23:35 +10:00
Alexander Presnyakov
98238e1707
Don't call setCurrentRow if row didn't change
2020-07-13 12:33:36 +03:00
zzzz
f6c0560660
Added some return and parameter types in customstudy.py, also fixed a possible logic error in plus function and a small typo
2020-07-13 01:32:08 -04:00
kelciour
6ca239a247
Scroll media sync log to the last line
2020-07-13 03:06:44 +03:00
Alexander Presnyakov
3ccc6ce61a
Allow to choose note type from list by pressing ctrl + row number
2020-07-12 22:15:58 +03:00
Damien Elmes
4e1bc76596
mediasrv symlink fix
...
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/39
2020-07-11 10:53:41 +10:00
Glutanimate
ee8696cbf3
Add top_toolbar_did_redraw hook
...
Notifies add-ons of the top toolbar being redrawn
2020-07-10 17:38:40 +02:00
Damien Elmes
6e07ab64af
formatting
2020-07-07 13:28:30 +10:00
Damien Elmes
a2b4160d60
tidy up logging
2020-07-07 10:50:12 +10:00
Damien Elmes
c5f36ccf08
if webexports does not match, return 403
2020-07-07 10:50:03 +10:00
evandrocoan
af731fa739
Fix _addons/ URL prefix not being removed on Windows systems
...
Anki 2.1.28 Beta
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/26
> Did the requirements on how to expose resources on the internal server change? Because scripts, css files and the like, registered with setWebExports, do not work anymore with beta2.
> A look at the console shows the following for all resources:
> Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)
**\Anki2\addons21\someaddon\__init__.py**
```py
from aqt import mw
import aqt
# assuming add-on folder is named "test"
# and assuming a 'test.js' is in the same folder
addon_id = "someaddon"
port = mw.mediaServer.getPort()
mw.addonManager.setWebExports(addon_id, ".*\\.js$")
print("Hello")
aqt.editor._html += f"""
<script>
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://127.0.0.1:{port}/_addons/{addon_id}/test.js ';
document.body.appendChild(script);
</script>"""
```
2020-07-06 13:51:37 -03:00
Andreas Reis
3628011599
Always use standard QT color dialog on Linux
...
On Linux only Gnome uses its own color dialog, and it's inferior to QT's own: See the same issue @ https://github.com/OpenShot/openshot-qt/pull/2425
(This is/was visible only on some distributions' packaged versions of Anki, not via ./run.)
isLin check since QT on Windows already uses the default, whereas Mac's own picker seems superior (from what I can judge by screenshots).
2020-07-05 13:21:38 +02:00
Damien Elmes
85dd611b72
don't stuff mw into function objects
...
Using the global is preferable to fighting against mypy to insert mw
into a function object.
2020-07-03 10:55:29 +10:00
Damien Elmes
17f80e4a7a
port previous css workaround to flask
2020-07-03 10:40:23 +10:00
Damien Elmes
d1253bbfa0
Merge pull request #554 from evandroforks/fix_html5_media_support
...
Fixed HTML5 media tags
2020-07-03 10:25:43 +10:00
evandrocoan
f96e090b72
Replaced flask.Response by flask.make_response to simplify the
...
implementation and because make_response is preferred over Response
as it respects the server defined Response type.
2020-07-02 20:39:03 -03:00
evandrocoan
6c5311417f
Removed duplicated mediasrv.py security check and fixed invalid
...
command/path error message.
2020-07-02 20:39:03 -03:00
evandrocoan
2de914267b
Fix jest unit tests after merge
...
# Conflicts:
# qt/aqt/mediasrv.py
# qt/ts/src/ankimedia.ts
# qt/ts/src/reviewer-exceptions.test.ts
# qt/ts/src/reviewer.test.ts
# ts/package.json
2020-07-02 14:30:43 -03:00
evandrocoan
3ae83a0ec3
Replaced send_from_directory by send_file to simplify the code
2020-07-02 13:52:07 -03:00
evandrocoan
9bd8e494b3
Ensure protection against directory transversal
...
https://security.openstack.org/guidelines/dg_using-file-paths.html
2020-07-02 13:52:03 -03:00
evandrocoan
11183ac1f3
Fixed aqt/mediasrv.py:14: error: unused 'type: ignore' comment
...
from waitress.server import create_server # type: ignore
https://github.com/evandroforks/anki/runs/743801391#step:25:1129
2020-07-02 13:51:59 -03:00
evandrocoan
7033329012
Replaced the mediasrv.py SimpleHttp server by flask and waitress,
...
fixing HTML5 media support.
https://stackoverflow.com/questions/37044064/html-audio-cant-set-currenttime
https://stackoverflow.com/questions/21956683/enable-access-control-on-simple-http-server
https://stackoverflow.com/questions/5052635/what-is-relation-between-content-length-and-byte-ranges-in-http-1-1
https://stackoverflow.com/questions/16725907/google-app-engine-serving-mp3-for-audio-element-needs-content-range-header
I was trying to use HTML5 audio tag to display audios like:
```html
<audio id="elem_audio" src="myfile.mp3" controls></audio>
```

But the progress bar seek was not working. After researching, I found the problem was the HTML server not properly responding to the HTML5 header requests. The HTML server should respond to quite complicated things as 206 partial, properly handle keep-alive, provide media ranges and other HTTP headers: https://stackoverflow.com/questions/37044064/html-audio-cant-set-currenttime
To implement all these on the Simple HTTP server would be quite complicated. Then, instead, I imported the `flask` web server, which is quite simple and straight forward to use. Now, the back-end is using a secure complaint HTTP back-end:
1. https://palletsprojects.com/p/flask/
> Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks.
>
> Flask offers suggestions, but doesn't enforce any dependencies or project layout. It is up to the developer to choose the tools and libraries they want to use. There are many extensions provided by the community that make adding new functionality easy.
1. https://docs.pylonsproject.org/projects/waitress/en/latest/
> Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library. It runs on CPython on Unix and Windows under Python 2.7+ and Python 3.5+. It is also known to run on PyPy 1.6.0 on UNIX. It supports HTTP/1.0 and HTTP/1.1.
Right now, anki does not support fields passing file names directly to HTML audio tags, but this can be easily done with (https://github.com/ankitects/anki/pull 540 - Added arguments to the sound tag) plus the commit 826a97df61 , the HTML5 audio tag can be used like this:
```html
// Audio = [sound:myfile.mp3|onlyfilename]
<audio id="elem_audio" src="{{Audio}}" controls controlsList="nodownload"></audio>
```

# Conflicts:
# qt/aqt/mediasrv.py
2020-07-02 13:51:49 -03:00
Damien Elmes
f093acc0e8
dump error on profile load fail
...
may help diagnose
https://forums.ankiweb.net/t/i-couldnt-open-anki-resetting-corrupt-global/190
2020-07-02 10:35:01 +10:00
Damien Elmes
313b40f836
defer top toolbar drawing until after add-ons loaded
...
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/13
2020-07-02 10:23:14 +10:00
Damien Elmes
67cde145b1
add new strings to .po files as part of template update
...
Pontoon appears to only update existing gettext translations; it
won't add new ones on its own. Fixes
https://forums.ankiweb.net/t/anki-2-1-28-beta/629/6
2020-07-02 10:03:39 +10:00
Damien Elmes
a5e78485f4
fix scrollbars on fields on Windows/Linux
2020-07-02 09:51:50 +10:00
Damien Elmes
4e7ae0969f
formatting
2020-07-01 14:01:24 +10:00
Damien Elmes
c5ef40e5ec
don't allow table inside field to extend outside of field
...
https://anki.tenderapp.com/discussions/private/4498-adjust-textbox-geometry-in-add-note-window
2020-07-01 12:13:04 +10:00
Damien Elmes
ed4c74ca4d
add option to disable media syncing
...
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:35:24 +10:00
Damien Elmes
9bb45673a8
show clearer error when media db locked
...
should not happen frequently during a sync, but may happen during
the initial change checking stage
https://forums.ankiweb.net/t/error-when-adding-audio-file/495/2
2020-07-01 11:19:06 +10:00
Damien Elmes
c61f52d871
shift+click on the graphs button to access old graphs for now
2020-06-30 20:07:46 +10:00
Damien Elmes
6ad4111723
graphs now work in night mode
2020-06-30 16:23:46 +10:00
Damien Elmes
33317d41b3
update edited/changed column labels
...
https://github.com/ankitects/anki/pull/674/files
2020-06-29 18:34:03 +10:00
Damien Elmes
78fbaf7724
plug new graphs code into GUI
...
Still some work to do. Feedback welcome!
2020-06-29 15:53:56 +10:00
Damien Elmes
06d9f64dea
lint fixes
2020-06-29 15:53:56 +10:00
Damien Elmes
d3feb931ba
add option to webview to skip external browser open
2020-06-29 15:48:01 +10:00
Damien Elmes
94f75f0728
include generated js in aqt_data
2020-06-29 15:48:01 +10:00
Damien Elmes
349eca843b
get i18n working in typescript
2020-06-29 15:48:01 +10:00
Damien Elmes
0293f2220c
qt's js code now shares ts/node_modules; more graph work
2020-06-29 15:48:01 +10:00
Damien Elmes
27ac65418c
update qt ts to prettier 2.0
2020-06-29 15:48:01 +10:00
Damien Elmes
93e1b907ba
add top level component and pass search/day limit back from frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
1e9901e9bd
experiment with exposing raw card/revlog data to frontend
2020-06-29 15:48:00 +10:00
Damien Elmes
cfb76f8305
Merge pull request #675 from kelciour/mpv-changes-2
...
A few mpv changes 2
2020-06-29 15:47:09 +10:00
kelciour
66d69c3460
Fix "make check" by defining dummy _register_callbacks method in MPVBase
2020-06-27 13:07:46 +03:00
kelciour
39eec24c3d
Fix no sound after mpv restart
2020-06-27 03:46:40 +03:00
kelciour
7518597408
Replace mpv "idle" property with "end-file" event
2020-06-27 03:46:40 +03:00
kelciour
88103d29cf
Replace default mpv quit keybindings if mpv version is >= 0.30
...
4614d432a8
2020-06-27 03:46:40 +03:00
neitrinoweb
460ac4165d
add type hints
2020-06-25 17:27:52 +03:00
neitrinoweb
4d9fe86b3c
fix missing typing import
2020-06-25 16:53:24 +03:00
Damien Elmes
f38c9b4272
work around yet another qt bug
...
https://anki.tenderapp.com/discussions/beta-testing/2017-httpsforumsankiwebnettrestore-defaults-config-not-visually-updated420
2020-06-24 11:12:45 +10:00
Damien Elmes
3396dc3d18
remove the script-message commands that older mpv version don't support
...
https://github.com/ankitects/anki/pull/671#issuecomment-647798343
2020-06-23 14:30:42 +10:00
Damien Elmes
4d16dc243d
remove mpv keybindings on init
...
On a machine here, they cause the following error:
raise MPVCommandError("%r: %s" % (message["command"], e))
aqt.mpv.MPVCommandError: ['keybind', 'q', 'stop']: invalid parameter
2020-06-22 13:22:57 +10:00
Damien Elmes
8e73b77476
Merge pull request #671 from kelciour/mpv-changes
...
A few mpv changes
2020-06-22 12:12:58 +10:00
Damien Elmes
b43096c535
Merge pull request #670 from evandroforks/print_version
...
Create the command line argument -v/--version to print version
2020-06-22 12:06:18 +10:00
kelciour
fa635cfe17
Reset pause mode when switching to the next file
2020-06-20 02:04:35 +03:00
kelciour
1283e48603
Replace deprecated "idle" event with "idle-active" property
2020-06-20 02:04:35 +03:00
kelciour
ce3d3a3633
Disable OSC idle message
2020-06-20 02:04:34 +03:00
kelciour
ba9c4a5175
Replace default mpv "quit" keybindings with "stop"
...
https://github.com/mpv-player/mpv/blob/master/etc/input.conf
2020-06-20 02:04:34 +03:00
evandrocoan
5d166f990d
Create the command line argument -v/--version to print version
...
https://forums.ankiweb.net/t/i-couldnt-open-anki-resetting-corrupt-global/190
2020-06-19 13:13:10 -03:00
Arthur Milchior
7319ab8231
Strip name of added deck
...
There is currently what I believe to be a bug: create a deck " ".
The creation is accepted and the name is renamed to "blank". Instead,
I believe you'd want to strip the deck name before testing its
emptiness.
2020-06-17 11:58:33 +02:00
Damien Elmes
f5694a7e4a
migrate card stats to backend
...
Currently this renders the HTML directly like the previous Python
implementation - doing it in JS would probably make more sense in the
future.
2020-06-15 17:22:16 +10:00
Damien Elmes
fc99306d22
Merge pull request #667 from BlueGreenMagick/refresh-deck-list
...
refresh deck list when adding deck via deckchooser
2020-06-12 09:12:51 +10:00
Damien Elmes
e0e9b91b92
Merge pull request #666 from BlueGreenMagick/studydeck-name
...
get deck name after adding deck
2020-06-12 09:12:21 +10:00
Damien Elmes
91fb5c1658
Merge pull request #665 from BlueGreenMagick/remove-a-var
...
Add type hints to deckchooser
2020-06-12 09:11:54 +10:00
Damien Elmes
154ee7a962
remove ellipsis
2020-06-12 09:04:19 +10:00
BlueGreenMagick
c824d45b2e
add typehint to deckchooser.py
...
every occurunce of self.widget is type ignored
because QHBoxLayout has a method named widget
renaming this property will allow type hints
2020-06-11 14:19:36 +09:00
BlueGreenMagick
512a9afed6
refresh deck list when adding deck via deckchooser
2020-06-11 13:00:10 +09:00
BlueGreenMagick
5aa0addca2
get deck name after adding deck
2020-06-11 12:50:17 +09:00
BlueGreenMagick
d1b3897f86
remove self.deck set to mw.col as it isn't used
2020-06-11 11:59:27 +09:00
Quentin Nerden
a3e4449ec7
Update message to match gui
...
The Change Note Type... command is under the Notes menu, not the Edit menu
2020-06-09 11:49:47 +02:00
Damien Elmes
ef5f37efef
Merge pull request #650 from evandroforks/remember_last_inputs
...
Remember last inputs for Find and Replace and Duplicates Find
2020-06-09 14:43:58 +10:00
Damien Elmes
43fae1cede
Merge pull request #662 from gaul/screen/none
...
Handle None from QApplication.desktop().screen()
2020-06-09 14:42:59 +10:00
Damien Elmes
4e6dbd471c
Merge pull request #655 from Arthur-Milchior/history_line
...
History line
2020-06-09 14:42:45 +10:00
Damien Elmes
87fcaf9bfe
remove unused import
2020-06-09 14:14:12 +10:00
Damien Elmes
7a035a7bfa
formatting
2020-06-09 14:07:39 +10:00
Damien Elmes
6d7be475e6
catch invalid regex in search
...
https://github.com/ankitects/anki/pull/652
2020-06-09 11:46:07 +10:00
Damien Elmes
8d3b2aa88f
(un)escape image references in HTML editor to fix ampersand handling
...
https://anki.tenderapp.com/discussions/ankidesktop/41479-image-names-with-are-breaking
2020-06-09 11:22:07 +10:00
Andrew Gaul
00ca676df5
Handle None from QApplication.desktop().screen()
...
This prevents a crash when Anki is open for multiple days. Reference:
https://anki.tenderapp.com/discussions/ankidesktop/41879-qt-cannot-create-window-no-screens-available
2020-06-09 09:57:35 +09:00
Damien Elmes
446577d694
allow input.conf in Anki data folder
...
https://anki.tenderapp.com/discussions/beta-testing/1964-anki-2128-alpha#comment_48382756
2020-06-09 10:26:25 +10:00
Damien Elmes
d62ba1e713
fix mistaken qconnect replacement
2020-06-09 10:20:16 +10:00
Damien Elmes
62307a6651
fix 'NoneType' object has no attribute 'latest_progress'
...
https://anki.tenderapp.com/discussions/beta-testing/1964-anki-2128-alpha#comment_48382636
2020-06-09 09:07:41 +10:00
evandrocoan
66c9afa031
Moved the utils.py new save/restore functions together
2020-06-08 16:23:32 -03:00
evandrocoan
650d7ddb8b
Renamed save_combo_index to save_combo_index_for_session
2020-06-08 16:23:28 -03:00
Arthur Milchior
f9b0f6e7b3
hook: history_line
...
I expect to use this hook to create an add-on which will simply remove
the ",,". By ignoring empty fields I expect to make this easier to
use.
2020-06-08 20:47:01 +02:00
Damien Elmes
75471224fa
add progress to db check
2020-06-08 21:07:36 +10:00
evandrocoan
5949f2b7cc
Renamed new function on qt/aqt/utils.py to snake case
2020-06-08 01:35:31 -03:00
evandrocoan
a4aa0672e0
Created the profiles.py session attribute for things to forgot
...
each time Anki restarted and set to only fill the find and replace
dialogs when they were filled on the actual session.
2020-06-08 01:35:31 -03:00
evandrocoan
d2323e4448
Moved restoreComboHistory below saveComboHistory as others
2020-06-08 01:35:31 -03:00
evandrocoan
b351a41f6c
Set to browser.py finddupes.ui remember the last selected field
...
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
9dbbb65570
Added some type checking to utils.py QComboBox restore functions
...
# Conflicts:
# qt/aqt/utils.py
2020-06-08 01:35:31 -03:00
evandrocoan
efa8214d8f
Moved restoreComboHistory closer to restoreComboIndex on utils.py
2020-06-08 01:35:31 -03:00
evandrocoan
3c8d6eb802
Renamed setupComboBoxHistory to restoreComboHisotory,
...
saveComboActiveIndex to saveComboIndex, saveComboBoxHistory to
saveComboHistory and restoreComboActiveIndex to restoreComboIndex.
2020-06-08 01:35:31 -03:00
evandrocoan
bada70a7d6
Set to browser.py finddupes.ui remember the last search text
...
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
074be2bfb5
Set to browser.py findreplace.ui remember the last selected field
...
by creating saveComboActiveIndex and restoreComboActiveIndex.
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
7095eb41a2
Set to browser.py findreplace.ui remember the last regex/case
...
by creating the saveIsChecked and restoreIsChecked.
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
8c2cd37501
Created the setupComboBoxHistory and saveComboBoxHistory to remove
...
duplicated/common code.
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
fc4a3b85cf
Set to remember the last replace input for findreplace.ui
...
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
evandrocoan
c27c5a523d
Set to remember the last find input for findreplace.ui
...
https://anki.tenderapp.com/discussions/ankidesktop/39468-find-and-replace-does-not-remember-the-input-from-last-time
2020-06-08 01:35:31 -03:00
Damien Elmes
7f54af3d73
Merge pull request #660 from brownbat/tooltip-positioning
...
Update tooltip() in utils.py
2020-06-08 11:40:43 +10:00
Damien Elmes
919adf0d04
Merge pull request #659 from BlueGreenMagick/paste-typehint
...
add type hint to paste-related functions
2020-06-08 11:32:16 +10:00
Damien Elmes
3967dd9b78
Merge pull request #657 from BlueGreenMagick/prof-name
...
don't allow addons21 as profile name
2020-06-08 11:30:27 +10:00
Damien Elmes
2bb93e42c6
pin legacy modules
...
https://anki.tenderapp.com/discussions/ankidesktop/42248-potentially-serious-image-issue#comment_48388863
2020-06-08 11:12:51 +10:00
Thomas B
6bbddb9639
Update tooltip() in utils.py
...
Allow x,y offsets to be specified for tooltip(), useful for accomodating longer tooltips.
2020-06-07 16:06:23 -04:00
BlueGreenMagick
9029ea735c
add type hint to paste-related functions
2020-06-07 12:06:11 +09:00
BlueGreenMagick
1be62f8cc5
don't allow addons21 as profile name
...
because addons21 and profiles directory are stored in same directory
2020-06-05 22:44:59 +09:00
Damien Elmes
c5e65d02e1
add note/card removal to backend
2020-06-04 18:21:04 +10:00
Damien Elmes
80987a34ab
add .count() to hooks, and list->sequence in note deletion
2020-06-04 18:20:03 +10:00
evandrocoan
0ca8cd4e4d
Add missing quotes to typecheck-setup.sh for paths with spaces on
...
the name.
2020-06-02 21:37:58 -03:00
Damien Elmes
86689c5e77
more fixes for bundled Qt types
2020-06-03 09:55:30 +10:00
Damien Elmes
56d07fdc49
update qt version pin
2020-06-03 09:55:04 +10:00
Damien Elmes
4d9d51a2af
lint fixes
2020-06-02 17:58:14 +10:00
Damien Elmes
2b01c5c607
new stubs don't require as many ignores
2020-06-02 17:56:32 +10:00
Damien Elmes
7716e3b17e
Switch to PyQt 5.15's (slightly broken) built-in stubs
2020-06-02 17:52:18 +10:00
Damien Elmes
d2fd4bf39e
fix initial login
2020-06-02 15:10:58 +10:00
Damien Elmes
d0a498a564
save browser columns when changed, not on each browser close
2020-06-02 13:39:15 +10:00
Damien Elmes
d7a2e78c0b
change sync label to indicate sync state
...
- blue for normal sync, red for full sync required
- refactor status fetching code so we don't hold a collection lock
during the network request, which slows things down
- fix sync spinner restarting when returning to deck list
2020-06-02 13:23:01 +10:00
Damien Elmes
e8f33e1526
fix media sync progress not updating, and issues closing profile
2020-06-01 13:57:10 +10:00
Damien Elmes
4fb5b22726
make sure browser sidebar refreshes on reset()
...
if items are modified in a sync, the sidebar needs to reflect it
2020-06-01 13:57:10 +10:00
Damien Elmes
ad3082d1c8
handle aborting normal sync
...
- Use a separate abort handle, as the media sync is running
in the background and we need to be able to target them separately.
The current progress handling is going to need a rethink if we introduce
any other background tasks in the future.
- Roll back the transaction when interrupting.
2020-06-01 13:57:10 +10:00
Damien Elmes
da1e0527ca
report normal sync progress
...
Also:
- provide a way for the progress handler to skip the throttling so that
we can ensure progress is updated at the end of a stage
- show 'checking' at the end of full sync
2020-06-01 13:57:10 +10:00
Damien Elmes
d422b069de
lint fixes
2020-06-01 13:57:10 +10:00
Damien Elmes
f171f74dc3
unify sync error handling; handle interrupted
2020-06-01 13:57:10 +10:00
Damien Elmes
b552dfb986
add "immediate" progress back
...
on ops which we know are going to take time, it makes the interface
look more responsive to pop up the progress more quickly
2020-06-01 13:57:10 +10:00
Damien Elmes
9698cb4f22
update auto-sync code
2020-06-01 13:57:10 +10:00
Damien Elmes
03465173dd
show server message if present
2020-06-01 13:57:10 +10:00
Damien Elmes
bbc14b88e4
progress bar tweaks
2020-06-01 13:57:10 +10:00
Damien Elmes
0787381a99
login/full up/full down plugged in
2020-06-01 13:57:10 +10:00
Damien Elmes
aaed0464e5
rework progress handling
...
- client now polls status instead of backend pushing it
- supports multiple threads
- update throttling happens in one place
2020-06-01 13:57:10 +10:00
Damien Elmes
c4032c0176
another snapshot of sync work
...
progress handler is going to need to be reworked to function across
threads
2020-06-01 13:57:10 +10:00
Damien Elmes
f8e577367b
handle images served from directory + svg content type
...
https://anki.tenderapp.com/discussions/ankidesktop/41974-win-linux-when-pasting-some-html-i-get-error-in-_run_command-ankirsbackendioerror-ioerror
2020-06-01 13:40:17 +10:00
Damien Elmes
82e7451136
handle unicode hostnames
...
https://anki.tenderapp.com/discussions/ankidesktop/41915-something-wrong-and-i-cant-start-anki
2020-06-01 13:40:17 +10:00
evandrocoan
c336b70ea5
Set to also print the correct QT log message category
2020-05-31 19:38:02 -03:00
evandrocoan
b72aecee36
Print qt context if it exists
...
https://stackoverflow.com/questions/42561295/qt-error-is-printed-on-the-console-how-to-see-where-it-originates-from
https://stackoverflow.com/questions/35894171/redirect-qdebug-output-to-file-with-pyqt5
https://anki.tenderapp.com/discussions/ankidesktop/42070-anki-closes-without-warning-when-importing-conflicting-shared-deck
https://doc.qt.io/qt-5/qtglobal.html#qInstallMessageHandler
2020-05-31 19:38:02 -03:00
Damien Elmes
c172dd3826
add some more names to about.py
...
If you've contributed and are missing from the list, please send me
a PR!
2020-06-01 06:27:14 +10:00
Damien Elmes
d9a39b565f
Merge pull request #645 from evandroforks/resize_clayout_editor_and_preview
...
Allow to resize clayout.py horizontal space between the text editor and the card preview
2020-06-01 05:53:40 +10:00
evandrocoan
750ccc4bd7
Save and restore the debug console window geometry and splitter
2020-05-30 20:58:55 -03:00
evandrocoan
b6b5c37ab9
Add saveSplitter and restoreSplitter to clayout.py
...
# Conflicts:
# qt/aqt/clayout.py
2020-05-30 20:33:57 -03:00
evandrocoan
1d82fadaa0
Allow to resize clayout.py horizontal space between the text editor
...
and the card preview.
# Conflicts:
# qt/aqt/clayout.py
2020-05-30 20:33:10 -03:00
Damien Elmes
be6726b19f
Merge pull request #641 from glutanimate/add-main-window-did-init-hook
...
Add main_window_did_init hook
2020-05-29 08:56:47 +10:00
Damien Elmes
6b66dad3b6
Merge pull request #640 from evandroforks/fix_render_card_being_called_twice
...
Fixed previewer.py::render_card() being called twice in row
2020-05-29 08:48:35 +10:00
Damien Elmes
2b13ec5857
add maximize button to HTML editor
...
closes ankitects/help-wanted#1
2020-05-29 08:43:33 +10:00
Damien Elmes
32de1ee5f9
fix progress window not disappearing when importing csv
2020-05-29 08:40:25 +10:00
Glutanimate
96b3b29a6f
Add main_window_did_init hook and clarify difference to profile_did_open
2020-05-28 13:30:22 +02:00
evandrocoan
a34ecefc96
Fixed previewer.py::render_card() being called twice in row
...
Related to: https://github.com/ankitects/anki/pull 529
Ensuring "setNote" is called only once during changing of note type
After debugging the code, every time the cards changes, there are
two stacktraces generated and triggered when note cards change:
calling 1590591251.4621403
File "qt/runanki", line 4, in <module>
File "F:\anki\qt\aqt\__init__.py", line 365, in run
_run()
File "F:\anki\qt\aqt\__init__.py", line 515, in _run
app.exec()
File "F:\anki\qt\aqt\webview.py", line 467, in handler
cb(val)
File "F:\anki\qt\aqt\editor.py", line 477, in <lambda>
self.web.evalWithCallback("saveNow(%d)" % keepFocus, lambda res: callback())
File "F:\anki\qt\aqt\browser.py", line 858, in <lambda>
self.editor.saveNow(lambda: self._onRowChanged(current, previous))
File "F:\anki\qt\aqt\browser.py", line 880, in _onRowChanged
self._renderPreview(True)
File "F:\anki\qt\aqt\browser.py", line 1576, in _renderPreview
self._previewer.render_card(cardChanged)
File "F:\anki\qt\aqt\previewer.py", line 136, in render_card
print('calling', time.time(), "\n", "".join( traceback.format_stack() ) )
calling 1590591251.4766161
File "qt/runanki", line 4, in <module>
File "F:\anki\qt\aqt\__init__.py", line 365, in run
_run()
File "F:\anki\qt\aqt\__init__.py", line 515, in _run
app.exec()
File "F:\anki\qt\aqt\webview.py", line 467, in handler
cb(val)
File "F:\anki\qt\aqt\editor.py", line 453, in oncallback
gui_hooks.editor_did_load_note(self)
File "F:\anki\qt\aqt\gui_hooks.py", line 1168, in __call__
hook(editor)
File "F:\anki\qt\aqt\browser.py", line 887, in onLoadNote
self.refreshCurrentCard(editor.note)
File "F:\anki\qt\aqt\browser.py", line 884, in refreshCurrentCard
self._renderPreview(False)
File "F:\anki\qt\aqt\browser.py", line 1576, in _renderPreview
self._previewer.render_card(cardChanged)
File "F:\anki\qt\aqt\previewer.py", line 136, in render_card
print('calling', time.time(), "\n", "".join( traceback.format_stack() ) )
2020-05-27 14:41:07 -03:00
sandersantema
79cfe3914e
remove unused variable 'w' from '_onHtmlEdit'
2020-05-27 12:04:49 +02:00
sandersantema
94e6078fcd
add saveGeom and restoreGeom to htmlEditor
2020-05-27 12:04:00 +02:00
Damien Elmes
e40f507a87
Merge pull request #637 from BlueGreenMagick/field-drag-drop-fix
...
fix drag drop field repositioning
2020-05-27 10:24:07 +10:00
Damien Elmes
fa8a9499ce
Merge pull request #636 from BlueGreenMagick/typing-contextmenuevent
...
add evt type for contextMenuEvent method
2020-05-27 10:23:44 +10:00
Damien Elmes
4e23460bda
Merge pull request #635 from BlueGreenMagick/typing
...
add typehint for eventFilter method
2020-05-27 10:23:28 +10:00
Damien Elmes
833faf1e63
try mpv on Windows again
...
https://github.com/ankitects/anki/pull/621
2020-05-27 09:21:41 +10:00
Damien Elmes
eb49062617
apply mpv fix
...
c0d9544812
2020-05-27 09:19:20 +10:00
Damien Elmes
9e5dad86a8
fix typechecking breaking with latest mypy_protobuf
...
the change that caused it:
https://github.com/dropbox/mypy-protobuf/issues/118
This is more awkward to handle now, as the types are only available
at type-checking time. Python's static typing is such a mess :-(
2020-05-27 09:14:02 +10:00
BlueGreenMagick
26a8353664
do nothing if dropPos == idx
...
since such move won't change the field position
and when trying to move the field below itself
may lead to it being moved below the next field
2020-05-26 18:59:53 +09:00
BlueGreenMagick
3ee66375da
fix drag drop field repositioning
2020-05-26 18:27:38 +09:00
BlueGreenMagick
60501852c2
add evt type for contextMenuEvent method
2020-05-26 17:12:39 +09:00
BlueGreenMagick
b8f73fee2f
add typehint for eventFilter method
2020-05-26 17:08:55 +09:00
Damien Elmes
74d3b2ed41
allow hook to modify search text
2020-05-25 16:54:57 +10:00
Damien Elmes
5a790b4d35
Merge pull request #633 from hgiesel/dconf_hooks
...
Add three deck config hooks
2020-05-24 09:53:22 +10:00
Damien Elmes
e9fea26d1c
use keyword args for calls with more than one argument
2020-05-24 09:12:47 +10:00
Damien Elmes
bbcc566e6d
migrate the remaining methods
2020-05-24 08:36:50 +10:00
Henrik Giesel
91d7cd29b2
Satisfy black reformatter
2020-05-23 11:14:52 +02:00
Damien Elmes
927ed25b02
more methods
2020-05-23 14:01:36 +10:00
Henrik Giesel
ae57c6fbeb
Add three deck config hooks
...
- gui_hooks.deck_conf_did_add_config
- gui_hooks.deck_conf_will_remove_config
- gui_hooks.deck_conf_will_rename_config
2020-05-22 21:24:05 +02:00
Damien Elmes
d57ded706f
migrate more methods to service
2020-05-22 22:09:33 +10:00
Damien Elmes
a512cbfd5d
EMPTY_CARDS should not be translatable
2020-05-22 11:45:14 +10:00
Damien Elmes
7eff75f5f3
hook expected an int, not a str
2020-05-22 11:27:40 +10:00
Damien Elmes
b90d20a3c1
fix custom study not saving
2020-05-22 11:25:11 +10:00
Damien Elmes
7676748e6c
fix deletion of decks; allow deleting cards from default
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save#comment_48353232
2020-05-22 11:24:56 +10:00
Damien Elmes
d31f2d8c23
move deck/notetype update hooks to gui
...
We need to migrate away from firing hooks in libanki, since libanki
methods may be running on a background thread, and hook consumers
typically expect the code to run in the main thread. We could document
it, but it would frequently be forgotten about, and could lead to
crashes.
https://anki.tenderapp.com/discussions/ankidesktop/41748-qobject-cannot-create-children-for-a-parent-that-is-in-a-different-thread-when-hitting-the-save-button-on-clayoutpy-window
2020-05-22 10:47:14 +10:00
Damien Elmes
59d3473149
show 'changes saved' in parent window
2020-05-22 10:43:41 +10:00
Damien Elmes
dcbfa23eed
show message when search fails
2020-05-22 10:43:28 +10:00
Damien Elmes
40dc633d7f
monospace font in clayout
2020-05-22 09:58:20 +10:00
Damien Elmes
e5f32e2f4e
use context manager in retrieveURL
2020-05-21 10:58:42 +10:00
Damien Elmes
238ec0e4cb
clearer variable names in retrieveURL
2020-05-21 09:22:34 +10:00
Damien Elmes
32016bc02b
Merge pull request #630 from evandroforks/close_http_client_connections
...
Fixed HttpClient session not being closed
2020-05-21 09:17:07 +10:00
evandrocoan
fbfe611f03
Added missing Anki icon to debug window
2020-05-20 19:21:31 -03:00
evandrocoan
04dc65ef78
Fixed HttpClient session not being closed
2020-05-20 19:20:41 -03:00
Damien Elmes
0b04658920
fix shortcut keys in clayout
2020-05-21 07:51:35 +10:00
Damien Elmes
75570683db
left-align radio buttons in clayout
2020-05-20 19:56:53 +10:00
Damien Elmes
b3e8c63d65
update missed storage._Collection references
2020-05-20 19:45:46 +10:00
Damien Elmes
068cc43095
storage->collection
2020-05-20 17:58:28 +10:00
Damien Elmes
4f5fc9a63d
move storage logic into collection.py; fix export bug
...
https://anki.tenderapp.com/discussions/ankidesktop/41495-using-file-export-closes-the-collection-on-mwcoldb-if-the-browser-window-is-open
2020-05-20 17:43:34 +10:00
Damien Elmes
bac4232829
fix progress bar getting stuck on image paste
2020-05-20 16:12:41 +10:00
Damien Elmes
883d9a8851
deprecate removeTempNote()
2020-05-20 15:01:05 +10:00
Damien Elmes
1376c829db
fix HTML editor in add screen
2020-05-20 14:59:22 +10:00
Damien Elmes
96a4b65cb0
drop mw.weakref usage in models.py for now
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save
2020-05-20 13:53:34 +10:00
Damien Elmes
1e3080ebdc
update empty cards hook
...
Closes #515
2020-05-20 13:41:09 +10:00
Damien Elmes
7f011bd26f
tidy up Qt import
2020-05-20 13:38:55 +10:00
Damien Elmes
f27128418c
Merge pull request #625 from evandroforks/fixed_check_box_called_twice
...
Fixed clayout.py rendering the contents twice when clicked
2020-05-20 12:48:48 +10:00
Damien Elmes
bb9da63433
Merge pull request #626 from evandroforks/fix_previewer_button
...
Fixed previewer button not resetting the state when the preview
2020-05-20 12:48:17 +10:00
evandrocoan
0292bea4d1
Fixed clayout.py rendering the contents twice when clicked
...
https://stackoverflow.com/questions/36808257/pyqt-radiobutton-ischecked-is-executed-twice
2020-05-19 20:17:20 -03:00
evandrocoan
1261266a4b
Added missing Anki icon to qt/aqt/previewer.py
2020-05-19 19:43:18 -03:00
evandrocoan
b690a51a5c
Fixed previewer button not resetting the state when the preview
...
window is closed by its X button
2020-05-19 19:24:54 -03:00
evandrocoan
1faf7450e4
Explicitly close the importer file descriptor
...
https://github.com/ankitects/anki/pull 613
2020-05-18 15:54:20 -03:00
evandrocoan
4fe92bfc6b
Add missing close file descriptors using context managers
2020-05-18 15:54:20 -03:00
Damien Elmes
e8f0fd4d3b
simplify the migration popup
...
Avoid presenting the user with a wall of text they may not understand,
default to proceeding, and quit if the user cancels.
2020-05-18 20:15:59 +10:00
Damien Elmes
bcb71bbf2d
Merge pull request #610 from evandroforks/ask_confirmation_before_moving_anki_collection
...
Ask user confirmation before moving the Anki directory
2020-05-18 19:44:27 +10:00
Damien Elmes
b7489cdb75
Merge pull request #619 from evandroforks/fix_empty_sound_tags
...
Also fix legacy.py::anki.sound._soundReg accepting empty tags
2020-05-18 19:31:22 +10:00
Damien Elmes
349c5b378d
Merge pull request #620 from evandroforks/remove_unused_var
...
Remove unused t = time.time() variable on qt/aqt/browser.py
2020-05-18 19:20:08 +10:00
Damien Elmes
8a83eaebdc
fix python3.7 lint issue
2020-05-18 18:08:57 +10:00
Damien Elmes
3e156fdb49
bump version
2020-05-18 12:50:20 +10:00
Damien Elmes
6728da62c5
fix shared deck conf warning
2020-05-17 14:37:59 +10:00
Damien Elmes
ab97eaaf15
use deck tree for new/review count calculation
...
- wins back the performance lost by the decks and dconf not being
in memory, and the overhead of serializing data for DB calls
- card counts are no longer capped to 1000
- learn counts are currently still calculated separately - can't merge
v1 counts without changing the existing behaviour
- partially rendering the tree may yield more savings
2020-05-16 20:28:03 +10:00
Damien Elmes
f76b82d8ae
add find_deck_in_tree()
2020-05-16 13:05:20 +10:00
Damien Elmes
afdab1beef
save profile stats to file instead of generating report
...
Can use an external tool like snakeviz to query them after a run.
2020-05-16 12:53:01 +10:00
Damien Elmes
2183e16152
fix lint issues
2020-05-16 12:20:20 +10:00
Damien Elmes
875d638c29
fix+speed up deck list from Filters button
...
I don't think it makes much sense to keep these lists that largely
duplicate the sidebar functionality, but they remain for now.
2020-05-16 11:54:08 +10:00
Damien Elmes
c60229779c
switch to new deck tree in deck browser
...
Saves us having to look up collapsed/filtered as we render, and gives
us type completion.
2020-05-16 10:52:14 +10:00
Damien Elmes
6c3157a028
drop usage of nameMap in deckbrowser
...
It was unnecessary, and being called multiple times as we recursed
downwards, slowing things down.
2020-05-16 10:02:08 +10:00
Damien Elmes
6d4e98c13b
avoid duplicate reset in overview
2020-05-15 21:54:56 +10:00
Damien Elmes
cbfc9d5a87
handle default deck and filtered deck suppression in the backend
2020-05-15 21:21:10 +10:00
Damien Elmes
dc6471ad40
fetch stock notetypes from backend
2020-05-15 17:08:24 +10:00
Damien Elmes
fd9fc8701c
add back card deletion count
...
cheaper to look up now that there's an index on notes.mid
2020-05-15 15:28:07 +10:00
Damien Elmes
91e71ae044
show (Deck) when card hasn't been added
2020-05-15 15:01:28 +10:00
Damien Elmes
1769cef549
when previewing cards, use the default deck for now
...
Replay code needs to be able to retrieve deck options. We should
probably use the current deck or pass it in in the future.
2020-05-15 14:50:57 +10:00
Damien Elmes
548f266618
update replay suppression in clayout
2020-05-15 14:26:00 +10:00
Damien Elmes
6c4d6ad933
track changes in fields dialog as well
...
And avoid bumping schema until user actually saves, but warn at
start.
2020-05-15 13:59:44 +10:00
Damien Elmes
8b7ba99f6e
no longer need to check addNote's return value
2020-05-14 21:59:42 +10:00
Damien Elmes
8dcb7fd2ba
check for empty cloze cards when rendering as well
2020-05-14 21:56:45 +10:00
Damien Elmes
6dd31341f8
add "fill empty" checkbox
2020-05-14 20:58:45 +10:00
Damien Elmes
aed2eb2cc2
update Add Field button
2020-05-14 18:01:15 +10:00
Damien Elmes
4c52d41632
use group box instead of tabs in card layout screen
2020-05-14 17:26:40 +10:00
Damien Elmes
b2b33d9ad8
start reworking card layout screen
...
- front/back/css shown in tabs
- front/back preview switchable; only one webview needs to be loaded
- dropdown to select cloze number in preview
- search box to search in front/back/css
2020-05-14 15:24:29 +10:00
Damien Elmes
4a00ad075c
drop availOrds(), and use backend for getting cloze numbers
2020-05-14 12:14:00 +10:00
Damien Elmes
b08613e37d
remove obsolete preview code
2020-05-14 09:22:53 +10:00
Damien Elmes
257e893d95
update the card layout screen
...
- changes are now committed in bulk when closing the dialog,
and can be canceled
- it's not necessary to save the note to the database to preview it
- duplicate fields are now shown as duplicates in the top list
- redraw preview more quickly
- use + instead of _ when deduplicating names, as the latter is a
glob character
2020-05-13 17:24:49 +10:00
Damien Elmes
4815010da0
don't hide static template text when card is empty
2020-05-13 11:17:44 +10:00
evandrocoan
d113e85bc8
Remove unused t = time.time() variable on qt/aqt/browser.py
2020-05-12 15:09:22 -03:00
evandrocoan
e4ad1c80eb
Also fix legacy.py::anki.sound._soundReg accepting empty tags
2020-05-12 12:43:35 -03:00
Damien Elmes
21ac2c14a7
handle scheduling preferences in the backend
2020-05-12 21:13:34 +10:00
Damien Elmes
d7f9bccd1e
rewrite DB check
...
- notes with wrong field count are now recovered instead of
being deleted
- notes with missing note types are now recovered
- notes with missing cards are now recovered
- recover_missing_deck() still needs implementing
- checks required
2020-05-12 21:13:34 +10:00
Damien Elmes
667f9e6554
bulk tag add/remove/update; canonify on note save
...
also remove the tag list updated hook - we'll need a better solution in
the future than having the library code call back into the GUI code
2020-05-12 21:13:34 +10:00
Damien Elmes
0a87b1ef2c
support disabling unicode normalization in notes
2020-05-12 21:13:34 +10:00
Damien Elmes
866231f661
add pep8 name for findReplace
2020-05-12 21:13:34 +10:00
Damien Elmes
70e404b517
update extract-po-string to handle plurals again
2020-05-12 21:13:34 +10:00
Damien Elmes
8c04718541
update find&replace in browser
...
sadly the UI still stutters on large selections - the calls
to get the selected rows from Qt are really slow.
2020-05-12 21:13:34 +10:00
Damien Elmes
6b4a40f774
catch schema mod in background
...
If the schema confirmation dialog is shown on a background thread it
will crash the app, so we convert this to an assertion error that gets
caught by the error handler. Code still needs to be updated to modify
the schema prior to moving to the background, but at least this way
it doesn't crash.
2020-05-12 21:13:34 +10:00
Damien Elmes
b757d3db65
check untyped in clayout
2020-05-12 21:13:34 +10:00
Damien Elmes
1a6e28a05d
remove an unused import
2020-05-12 21:13:34 +10:00
Damien Elmes
2641862b56
update fields and models diags
...
- field changes are now applied when user closes dialog with save
button, in bulk
- models diag now fetches note type and saves it as required, instead
of holding on top a copy that can grow stale as changes are made in
subdialogs
- both dialogs now perform operations in the backend
- note.model() now fetches the note type on the fly, instead of
holding on to a copy that may become stale
2020-05-12 21:13:34 +10:00
Damien Elmes
a21e2abca0
add helper to run background task with progress
2020-05-12 21:13:34 +10:00
Damien Elmes
2b937acf29
reuse existing use count in note types screen
2020-05-12 21:13:33 +10:00
Damien Elmes
0bab292ff5
mypy/isort fixes
2020-05-12 21:13:33 +10:00
Damien Elmes
7ef72aba04
use the backend for the deck due tree
...
- approx 3x faster on a large test deck
- counts are no longer capped to 1000 in the tree
2020-05-12 21:13:33 +10:00
Damien Elmes
97e857a41c
add browserCollapsed as part of tree build
2020-05-12 21:13:33 +10:00
Damien Elmes
1d01418b21
fix mypy issues
2020-05-12 21:13:33 +10:00
Damien Elmes
13d23cd24b
speed up browser load by rendering deck tree in Rust and skipping counts
2020-05-12 21:13:33 +10:00
Damien Elmes
016fdd30ef
ensure collection doesn't get stuck open if loading fails
2020-05-12 21:13:33 +10:00
Damien Elmes
4aac9635fa
catch template errors, and start on discarding changes to fields/cards
...
This is only a first step - all the current methods that implicitly
save need to be updated.
2020-05-12 21:13:33 +10:00
Damien Elmes
d1cc4684d2
hook the empty cards code up to the GUI
2020-05-12 21:13:33 +10:00
Damien Elmes
6350e18680
hook up new note and note type handling
...
- notetypes are fetched from the DB as needed, and cached in Python
- handle note type changes in the backend. Multiple operations can now
be performed in one go, but this is not currently exposed in the GUI.
- extra methods to grab sorted note type names quickly, and fetch by
name
- col.models.save() without a provided notetype is now a no-op
- note loading/saving handled in the backend
- notes with no valid cards can now be added
- templates can now be deleted even if they would previously
orphan notes
a number of fixmes have been left in notes.py and models.py
2020-05-12 21:13:33 +10:00
Damien Elmes
e1642c7277
use quick check instead of full integrity check on collection close
2020-05-12 21:13:33 +10:00
Damien Elmes
8b7c474642
avoid installing pyaudio on every run
2020-05-12 21:10:21 +10:00
Damien Elmes
9762132f10
Merge pull request #611 from evandroforks/automatically_install_pyaudio_on_make_check
...
Automatically install pyaudio when running make check
2020-05-12 20:44:25 +10:00
Damien Elmes
27d2fb148a
bump version
2020-05-11 19:28:17 +10:00
Damien Elmes
76890191c5
Revert "use isolation characters instead of direction markers in cloze handling"
...
This reverts commit 79a50ffb91 .
Caused a regression:
https://anki.tenderapp.com/discussions/ankidesktop/41384-cloze-deletions-in-2125-and-2126
2020-05-11 19:25:49 +10:00
evandrocoan
008e5b5370
Set to restart Anki application after profile directory migration
...
Ask user confirmation before moving the Anki directory
https://github.com/ankitects/anki/pull 610
2020-05-10 18:30:58 -03:00
evandrocoan
6d07ad653b
Automatically install pyaudio when running make check
2020-05-09 13:26:42 -03:00
Damien Elmes
ece19da49a
avoid renaming completer_, as add-ons depend on it
2020-05-08 18:17:57 +10:00
Damien Elmes
cad3d9e74d
python formatting+lints
2020-05-08 17:30:27 +10:00
Damien Elmes
5557a13a85
stats area grouping box fix
...
https://anki.tenderapp.com/discussions/beta-testing/1928-cosmetic-issue
2020-05-08 16:03:29 +10:00
Damien Elmes
0cb4bb7a78
bundle socks
...
https://anki.tenderapp.com/discussions/ankidesktop/39801-sync-error
2020-05-08 15:26:19 +10:00
evandrocoan
cd15f96dcb
Keep an window open showing the migration is in progress
2020-05-07 15:03:43 -03:00
evandrocoan
1c1ee7ab72
Ask user confirmation before moving the Anki directory
...
https://anki.tenderapp.com/discussions/ankidesktop/41245-unwanted-file-movingdeleting-behavior
2020-05-07 14:59:19 -03:00
Damien Elmes
9ab0f7e2c8
avoid mention of pip
2020-05-05 16:30:22 +10:00
Damien Elmes
9c05ceb357
benchmark->profile, and remove from error branches
2020-05-05 16:28:49 +10:00
Damien Elmes
d2448fd957
Merge pull request #605 from evandroforks/benchmark_option
...
Created the --benchmark command line option
2020-05-05 16:23:00 +10:00
Damien Elmes
c463f1d40b
Merge pull request #608 from evandroforks/fix_missing_pyaudio_import
...
Fix missing pyaudio blocking Anki from running
2020-05-05 16:22:34 +10:00
evandrocoan
682da15862
Used showWarning asking the user to install pyaudio
2020-05-05 00:00:48 -03:00
evandrocoan
9ec62edb2f
Created the ANKI_RUN_BENCHMARK environment variable replacing
...
the command line argument.
2020-05-04 23:46:13 -03:00
evandrocoan
3d737f3329
Fixed profiler word misspelling and stopped trimming the output
2020-05-04 23:15:23 -03:00
Damien Elmes
367a174100
Merge pull request #607 from Arthur-Milchior/remove_a_try
...
Simplify the copying of field contents when resetting
2020-05-05 11:36:17 +10:00
Damien Elmes
56db996b5c
fix card layout screen on qt 5.9 regression ( #592 )
2020-05-05 11:26:13 +10:00
evandrocoan
73b2c5f45c
Fix missing pyaudio blocking Anki from running
...
https://github.com/ankitects/anki/pull 606
Remove pyaudio as mandatory dependency
2020-05-04 13:44:12 -03:00
Damien Elmes
51331db281
Merge pull request #580 from Arthur-Milchior/debug_diag
...
mw.debug_diag is the dialog and not the window
2020-05-04 14:07:15 +10:00
Damien Elmes
a2d02697a4
Merge pull request #584 from Arthur-Milchior/onModelchangeUsed
...
On modelchange used
2020-05-04 14:06:35 +10:00
Damien Elmes
673fe71c7d
Merge pull request #585 from Arthur-Milchior/addButtonSaveNewFunction
...
addButton always save function
2020-05-04 13:58:46 +10:00
Damien Elmes
519b581608
Merge pull request #606 from evandroforks/remove_pyaudio_as_dependency
...
Remove pyaudio as mandatory dependency
2020-05-04 13:37:19 +10:00
Damien Elmes
4d33b2d8f7
use qconnect everywhere, and fix some typing issues
...
a step towards check_untyped_defs in aqt, but there's still 100+
issues to resolve
2020-05-04 13:23:08 +10:00
Damien Elmes
5706cdfc2e
fix saving searches in browser
2020-05-04 12:26:50 +10:00
evandrocoan
0fb64bcf20
Remove pyaudio as mandatory dependency
...
Pyaudio on Windows is difficult to install and complicates things
when someone is using the wheels just for autocomletion on IDEs as
PyCharm:
https://anki.tenderapp.com/discussions/add-ons/44009-problems-with-code-completion
2020-05-03 23:05:38 -03:00
evandrocoan
8a516d8541
Created the --benchmark command line option
...
https://anki.tenderapp.com/discussions/ankidesktop/41106-card-audio-playback-changes-bug-in-212x
Based on the snippet: https://gist.github.com/evandrocoan/961d46e10424e53ba8946fac66e0efac
2020-05-03 20:34:43 -03:00
Arthur Milchior
6309df01f6
onModelChange: replacing try by if
2020-05-03 01:53:00 +02:00
Arthur Milchior
33455fdb6d
single try in onModelChange
2020-05-03 01:53:00 +02:00
Arthur Milchior
3b5f7f2dc5
onModelChange save note
...
I like the way onModelChange is done. Except that you forget to use
the note you computed.
2020-05-03 01:53:00 +02:00
Damien Elmes
c2223610f1
bump version
2020-05-02 10:22:00 +10:00
evandrocoan
3dfe228b3e
Add missing aqt and anki modules dependency requirements
2020-04-30 17:30:22 -03:00
Damien Elmes
8cab261062
fix deck confs not deleting
...
https://anki.tenderapp.com/discussions/ankidesktop/41044-bug-report-anki-2124-macos-deleting-unused-option-groups
2020-04-30 08:10:29 +10:00
BlueGreenMagick
7944ce135f
Set tab width to 4 spaces
...
setTabStopWidth is deprecated, and setTabStopDistance is preferred
It's not entirely accurate however, which you can see
when you compare 10 tabs and 40 spaces
2020-04-29 11:34:09 +09:00
BlueGreenMagick
62f32ae6bb
make mypy ignore signal.connect lines
2020-04-28 09:16:56 +09:00
BlueGreenMagick
f14e42354a
add deck rename context menu to sidebar
2020-04-28 09:16:56 +09:00
BlueGreenMagick
04ae6ea4d4
add context menu to SidebarTreeView
2020-04-28 09:16:56 +09:00
BlueGreenMagick
212a4aeb63
pass Browser to SidebarTreeView
2020-04-28 09:16:56 +09:00
BlueGreenMagick
29db73497f
Seperate SidebarTreeView class from Browser
2020-04-28 09:16:56 +09:00
BlueGreenMagick
b94ce1e1aa
pass to SidebarItem its type
...
removed 'for in list' as mypy does not correctly infer its types
2020-04-28 09:16:56 +09:00
Damien Elmes
91248aa8cf
bump version
2020-04-28 08:57:56 +10:00
Arthur Milchior
2721f88438
remove an useless asignment
...
Because fields of new notes are empty by default
2020-04-28 00:31:30 +02:00
Arthur Milchior
635c4bd27b
remove a try, for code clarity
2020-04-28 00:31:24 +02:00
Damien Elmes
6811a3dade
Revert "Merge pull request #583 from Arthur-Milchior/remove_a_try"
...
This reverts commit a248a58f7a , reversing
changes made to 858d470cdb .
2020-04-28 07:38:23 +10:00
Arthur Milchior
94c284724f
mw.debug_diag is the dialog and not the window
...
This will allow, for example, for add-ons to do self.debugDiag.text
and access the debugger text. I see very little reason to have a
direct access to the dialog window.
I should note that self.debugDiag is never used anywhere in the code,
so I think it should be deleted; unless you've heard of some add-on
using it.
2020-04-27 11:55:33 +02:00
Damien Elmes
a248a58f7a
Merge pull request #583 from Arthur-Milchior/remove_a_try
...
Simplify the code slightly
2020-04-27 19:12:00 +10:00
Damien Elmes
858d470cdb
Merge pull request #582 from evandroforks/fix_make_clean
...
Fixed make clean rule not working on Windows
2020-04-27 19:10:21 +10:00
Damien Elmes
8ca0b1581c
Merge pull request #581 from BlueGreenMagick/use-var-name
...
use variable names
2020-04-27 19:10:04 +10:00
Arthur Milchior
62ce1efd49
addButton always save function
2020-04-26 17:01:47 +02:00
Arthur Milchior
054f37f2b2
remove an useless asignment
...
Because fields of new notes are empty by default
2020-04-26 14:49:16 +02:00
Arthur Milchior
b5906ccef9
remove a try, for code clarity
2020-04-26 14:49:11 +02:00
BlueGreenMagick
b63b4fece1
use variable names
2020-04-26 15:47:19 +09:00
evandrocoan
e85c48298c
Fixed make clean rule not working on Windows
2020-04-26 03:02:02 -03:00
evandrocoan
be1904ba1d
Fixed build-mo-files not failing the build when msgmerge
...
is not found:
https://github.com/ankitects/anki/runs/617116053?check_suite_focus=true#step:27:1244
The build was not falling because when you do `(commands)` in a
shell script, the `set -e` directive is not inherited. Then, either
do not start a new shell or just use an if to test the error condition.
2020-04-25 05:17:24 -03:00
Damien Elmes
7159f477a6
Merge pull request #573 from evandroforks/printWidth100
...
Set .prettierrc printWidth to 88 because the default is too short
2020-04-23 20:01:58 +10:00
evandrocoan
18763ec8db
Set .prettierrc printWidth to 88 because the default is too short
2020-04-22 23:11:03 -03:00
Damien Elmes
14d067f56a
add selectable flag while preserving link clicking
...
https://anki.tenderapp.com/discussions/beta-testing/1920-config-can-copy-paste-but-cant-click-links-now
2020-04-21 09:11:56 +10:00
Damien Elmes
0c1b10162f
Revert "Merge pull request #562 from ijgnd/master"
...
This reverts commit 1163e418ee , reversing
changes made to 2bfff8dee4 .
https://anki.tenderapp.com/discussions/beta-testing/1920-config-can-copy-paste-but-cant-click-links-now
2020-04-21 09:10:45 +10:00
Damien Elmes
c9f18ba3d2
fix deleting deck configs
2020-04-20 13:23:05 +10:00
Damien Elmes
6f0159e141
fix renaming not updating dropdown
2020-04-20 13:17:55 +10:00
Damien Elmes
3dfbd1a9ae
fix adding deck configs
2020-04-20 13:15:23 +10:00
Damien Elmes
a90d75f5fd
Merge pull request #569 from evandroforks/limit_error_message_size
...
Also limit the size of the error message
2020-04-20 11:14:53 +10:00
Damien Elmes
f9302d9993
split scheduling prefs into separate tab
...
https://anki.tenderapp.com/discussions/ankidesktop/40610-windows-anki-everything-was-enlarged-to-150
https://anki.tenderapp.com/discussions/beta-testing/1916-preferences-screen-partly-invisible
2020-04-20 11:11:00 +10:00
evandrocoan
bed75b3980
Also limit the size of the error message in case it is
...
build by a concatenation of stack traces, i.e.,
```js
throw new Error(err + err.stack)
```
2020-04-17 16:28:31 -03:00
evandrocoan
4b3c452b6e
Limit the reviewer.ts stack size
...
https://anki.tenderapp.com/discussions/beta-testing/1918-reliably-reproduced-bug-in-2124beta6#comment_48247959
2020-04-17 03:53:15 -03:00
evandrocoan
8d9ba4377a
Cache webview.py console regex expression and disable multiline
2020-04-17 03:43:16 -03:00
Damien Elmes
09ac540168
fix delays caused by console.log regression in PR #560
...
https://anki.tenderapp.com/discussions/beta-testing/1918-reliably-reproduced-bug-in-2124beta6
2020-04-17 10:51:03 +10:00
Damien Elmes
78c1ced06a
Merge pull request #560 from evandroforks/fix_javascript_console_output
...
Fixed javaScriptConsoleMessage showing 'error on line'
2020-04-16 10:15:56 +10:00
Damien Elmes
1163e418ee
Merge pull request #562 from ijgnd/master
...
make help text selectable
2020-04-16 10:14:02 +10:00
Damien Elmes
d9b8aba358
catch and report issues when downgrading
2020-04-16 10:11:16 +10:00
Damien Elmes
a2c6a3e170
show a clearer error if the schema is too new
...
will hold off on making it translatable for now
2020-04-16 09:47:34 +10:00
Damien Elmes
a0587b09d1
downgrade manually
...
- A regular collection open/close no longer goes through the
upgrade/downgrade steps each time. This avoids wasted cycles, and will
become more important in the future when decks and note types are
split into separate tables.
- Added a downgrade button to the profiles screen to downgrade all
profiles and close the app.
- Downgrading is still automatic when exporting/doing a full sync.
2020-04-16 09:00:49 +10:00
Damien Elmes
18ae22c842
work around full sync on start closing the app
...
This is just a temporary solution until the syncing code can be
reworked.
https://anki.tenderapp.com/discussions/ankidesktop/39761-anki-crashing-after-sync-and-download
2020-04-16 08:10:17 +10:00
evandrocoan
2d84e8feee
Set to use a regular expression to remove the server name because
...
it is less prone to break in future updates.
2020-04-15 16:27:41 -03:00
evandrocoan
d5df05ae6b
Set to javaScriptConsoleMessage output to stdout because it
...
may raise error messages on the anki GUI.
2020-04-15 16:06:45 -03:00
ijgnd
9d076d00e0
make help text selectable
...
This allows the user to copy e.g. values so that they don't have to retype them which might introduce typos.
2020-04-15 18:59:04 +02:00
Damien Elmes
dd20337a85
don't write log files when exporting
2020-04-15 21:45:32 +10:00
Damien Elmes
41f469459e
pare back dark mode support
...
Anki now solely relies on the night mode setting in the preferences
to decide whether to show in light or dark mode. Some users wanted
to run Anki in light mode while keeping the rest of their system dark,
and there were various display problems when dark mode was changed
after Anki started that couldn't be easily worked around.
NSRequiresAquaAppearance is set again, which means we can rely on
the interface appearing properly and not changing as the macOS theme
is changed.
Users who only use dark mode, and preferred the native look of widgets
in dark mode, can achieve the previous appearance by running the
following command in the terminal:
defaults write net.ankiweb.dtop NSRequiresAquaSystemAppearance -bool no
And the following in the debug console:
mw.pm.meta["dark_mode_widgets"] = True
This is hidden behind a debug console command because it requires the
user ensure their system is always set to the same light/dark mode
as Anki.
2020-04-15 21:44:56 +10:00
Damien Elmes
b60aa9efb9
Merge pull request #559 from evandroforks/show_full_javascript_stacktrace
...
Set to show the JavaScript exception message and stacktrace
2020-04-15 18:51:16 +10:00
Damien Elmes
58ff377187
Merge pull request #557 from simgunz/fix-button-not-highlighted
...
Fix editor buttons not highlighted
2020-04-15 18:50:36 +10:00
Damien Elmes
a33a02f3de
update if a compatible branch is found, even if mtime is wrong
...
https://anki.tenderapp.com/discussions/ankiweb/4668-addon-auto-update-problems
2020-04-15 18:47:04 +10:00
evandrocoan
7226c40cce
Set to show the JavaScript exception message and stacktrace, when
...
a exception is throw, showing the function and lines from where
the exception/error is coming from.
https://stackoverflow.com/questions/591857/how-can-i-get-a-javascript-stack-trace-when-i-throw-an-exception
Exception example:
Invalid HTML on card: Error: The media element is missing its 'src' attribute.
at http://127.0.0.1:50233/_anki/reviewer.js:246:23
at http://127.0.0.1:50233/_anki/reviewer.js:112:9
at Array.forEach ()
at setAnkiMedia (http://127.0.0.1:50233/_anki/reviewer.js:111:11 )
at AnkiMediaQueue.setup (http://127.0.0.1:50233/_anki/reviewer.js:244:9 )
at eval (eval at (http://127.0.0.1:50233/_anki/jquery.js:2:2651 ), :2:11)
at eval ()
at http://127.0.0.1:50233/_anki/jquery.js:2:2651
at Function.globalEval (http://127.0.0.1:50233/_anki/jquery.js:2:2662 )
at Ha (http://127.0.0.1:50233/_anki/jquery.js:3:21262 )
2020-04-15 04:15:47 -03:00
evandrocoan
c0f5110843
Fixed javaScriptConsoleMessage showing 'error on line' for
...
all lines. The new output format is:
JS info /_anki/reviewer.js:166 autoadd
JS error /_anki/reviewer.js:240 Uncaught (in promise) NotAllowedError: play() can only be initiated by a user gesture.
2020-04-15 04:12:47 -03:00
Simone Gaiarin
1d4620ff74
Fix editor buttons not highlighted
...
The selector 'button.linkb' takes precedence on '.highlighted' because
it is more specific, so that '.highlighted' is never applied.
2020-04-14 19:04:03 +02:00
Damien Elmes
8dafa8bce5
move autoplay() into card
2020-04-13 09:04:30 +10:00
Damien Elmes
6bef493aa5
fix replay audio again, and decouple the code from the reviewer
2020-04-13 08:59:36 +10:00
Damien Elmes
79a50ffb91
use isolation characters instead of direction markers in cloze handling
...
https://anki.tenderapp.com/discussions/ankidesktop/40443-improper-location-of-c1foo-on-ltr-text-in-an-rtl-cloze-field
2020-04-13 08:34:17 +10:00
Damien Elmes
25789e14ef
avoid adjusting position if selected row is visible
...
https://anki.tenderapp.com/discussions/beta-testing/1868-anki-2124-beta#comment_48227037
2020-04-11 15:54:52 +10:00
Damien Elmes
4509a8c494
Merge pull request #550 from BlueGreenMagick/debugDiag-contextMenu
...
add clear actions to context menu in debug console
2020-04-11 14:19:46 +10:00
Damien Elmes
e1a0646d56
Update main.py
2020-04-11 14:19:27 +10:00
Damien Elmes
23c02f0a85
fix error when replaying audio in preview screen
2020-04-10 20:33:48 +10:00
Damien Elmes
c3f149ab94
make sure preview window is closed when browser closed
2020-04-10 20:32:48 +10:00
Damien Elmes
4da189a48c
grey out spinner if max=0
...
https://anki.tenderapp.com/discussions/ankidesktop/32710-custom-study
2020-04-10 20:32:48 +10:00
Damien Elmes
79bcba0e52
Merge pull request #549 from BlueGreenMagick/debug-resizable
...
Allow changing height of debug console text edit boxes
2020-04-10 19:46:13 +10:00
BlueGreenMagick
4b63d598af
add clear actions to context menu in debug console
2020-04-10 15:45:25 +09:00
BlueGreenMagick
2e44724e23
put debug textedits in a splitter
2020-04-10 13:50:09 +09:00
Damien Elmes
2723a03294
make sure progress stops when collection corrupt message shown
2020-04-09 14:19:20 +10:00
Damien Elmes
a1b1b7e428
fix deck_browser_did_render hook
2020-04-09 13:40:19 +10:00
Damien Elmes
896b798f12
Merge pull request #542 from BlueGreenMagick/addcards-cloze-warning
...
detect cloze cards with other filters
2020-04-08 16:30:00 +10:00
Damien Elmes
6f7b4191a3
Merge pull request #545 from BlueGreenMagick/draggable-field-pos
...
allow dragging fields to change its position
2020-04-08 16:22:27 +10:00
Damien Elmes
6fa53fa734
fix preview closing
...
https://anki.tenderapp.com/discussions/beta-testing/1868-anki-2124-beta#comment_48228480
2020-04-08 16:21:20 +10:00
Damien Elmes
83e988ce94
print exception on close
2020-04-08 10:05:33 +10:00
BlueGreenMagick
e7dba3709b
allow dragging fields to change its position
2020-04-07 16:42:33 +09:00
BlueGreenMagick
50ae0bed3f
use model type to detect cloze notes
2020-04-07 14:02:53 +09:00
Damien Elmes
f8f00f9d21
Merge pull request #543 from Arthur-Milchior/sort_according_to_path
...
Sort according to path
2020-04-07 14:44:53 +10:00
Damien Elmes
668bd25568
Merge pull request #541 from BlueGreenMagick/tmpNote-cloze
...
detect renamed cloze fields in note type preview
2020-04-07 14:17:44 +10:00
Damien Elmes
12e9293f60
avoid unnecessary work in 'make build'
2020-04-07 10:59:14 +10:00
BlueGreenMagick
e9929f84af
detect renamed cloze fields in note type preview
...
and cloze fields that is also other special field type
such as '{{cloze:hint:Text}}'
2020-04-07 08:56:54 +09:00
Arthur Milchior
d095b017e4
_basename to basename, since it's not private in use
2020-04-06 23:51:50 +02:00
Arthur Milchior
859178c113
_basename used where possible
2020-04-06 23:51:42 +02:00
Arthur Milchior
e6024d4d3d
replace _path by path (because it's not private here)
2020-04-06 23:50:43 +02:00
Arthur Milchior
8962194dcb
uses _path where possible
2020-04-06 23:50:37 +02:00
Arthur Milchior
7bef7ef8ec
Sort decks according to their paths
...
Currently it's sorted alphabetically. Because of this, "A::B" appears
between "A9" and "AA" in list of decks.
2020-04-06 22:49:25 +02:00
Damien Elmes
b5022ad354
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Damien Elmes
d5200974f8
omit period in steps when possible
2020-04-06 15:39:47 +10:00
Damien Elmes
3c7eabc51e
add flag to skip downgrade on collection close
...
Disabled for now; when enabled it will allow faster collection
open and close in the normal case, while continuing to downgrade
when exporting or doing a full sync.
Also, when downgrading is disabled, the journal mode is no longer
changed back to delete.
2020-04-04 17:21:45 +10:00
Damien Elmes
ac54f85840
update tag handling
...
- tag list stored in a separate DB table
- non-wildcard searches now do full unicode case folding
(eg tag:masse matches 'Maße')
- wildcard matches do simple unicode case folding
- some functions haven't been updated yet, so ascii folding will
continue to be used in some operations
2020-04-03 19:34:46 +10:00
Damien Elmes
07c414692e
preserve mtime/usn when syncing deck config, and add snake_case names
2020-04-03 19:34:46 +10:00
Damien Elmes
6a7a18126f
Merge pull request #537 from Arthur-Milchior/add_card_did_init
...
hook add_card_did_init
2020-04-03 19:34:33 +10:00
Arthur Milchior
952d943440
hook add_card_did_init
2020-04-03 11:03:08 +02:00
evandrocoan
b879c4a951
Fixed double python version check for python_requires=">=3.7"
2020-04-02 22:56:53 -03:00
evandrocoan
2cc12313dd
Deprecated sdist wheels and pyqtwebengine as dependency
2020-04-02 22:56:48 -03:00
evandrocoan
e613e0dcbd
Set the minimum python version required by anki on qt/setup.py
2020-04-02 22:56:44 -03:00
evandrocoan
7d1c5140a8
Set to build a source distribution instead of build distribution
...
for aqt on qt/Makefile, because .whl files are just zip simple
zip files and do not support dynamic versioning. Also, there is no
restriction for aqt to be shipped as source tarball because it does
not ship any binaries.
2020-04-02 22:56:37 -03:00
evandrocoan
745371f510
Fixed setup.py installing pyqtwebengine on older versions of pyqt
2020-04-02 22:56:33 -03:00
evandrocoan
4f591235c7
Set to checks.yml install and import anki wheels
...
# Conflicts:
# .github/workflows/checks.yml
2020-04-02 22:56:13 -03:00
Damien Elmes
1f64059897
add type checking to previewer
2020-04-03 09:13:33 +10:00
Damien Elmes
da55f82619
add missing license header
2020-04-03 09:05:32 +10:00
Damien Elmes
3f965f5534
use old name for preview dialog to avoid breaking add-ons
2020-04-03 09:00:18 +10:00
Damien Elmes
8eca40dab8
fix some errors in the previewing code
2020-04-03 09:00:08 +10:00
Damien Elmes
d7edbedac0
Merge pull request #535 from evandroforks/upload_wheels_to_pypi
...
Created the GitHub Actions step Upload to PyPi
2020-04-03 08:40:17 +10:00
Damien Elmes
3959f7dcb8
render() conflicts with Qt method
2020-04-03 08:29:35 +10:00
Damien Elmes
c74cf44e90
be explicit that the method is a no-op
2020-04-03 08:27:56 +10:00
Damien Elmes
62586f75d0
tweak wording
2020-04-03 08:27:26 +10:00
Arthur Milchior
ef0cbb3a79
snake case
2020-04-02 17:44:06 +02:00
Arthur Milchior
c9bd4b53a3
Previewer is a QDialog
...
As suggested by Glutanimate in https://github.com/ankitects/anki/pull/532#discussion_r401256921
2020-04-02 17:44:06 +02:00
Arthur Milchior
391fd69061
Previewer: parent become private
...
It seems parent is a method of QDialog, so it creates a typing problem
2020-04-02 17:44:06 +02:00
Arthur Milchior
2eed489792
Methods used by browser are not public
...
As suggested by Glutanimate on https://github.com/ankitects/anki/pull/532#discussion_r401254100
2020-04-02 17:44:06 +02:00
Arthur Milchior
d85c8288f6
remove the word preview from previewer variable
...
As suggested by glutanimate https://github.com/ankitects/anki/pull/532#discussion_r401255290
2020-04-02 17:44:06 +02:00
Arthur Milchior
be66a0f1cd
removing PreviewDialog dataclass
...
It can be replaced by the previewer itself. As suggested by
Glutanimate https://github.com/ankitects/anki/pull/532#discussion_r401252970
2020-04-02 17:44:06 +02:00
Arthur Milchior
1ee6bcbdcb
PreviewerListCards can take cids and class
...
This allow to avoid recomputing a card if it is known, while allowing
to compute it until it's actually displayed
2020-04-02 17:44:06 +02:00
Arthur Milchior
7bf2631ea8
ListCardsPreviewer
2020-04-02 17:44:06 +02:00
Arthur Milchior
09a4a5307f
Split PreviewerBrowser into a hierarchy
...
A part in common to see multiple cards. And a part specific for the browser
2020-04-02 17:44:06 +02:00
Arthur Milchior
b5b6786f95
split onPreview Prev/Next
2020-04-02 17:44:06 +02:00
Arthur Milchior
8bb2b037ef
split _updatePreviewButtons
...
This will allow to create a hierarchy in this class
2020-04-02 17:44:06 +02:00
Arthur Milchior
cad44bb899
add a class to preview a single card
2020-04-02 17:44:06 +02:00
Arthur Milchior
7ce77e071d
Class PreviewerBrowser
...
This let a previewer class which can be used to display a single card,
and a previewer for the browser
2020-04-02 17:44:06 +02:00
Arthur Milchior
0b80b157e7
split = None
2020-04-02 17:44:06 +02:00
Arthur Milchior
1322cd8e11
vbox and bbox are attribute
2020-04-02 17:44:06 +02:00
Arthur Milchior
6e30edd79f
use card method
2020-04-02 17:44:06 +02:00
Arthur Milchior
6767431633
previewer: create gui in a distinct function
2020-04-02 17:44:06 +02:00
Arthur Milchior
7ea1ff840f
move previewer to a different class.
...
This uses exactly the same code, with one exception. In the previewer
`self` became `self.parent` in order to have action on the
browser. And in the browser, some `self` become `self.previewer` to
access the previewer. (Some function having an action on the previewer
starting from the browser now are separated in two. One version in the
previewer doing the same thing. One version in the browser, calling
the version in the previewer if it exists.)
Preview dialog now takes a QWidget in general, not necesarrily a
Browser. The parameter is called parent
2020-04-02 17:44:06 +02:00
Damien Elmes
91c2e89360
ignore row change events that arrive after browser closed
...
https://anki.tenderapp.com/discussions/ankidesktop/40148-bug-when-suspending-cards
2020-04-02 19:44:51 +10:00
evandrocoan
30107ab09d
Created the GitHub Actions step Upload to PyPi to run only on
...
tagged releases of anki:
https://anki.tenderapp.com/discussions/ankidesktop/40025-anki-in-python-package-index
2020-04-02 02:57:34 -03:00
Damien Elmes
f195296106
fix push-i18n-ftl
2020-04-01 18:20:31 +10:00
Damien Elmes
526569693c
fix extract-po-string.py
2020-04-01 17:49:31 +10:00
Damien Elmes
0359a6ae38
tweak hook name
2020-04-01 17:13:08 +10:00
Damien Elmes
525fae808d
Merge pull request #534 from Arthur-Milchior/tags_hook
...
hook tag_editor_received_a_key
2020-04-01 17:10:31 +10:00
Damien Elmes
8d952570a8
left-align tags
...
https://anki.tenderapp.com/discussions/ankidesktop/40068-tags-column-in-browser-is-centered
2020-04-01 13:29:42 +10:00
Damien Elmes
78aad6b64b
always position selection in center after search
...
https://anki.tenderapp.com/discussions/beta-testing/1888-retaining-position-when-searching
2020-04-01 11:01:20 +10:00
Damien Elmes
284ee0860b
allow aborting a media sync while http req in flight
...
The progress handling code needs a rethink, as we now have two separate
ways to flag that the media sync should abort. In the future, it may
make sense to switch to polling the backend for progress, instead of
passing a callback in.
2020-04-01 09:49:25 +10:00
Arthur Milchior
102670a5a6
hook tag_editor_received_a_key
...
I expect it to be useful for add-ons such as
https://github.com/fonol/anki-search-inside-add-card which interact
with the tag line
2020-03-31 15:05:41 +02:00
zjosua
487d02fff2
Use double quotes in taglimit queries
2020-03-30 10:12:47 +02:00
Damien Elmes
2fdca03043
Merge pull request #531 from Arthur-Milchior/browser_will_show_context_menu
...
hook browser_header_will_show_context_menu
2020-03-28 14:50:02 +10:00
Damien Elmes
76dec75947
Revert "Merge pull request #527 from Arthur-Milchior/explode_on_bridge_cmd"
...
This reverts commit 9e6a2ba1e6 , reversing
changes made to fc846ac4e4 .
Causes a traceback when opening the add screen, clicking on Type,
and choosing a note type.
File "/Users/dae/Work/code/dtop/qt/aqt/webview.py", line 31, in cmd
return json.dumps(self.onCmd(str))
File "/Users/dae/Work/code/dtop/qt/aqt/webview.py", line 97, in _onCmd
return self._onBridgeCmd(str)
File "/Users/dae/Work/code/dtop/qt/aqt/webview.py", line 500, in _onBridgeCmd
return self.onBridgeCmd(cmd)
File "/Users/dae/Work/code/dtop/qt/aqt/editor.py", line 374, in onBridgeCmd
self._links[cmd](self, *args) # type: ignore
File "/Users/dae/Work/code/dtop/qt/aqt/editor.py", line 404, in onBlur
if gui_hooks.editor_did_unfocus_field(False, self.note, int(ord)):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2020-03-28 13:35:05 +10:00
Arthur Milchior
015d07ec56
hook browser_header_will_show_context_menu
2020-03-27 23:06:22 +01:00
Damien Elmes
ccee3af22c
Merge pull request #529 from Arthur-Milchior/load_note_once_on_note_type_change
...
Ensuring "setNote" is called only once during changing of note type
2020-03-27 15:28:49 +10:00
Damien Elmes
36314f3b6f
Merge pull request #528 from evandroforks/create_actions_for_windows_macos
...
Create actions for Windows and Mac OS
2020-03-27 15:26:22 +10:00
Damien Elmes
9e6a2ba1e6
Merge pull request #527 from Arthur-Milchior/explode_on_bridge_cmd
...
Explode on bridge cmd
2020-03-27 15:22:14 +10:00
evandrocoan
f1fe0209f6
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
2020-03-26 19:31:01 -03:00
Arthur Milchior
77e6e2eb69
Ensuring "setNote" is called only once during changing of note type
...
Initially, I wanted to solve the bug reported on
https://github.com/Arthur-Milchior/anki-html-src-in-field/issues/1
After some research, I finally discovered that the trouble was that,
when we change the note type in add card, the method
`aqt.editor.Editor.loadNote` is called twice. In itself, it would not
be a problem, but given the way callback works, its call back is
called twice on the last version of the webview. Which means that
`gui_hooks.editor_did_load_note` is called twice, which breaks this
add-on.
The reason why loadNote is called twice is because `setNote` is called
twice in `aqt.modelchooser.onModelChange`. The first time through
`gui_hooks.current_note_type_did_change` which calls
`addcards.AddCards.onModelChange` which calls `loadNote`, the second
time through `self.mw.reset()` which calls
`gui_hooks.state_did_reset()` which calls `addcards.AddCards.onReset`
which calls `setAndFocusNote` which calls `setNote`.
I should note furthermore that currently,
`gui_hooks.current_note_type_did_change` is called only when the model
chooser change a model. And `addCards.onModelChange` is never called,
only added to the hook `gui_hooks.current_note_type_did_change`. So
removing the line of code removed in this commit will have no side
effect in Anki itself. It will only affect the fact that this method
is called twice.
I do not know of any add-on calling `onModelChange` or
`gui_hooks.current_note_type_did_change`, but it means little, so of
course, it may always mean an add-on will break because of this
change. No way of being sure.
2020-03-26 21:26:13 +01:00
Arthur Milchior
504b89f7af
Ensure that focus, key and blur are treated as other commands
...
The reason to do that is that I can then call blur/key from other
method in add-on.
More precisely, I expect to create a method which captures the blur
command, ask anki to execute the standard version of the command, and
then execute more code once the note contains the new field value.
I should note that the code executed during blur/key/focus itself
didn't change. It's only it's location which changed.
2020-03-26 15:42:27 +01:00
Damien Elmes
0f0b90d427
fix progress dialog preventing schema mod
...
https://anki.tenderapp.com/discussions/beta-testing/1868-anki-2124-beta#comment_48183062
This is an ugly hack - in the future the calling code should be updated
to perform the check prior to starting the operation instead.
2020-03-26 21:07:53 +10:00
Damien Elmes
3ca9f61733
reduce the chances of add-ons preventing collections from loading
...
https://anki.tenderapp.com/discussions/ankidesktop/39953-sync-fail-with-images#comment_48182205
2020-03-26 09:53:15 +10:00
Arthur Milchior
2f245791c7
Explode onBridgeCmd
...
This way, an add-on can catch a blur command, do its change and then
call self.blur
2020-03-25 08:17:48 +01:00
evandrocoan
964cc1a11a
Merge remote-tracking branch 'danielelmes/master' into create_actions_for_windows_macos
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
# .github/workflows/checks.yml
# Makefile
# pylib/Makefile
# qt/Makefile
# qt/tools/typecheck-setup.sh
# rspy/Makefile
2020-03-24 22:49:49 -03:00
Damien Elmes
350d97b390
Merge pull request #523 from Arthur-Milchior/hook_note_will_load
...
Hook editor_note_will_load
2020-03-25 09:43:16 +10:00
Arthur Milchior
7dbe8ec21b
remove space in fields
2020-03-24 12:26:48 +01:00
Arthur Milchior
e509532ff1
strip to test whether field is empty
2020-03-24 11:55:55 +01:00
Arthur Milchior
3ecf8352f5
Hook editor_note_will_load
...
A current problem I have is that there is nothing similar to hook
inside of javascript. It seems that it would be easier to be able to
add other methods in javascript and call them in loadNote. Currently I
simply redefined loadNote, which is far from perfect
2020-03-24 10:17:01 +01:00
Damien Elmes
83dae0eab4
Merge pull request #525 from Hk-tang/change-to-more-pythonic
...
Change not not to bool
2020-03-24 16:01:15 +10:00
Damien Elmes
ebb4d5567a
Merge pull request #524 from Arthur-Milchior/indet_html
...
Ident html in editor
2020-03-24 16:00:57 +10:00
Damien Elmes
792dd69b98
Merge pull request #522 from Arthur-Milchior/editor_did_init
...
editor_did_init
2020-03-24 15:52:50 +10:00
evandrocoan
02d8728683
Created .github/workflows/mac_checks.yml
2020-03-24 00:31:46 -03:00
evandrocoan
4fcecaed9f
Created the .github/workflows/windows.yml
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
# Makefile
# qt/tools/typecheck-setup.sh
# react/Makefile
# rspy/Makefile
# svelte/Makefile
# tslib/Makefile
2020-03-23 19:51:03 -03:00
evandrocoan
b376b78527
Deprecated eval usage on qt/tools/typecheck-setup.sh
2020-03-23 18:54:24 -03:00
evandrocoan
093af85c2e
Merge remote-tracking branch 'danielelmes/master' into fix_tests_on_windows
...
# Conflicts:
# .github/scripts/trailing-newlines.sh
2020-03-23 18:44:11 -03:00
Hk-tang
f6d2c95888
Change not not to bool
2020-03-23 11:16:39 -06:00
Arthur Milchior
bb25398ed8
add an id to name tab
2020-03-23 16:52:24 +01:00
Damien Elmes
8b3995c1fc
formatting
2020-03-23 19:54:01 +10:00
Damien Elmes
c5fa0b130e
reduce the chances of a race condition in mplayer code
...
Not perfect, it may still happen.
https://anki.tenderapp.com/discussions/ankidesktop/39832-an-error-occurred-audio
2020-03-23 19:15:32 +10:00
Damien Elmes
a34dcb709e
don't pop up network errors for media sync
...
log them instead
2020-03-23 19:06:13 +10:00
Damien Elmes
6a9ed72269
fix collection_did_load() not being called, and remove dead code
...
https://anki.tenderapp.com/discussions/ankidesktop/39765-_colloadingstate-is-never-run-thus-collection_did_load-hook-is-never-triggered
2020-03-23 18:57:23 +10:00
Damien Elmes
0c4feaa800
cache dark mode value so UI doesn't break when it changes
...
https://anki.tenderapp.com/discussions/ankidesktop/39550-cant-deactivate-night-mode-on-2121-for-mac
2020-03-23 18:39:37 +10:00
Damien Elmes
1bd4d0db4e
dump more info in card()/bcard()
2020-03-23 18:39:00 +10:00
Arthur Milchior
0b0888acd9
Ident html in editor
...
Sometime I like to print html to understand why it bugs. And I really
prefer to have html indented if it's okay with you. There is no change
appart from the identation and quotes
2020-03-23 08:15:48 +01:00
Damien Elmes
1e9197a4d3
fix English being shown in prefs for fully qualified langs like zh-CN
...
https://anki.tenderapp.com/discussions/ankidesktop/39845-a-new-bug-has-been-found
2020-03-23 16:08:06 +10:00
Damien Elmes
ac78699d13
add back new_timezone_enabled(), as it's used in the prefs screen
2020-03-23 07:40:50 +10:00
Arthur Milchior
77309d3034
editor_did_init
...
That would be useful to add elements in the editor, such as in multi
column editor
2020-03-22 17:15:47 +01:00
Damien Elmes
28b0281972
allow customizing search order
2020-03-21 17:38:09 +10:00
Damien Elmes
6d7bf16b5a
fix reversing sort order
2020-03-21 16:57:33 +10:00
Damien Elmes
eab7686d2f
remove old finder code; add search hooks to browser & remove old one
2020-03-21 16:38:46 +10:00
Damien Elmes
67d1842691
enable sorting on the extra browser columns
2020-03-21 07:55:53 +10:00
Damien Elmes
cdb85ef72e
disable word wrap in browser rows
2020-03-20 21:15:23 +10:00
Damien Elmes
f3296382ea
ensure endReset() is called even if an exception is raised
2020-03-20 21:15:23 +10:00
Damien Elmes
c13056773b
flush config on sort order change
2020-03-20 21:15:23 +10:00
Damien Elmes
2ea17d272c
wait for media sync to complete before unloading collection
2020-03-20 21:15:23 +10:00
Damien Elmes
e980d20a40
reuse the existing backend instead of creating a new one
2020-03-20 21:15:23 +10:00
Damien Elmes
5aba5c3ab9
drop the separate i18n backend
2020-03-20 21:15:23 +10:00
Damien Elmes
fa527bca4f
import .colpkg in a background thread
2020-03-20 21:15:23 +10:00
Damien Elmes
8c6e2cdb82
import .apkg files in a background thread
2020-03-20 21:15:23 +10:00
Damien Elmes
128b45aa40
import mapped files like csv in a background thread
2020-03-20 21:15:23 +10:00
Damien Elmes
37b24bf782
export in a background thread
2020-03-20 21:15:23 +10:00
Damien Elmes
258a8282d4
move .reopen() to mw; fix exporting
2020-03-20 21:15:23 +10:00
Damien Elmes
07381f74e6
fix mypy warning
2020-03-20 21:15:23 +10:00
Damien Elmes
a02c4ed994
drop the DB progress handler code
...
This code was an awful hack to provide some semblance of UI
responsiveness while executing DB statements on the main thread.
Instead, we can just run DB statements in a background thread now,
keeping the UI responsive.
2020-03-20 21:15:23 +10:00
Damien Elmes
cd78da24d9
use a timer to automatically show progress window
...
We were previously relying on the DB progress hook to cause the
progress window to display.
Qt's progress dialogs do have built in support for automatically
showing, but it's easier to add a timer than change the existing
code to use it.
2020-03-20 21:15:23 +10:00
Damien Elmes
df33b04be8
run Check DB in a background thread
...
Since the DB is now stored behind a mutex, we're no longer limited
to accessing the database on the main thread.
2020-03-20 21:15:23 +10:00
Damien Elmes
3f3a45e2ba
add Collection struct, and get media check working again
...
- media check no longer needs collection to be closed
- use savepoints for operations initiated by Rust, so they are
atomic without forcing a commit
2020-03-20 21:15:23 +10:00
Damien Elmes
0147d9e470
drop log= argument from Collection
2020-03-20 21:15:23 +10:00
Damien Elmes
9e67ea736a
drop named sql arguments
2020-03-20 21:15:23 +10:00
Damien Elmes
6d0c84a1e9
drop progress handler and timeout arg
2020-03-20 21:15:23 +10:00
Damien Elmes
f6472f7430
tweak add-on wording
2020-03-20 21:00:21 +10:00
Damien Elmes
1accffbd34
Merge pull request #517 from Arthur-Milchior/backup_is_done
...
hook backup_is_done
2020-03-20 20:56:33 +10:00
Damien Elmes
9a36800ddb
Merge pull request #470 from Arthur-Milchior/accept_card
...
Hook to decide whether a note should be added.
2020-03-20 20:56:04 +10:00
Damien Elmes
9ea9bab3fa
Merge pull request #514 from evandroforks/box-sizing_border-box
...
Added box-sizing: border-box; to typeans by default
2020-03-20 20:50:40 +10:00
Damien Elmes
44a704b27b
Merge pull request #516 from Arthur-Milchior/hook_models_advanced_will_show
...
Hook models_advanced_will_show
2020-03-20 20:42:14 +10:00
Arthur Milchior
1993c0af70
Browser introduce method time_format
...
I expect to use this in my add-on 1243668133 (by monkey patching in
this case) where it would allow to show hours/minutes/seconds... in browser
2020-03-19 22:59:59 +01:00
Arthur Milchior
7192ee96ac
hook backup_is_done
...
I expect to use this hook in add-on 529955533. It'll serve me to
create long term backup at the same time than your backup
2020-03-19 13:21:00 +01:00
Arthur Milchior
6e85e8ccce
Hook models_advanced_will_show
...
This will be useful for add-on 1863928230. I want to let users change
the LaTeX footer/header everywhere.
2020-03-19 12:03:09 +01:00
Arthur Milchior
339bbd88a8
Hook to decide whether a note should be added.
2020-03-19 03:39:53 +01:00
evandrocoan
00424fc404
Added box-sizing: border-box; to typeans by default
...
https://anki.tenderapp.com/discussions/beta-testing/1854-using-margin-auto-causes-horizontal-scrollbar-on-typesomething
2020-03-18 20:31:11 -03:00
evandrocoan
5d75a0c9f1
Fixed moved comment line on qt/aqt/main.py, long variables names on
...
pylib/Makefile and qt/Makefile, and rg --version not going to /dev/null
on .github/scripts/trailing-newlines.sh
2020-03-18 11:36:50 -03:00
evandrocoan
51477a4033
Fixed mypy and pylint not building on Windows
...
1. error: unused 'type: ignore' comment
2. Module 'pywintypes' has no 'error' member
3. Module 'win32pipe' has no 'SetNamedPipeHandleState' member,
but source is unavailable. Consider adding this module to
extension-pkg-whitelist if you want to perform analysis based on
run-time introspection of living objects.
2020-03-17 19:48:16 -03:00
evandrocoan
1fe4860b56
Fixed error: Incompatible types in assignment on qt/aqt/main.py
...
aqt\main.py:1437: error: Incompatible types in assignment (expression has type Module, variable has type "LibraryLoader[WinDLL]") [assignment]
_dummy = wintypes
^
2020-03-17 19:48:16 -03:00
evandrocoan
c4e94ddc20
Fixed typecheck-setup.sh: sudo: command not found on Windows
2020-03-17 19:48:16 -03:00
evandrocoan
105e2a2502
Fixed make check for pylint not working on Windows due
...
F:\Python\python.exe: can't open file '/cygdrive/f/anki/pyenv/Scripts/pylint': [Errno 2] No such file or directory
2020-03-17 19:48:16 -03:00
Damien Elmes
f3d718eba2
Merge pull request #509 from Arthur-Milchior/type_queue_in_browser
...
adding missing constants in browser file
2020-03-17 21:33:08 +10:00
Damien Elmes
77e6661517
Merge pull request #506 from Arthur-Milchior/editor_web_view_did_init
...
Hook editor_web_view_did_init
2020-03-17 20:53:20 +10:00
Damien Elmes
7399486668
Merge pull request #505 from evandroforks/add_typearrow_id
...
Give the 'typearrow' id to the type answer arrow
2020-03-17 20:52:20 +10:00
Arthur Milchior
552c0cd8a8
adding missing constants in browser file
2020-03-17 06:32:46 +01:00
evandrocoan
219fcb3d9f
Give the 'typearrow' id to the type answer arrow
2020-03-16 00:42:08 -03:00
Arthur Milchior
19e7163c2f
Hook editor_web_view_did_init
...
I hope to use this in oder to had features to the web view. In
particular, I expect the "spell checking" feature to use it
hopefully. Because currently it's incompatible with other add-on
dealing with the editor
2020-03-16 04:37:07 +01:00
Damien Elmes
fc34ba40d4
fix dupe colour in day mode
2020-03-15 12:20:29 +10:00
Damien Elmes
9c8e8c2216
fix audio getting stuck (2/2)
2020-03-15 09:34:04 +10:00
Damien Elmes
8cd64bad6a
fix audio getting stuck (1/2)
...
The problem was caused by stop() doing a spin loop on the main
thread waiting for the completion signal. This prevented Qt's run
loop from executing, and so the completion signal was never delivered,
meaning longer files would time out.
Fixed by reworking the code so that stop() does not block at all -
instead it just sets the termination flag, and AVPlayer does not
unset current_player. Then when the completion callback fires, it
can advance to the next file.
TTS code still needs updating, and the lock should be safe to remove
as the start/stop logic is all on the main thread.
2020-03-15 09:26:31 +10:00
Damien Elmes
cf8be89330
imports
2020-03-14 22:10:27 +10:00
Damien Elmes
863e5f5e51
make sure audio queue is cleared when transitioning between cards
...
https://anki.tenderapp.com/discussions/beta-testing/1846-anki-2122-beta#comment_48150139
2020-03-14 20:04:40 +10:00
Damien Elmes
81e472fdd1
drop the deck count warning
2020-03-14 19:41:33 +10:00
Damien Elmes
1161ac1962
fix play icons not appearing in browser preview when autoplay off
2020-03-14 19:29:11 +10:00
Damien Elmes
61e8a0ed3c
possible fix for invalid handle issue
...
https://anki.tenderapp.com/discussions/ankidesktop/39346-cant-add-audio-on-flash-drive
2020-03-14 18:53:43 +10:00
Damien Elmes
0298a0f09f
must close progress before displaying error, or user can't click it away
2020-03-14 18:42:03 +10:00
evandrocoan
d6fecea4ff
Fixed BeautifulSoup breaking string paths
...
https://anki.tenderapp.com/discussions/ankidesktop/39543-anki-is-replacing-the-character-by-when-i-exit-the-html-edit-mode-ctrlshiftx
2020-03-12 21:19:09 -03:00
Damien Elmes
ea3815b34b
fix missing zero count styling, and tweak colours
2020-03-12 20:01:25 +10:00
Damien Elmes
7069123a76
copy ftl to source folder in extra-po-string as well
2020-03-12 19:53:52 +10:00
Damien Elmes
29f625b61e
add helper to duplicate a fluent string
2020-03-12 19:53:44 +10:00
Damien Elmes
7f9a3dad7e
no implicit {} in replacements
2020-03-12 18:02:40 +10:00
Damien Elmes
172cb966c5
add ability to use other path to translation json
2020-03-12 18:02:36 +10:00
Damien Elmes
0651aaa229
add media check window title, use consistent formatting in template
2020-03-12 18:02:22 +10:00
Damien Elmes
3939e800f2
Merge pull request #503 from Arthur-Milchior/error_msg_in_schema
...
Error msg in schema
2020-03-11 16:00:47 +10:00
Damien Elmes
133b3d9996
fix wrong language selected in prefs screen
2020-03-11 14:58:57 +10:00
Arthur Milchior
5bb0808994
Allow add-on dev to show personalized message.
...
The error should be in "error_msg"
They can show:
* the original error message with {problem}
* the path of the error with {path},
* the value which does not match against the subchema with {error}
* the subschema against which the error occurs with {schema}
Thanks to Glutanimate for the idea https://github.com/ankitects/anki/pull/495#issuecomment-596685227
2020-03-11 01:39:39 +01:00
Arthur Milchior
c4ee97d707
snake case for addon_schema
2020-03-11 00:56:14 +01:00
Damien Elmes
404a8ca3ec
add switch in prefs for new timezone handling code; bump sync version
...
AD devs: before updating the sync version to 10, please make sure
the new timezone code has been ported over. The core change to the
scheduler is in _updateCutoff():
b198ba8073/pylib/anki/schedv2.py (L1357)
with the following supporting Python functions:
b198ba8073/pylib/anki/schedv2.py (L1410)
_timing_today() is calculated in Rust (lines up to 92, the rest are
tests):
b198ba8073/rslib/src/sched/cutoff.rs (L20)
The change went through a few iterations before stabilising, so it's
probably easier to refer to the above code than the patches that got
us to that point.
2020-03-10 17:50:18 +10:00
Damien Elmes
e512199ace
add restore media action
2020-03-10 13:35:09 +10:00
Damien Elmes
cac9ccfa0d
add empty trash action in aqt
2020-03-10 12:49:40 +10:00
Arthur Milchior
7dd2c3ec43
hook single_addon_selected
2020-03-09 12:45:10 +01:00
Arthur Milchior
9f1415a811
hook addons_dialog_will_show
2020-03-09 12:45:10 +01:00
Damien Elmes
bd86e42b2c
Merge branch 'master' into more_precise_config_error_message
2020-03-09 19:41:26 +10:00
Damien Elmes
757fc93117
Merge pull request #499 from glutanimate/add-custom-dialogs-to-dialogmanager
...
Allow add-on authors to register their dialogs with the dialog manager
2020-03-09 19:40:34 +10:00
Damien Elmes
21a7de2741
Merge pull request #494 from Arthur-Milchior/debug_hook
...
Debug hook
2020-03-09 19:07:36 +10:00
Damien Elmes
0a8fe2959c
fix missing newline in ftl files
...
https://anki.tenderapp.com/discussions/beta-testing/1836-problem-with-new-translations
2020-03-09 18:58:41 +10:00
Arthur Milchior
0a8f339aa3
More precise schema failure message
...
While creating schema for the add-on I used, I realized that my error
message was not precise enough.
For a big configuration such as in "Enhance main window", the message
"None is not of type 'string'" is almost useless.
So I added a path in the json config, to indicate where the error
is. And also which subschema is currently being used.
2020-03-08 16:38:06 +01:00
Glutanimate
ef8a87446c
Elaborate more on the use case and requirements for dialog registration
2020-03-07 17:43:21 +01:00
Glutanimate
5105d297ac
Allow add-ons to register custom dialogs with the dialog manager
2020-03-07 17:35:09 +01:00
Glutanimate
49fa1cbc59
Add cursory type annotations for aqt.DialogManager
...
Typing DialogManager._dialogs properly would require more extensive
changes which could break a number of add-ons
2020-03-07 17:29:37 +01:00
Arthur Milchior
490441b9a7
hook debug_ran_hook
2020-03-06 15:01:22 +01:00
Arthur Milchior
932412993a
hook debug_will_show_hook
2020-03-06 15:01:02 +01:00
Damien Elmes
fd69c57ec4
Merge pull request #496 from TooYoungTooSimp/patch-1
...
Use anki.consts.SYNC_BASE instead of hardcoded url
2020-03-06 21:22:18 +10:00
Damien Elmes
aeb73a6354
Merge pull request #495 from Arthur-Milchior/check_schema_before_accepting
...
add-on config check schema of user config
2020-03-06 21:14:47 +10:00
雷宇辰
680b98ea32
Use anki.consts.SYNC_BASE instead of hardcoded url
...
Use `anki.consts.SYNC_BASE` instead of hardcoded url in function `MediaSyncer._endpoint`
2020-03-06 18:55:07 +08:00
Damien Elmes
33e9550b9a
fix invert() in packaged builds
...
invert() was working in the QT 5.14 test environment, but failing
in 5.13
2020-03-06 18:02:22 +10:00
Arthur Milchior
f914354d16
add-on config check schema of user config
2020-03-05 16:31:17 +01:00
Damien Elmes
02caf37f28
fix regression introduced by PR #492
2020-03-05 09:24:26 +10:00
Damien Elmes
42d1223498
Merge pull request #493 from glutanimate/type-annotate-editor-card
...
Type-annotate editor.card
2020-03-05 07:26:40 +10:00
Damien Elmes
a655dce629
Merge pull request #492 from Arthur-Milchior/print_json_decode_error
...
print json decode error message
2020-03-05 07:26:17 +10:00
Glutanimate
fce24c6eea
Type-annotate editor.card
2020-03-04 17:41:26 +01:00
Arthur Milchior
0210521745
print json decode error message
...
The main point is to allow add-on dev' to debug their own json
2020-03-04 15:29:48 +01:00
Arthur Milchior
3cca0bb132
config_unprettify_json
2020-03-04 08:25:14 +01:00
Arthur Milchior
ea03fcc526
hook prettify_json
2020-03-04 08:25:14 +01:00
Damien Elmes
43d1c3b865
Merge pull request #454 from glutanimate/display-addon-name-in-config-window
...
Display add-on name in add-on configuration window title
2020-03-02 16:59:44 +10:00
Damien Elmes
53b2122461
Merge pull request #476 from Arthur-Milchior/hook_browser_init
...
Hook browser init
2020-03-02 15:40:10 +10:00
Damien Elmes
dabbd18ffa
Merge pull request #472 from Arthur-Milchior/hook_init_clayout
...
Hook init clayout
2020-03-02 15:39:23 +10:00
Alan Du
63a0b36d91
Monkeytype qt/aqt/reviewer.py
2020-03-01 10:16:08 -05:00
Alan Du
c283013ccd
Monkeytype qt/aqt/theme.py
2020-03-01 10:16:08 -05:00
Alan Du
9c4e616191
Monkeytype qt/aqt/sound.py
2020-03-01 10:16:08 -05:00
Alan Du
9568c4190a
Monkeytype qt/aqt/toolbar.py
2020-03-01 10:16:08 -05:00
Alan Du
c6817d296b
Monkeytype qt/aqt/webview.py
2020-03-01 10:16:08 -05:00
Arthur Milchior
e45878c2ee
hook for initializing clayout
2020-03-01 11:42:41 +01:00
Arthur Milchior
57efc22d99
browser_did_init
2020-03-01 11:39:41 +01:00
Glutanimate
a36d37d041
Display add-on name in add-on configuration window title
2020-02-29 20:15:23 +01:00
Arthur Milchior
a1da483906
move deck_browser hooks apart
2020-02-29 17:01:38 +01:00
Damien Elmes
935133bed5
fix shared link
2020-02-29 21:43:37 +10:00
Damien Elmes
19ef578556
Merge pull request #473 from evandroforks/fix_docs_urllink
...
Fixed anki website docs link on pylib/anki/consts.py
2020-02-29 21:39:11 +10:00
Damien Elmes
b4f9b8109c
Merge pull request #468 from BlueGreenMagick/fix-comment-setwebexports
...
allow either \ or / in web exports filter
2020-02-29 21:25:12 +10:00
Damien Elmes
e52ceaed9b
restore mpv/mplayer missing warning that got lost in the av changes
...
and ensure the UI doesn't get temporarily stuck after the command fails
2020-02-29 21:20:08 +10:00
Damien Elmes
61230105fa
point user to manual if they're trying to disable night mode in dark mode
2020-02-29 20:44:49 +10:00
BlueGreenMagick
ffb6ae2dc6
match both forward slash and os seperator
2020-02-29 12:36:10 +09:00
evandrocoan
bc5a9da396
Fixed anki website docs link on pylib/anki/consts.py
2020-02-28 22:18:19 -03:00
Arthur Milchior
f20b0e43cd
indicate that card_will_show belong to multiple windows
2020-02-28 13:34:48 +01:00
Damien Elmes
749541226e
fix _tidy_name() comment
2020-02-28 17:14:47 +10:00
Damien Elmes
80cd519d40
stop fetching qt translations as part of recompile step
2020-02-27 20:38:05 +10:00
Damien Elmes
6aafefbc0c
fix echo statement
2020-02-27 20:37:44 +10:00
Damien Elmes
1e03223320
dump po data into json to speed up invocations
2020-02-27 20:37:24 +10:00
Damien Elmes
2de865d7f0
migrate strings with trailing newlines to fluent
2020-02-27 20:36:40 +10:00
Damien Elmes
5f7046e841
strip whitespace in extracted strings
2020-02-27 17:38:02 +10:00
Damien Elmes
56d902b669
fix extract-po-string path
2020-02-27 17:37:40 +10:00
Damien Elmes
f5f2063211
remove submodule that crept into Alan's patch
2020-02-27 14:33:15 +10:00
evandrocoan
59d45f309a
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# CONTRIBUTORS
2020-02-27 00:54:16 -03:00
Alan Du
df55645ced
Apply mypy improvements to aqt
2020-02-26 22:27:58 -05:00
evandrocoan
4a2456f62f
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# Makefile
2020-02-27 00:20:34 -03:00
Damien Elmes
fcc965e81a
Merge pull request #462 from Arthur-Milchior/filter_empty_card
...
Add a hook to change empty cards to delete
2020-02-27 12:53:52 +10:00
Damien Elmes
93c2e04267
FString -> TR
2020-02-27 12:25:19 +10:00
Damien Elmes
3dc0567f89
add string for media log title, and add button in prefs to access it
2020-02-27 12:22:24 +10:00
Damien Elmes
83d894ac87
return a localized error for all error kinds
...
some errors are not yet localized, but now the Python code
doesn't need to think about which property to use
2020-02-27 10:46:24 +10:00
Arthur Milchior
228db67c93
Add a hook to change empty cards to delete
2020-02-26 10:59:34 -08:00
Damien Elmes
946a2e6a3e
add missing short argument to legacy fmtTimeSpan()
2020-02-26 20:36:59 +10:00
Damien Elmes
b276e6f9ac
fix push-i18n
2020-02-26 18:09:06 +10:00
Damien Elmes
7d691d7571
don't abort build if mo file fails; rename files for consistency
...
Issues are now checked for in CI, so there's no need to break the
build for everyone each time there's a problem with the gettext
catalogs.
2020-02-26 17:47:02 +10:00
Damien Elmes
8b728b4a1e
fix dark mode target Qt version
2020-02-26 16:53:35 +10:00
evandrocoan
0eee3061dc
Removed the qt/Makefile INSTALL_PYAUDIO variable and
...
created the Makefile SYSTEM_PACKAGES updating README.development
2020-02-25 21:08:05 -03:00
Damien Elmes
94ba217c25
formatting fixes
2020-02-25 17:56:46 +10:00
Damien Elmes
5ca00fc92d
interrupt current audio when autoplay off
2020-02-25 17:49:06 +10:00
Damien Elmes
c240690da7
ensure user doesn't try to export into data folder
...
https://anki.tenderapp.com/discussions/ankidesktop/39008-export-path-accidentally-set-to-collectionmedia-possible-damage
2020-02-25 17:38:49 +10:00
Damien Elmes
c172557e47
formatting fix
2020-02-25 17:29:10 +10:00
Damien Elmes
59328d9ade
tweak rounding
...
- avoid rounding minutes
- round the seconds taken in the card info screen
- provide different precise and imprecise modes, since we need
to display seconds to multiple decimals in some areas
2020-02-25 17:29:06 +10:00
Damien Elmes
fa41f24bf6
fix display of 1+ day intervals in review history
...
https://anki.tenderapp.com/discussions/ankidesktop/39189-interval-field-of-card-info-display-wrong-unit
2020-02-25 17:00:02 +10:00
Damien Elmes
999aa74eb2
ensure Anki starts on Windows systems that don't have TTS installed
2020-02-25 16:25:17 +10:00
Damien Elmes
8efc23229c
don't allow UI scale < 100%
...
Both Windows and Linux installs fail to render properly when the scale
is below 100%:
https://anki.tenderapp.com/discussions/ankidesktop/38909-user-interface-size
Retina Macs do render properly, but they tend to display at appropriate
size out of the box anyway.
2020-02-25 16:20:14 +10:00
evandrocoan
2d316748a7
Merge remote-tracking branch 'danielelmes/master' into fix_windows_build
...
# Conflicts:
# Makefile
2020-02-25 03:16:57 -03:00
evandrocoan
9e690f80e7
Renamed FIND_EXEC to FIND, replaced IS_WINDOWS by specific commands
...
as PYTHON_BIN, ACTIVE_SCRIPT and INSTALL_PYAUDIO.
Fixed echo statements not using @ to suppress double message output.
Deprecated the usage of ECHOCMD := /bin/echo -e because it has no
effect: https://stackoverflow.com/questions/60387684/how-to-make-the-makefile-echos-to-use-bin-echo-e
# Conflicts:
# Makefile
2020-02-25 03:15:11 -03:00
Damien Elmes
9aa23c4846
don't pick up system dark theme in -alternate Mac build
...
The older Qt doesn't support it properly
2020-02-25 15:46:39 +10:00
Damien Elmes
592741deaa
change default night mode card background to dark grey
2020-02-25 15:43:56 +10:00
Damien Elmes
d8695b215f
use -q instead of --for-msgfmt so older gettext versions don't break
...
I was mainly using it to keep the output tidy anyway
2020-02-25 13:52:40 +10:00
Damien Elmes
d26a68f20e
Merge pull request #458 from glutanimate/add-deck-conf-hooks
...
Add deck options hooks
2020-02-25 13:38:04 +10:00
evandrocoan
5fab701431
Added -o pipefail to all set -e ensuring the build fails when some
...
operation with pipe exits error status.
# Conflicts:
# Makefile
2020-02-24 20:18:56 -03:00
evandrocoan
6a70adf6f4
Fixed msgmerge not stopping the shell on error
2020-02-24 17:54:59 -03:00
evandrocoan
a3e2793e25
Fixed build-mo-files not stopping on build errors
2020-02-24 17:02:27 -03:00
evandrocoan
6d16298254
Fixed development compilation with Windows 10
...
1. Documented on README.development how to setup the environment
for Windows.
2. Fixed qt/ts/package.json not working due usage of ; instead
of &&
3. Fixed copy-qt-files rsync using Windows paths instead of Unix
ones
4. Fixed Makefile's using Windows Linux Subsystem bash instead of
the Cygwin one.
5. Ensured running the correct pip module by using python -m pip
instead of just pip.
6. Fixed Makefiles using Windows `find` command, instead of the
Cygwin's one (POSIX find).
7. Fixed pyenv sourcing/activate using /pyevn/bin/ instead of
/python/Scripts/ on Windows.
8. Fixed pyaudio not installing/linking with portaudio on Windows
by installing for a patched fork at evandroforks/pyaudio
9. Forked and fixed portaudio not building with Visual Studio 2017
or superior and added the reference for the patched fork on
README.development at evandroforks/portaudio.
2020-02-24 14:59:11 -03:00
Glutanimate
f7b256a860
Use a consistent function signature across load and save hooks
2020-02-24 15:47:48 +01:00
Glutanimate
d1dc0362b6
Add deck_conf_did_setup_ui_form hook
...
Called earlier than deck_conf_will_show, allowing add-on authors
to perform UI modifications before the deck config is loaded.
2020-02-24 15:29:23 +01:00
Glutanimate
368a485847
Add hooks for extending the deck options dialog
...
Introduces three new hooks:
* deck_conf_will_show: Allows adding or modifying widgets
* deck_conf_did_load_config: Allows add-on widgets to read from config
* deck_conf_will_save_config: Allows add-on widgets to write to config
2020-02-24 13:42:30 +01:00
Damien Elmes
43dae5c90e
Merge pull request #456 from Arthur-Milchior/noDefaultDeckInBrowser
...
No default deck in browser
2020-02-24 19:35:49 +10:00
Damien Elmes
db486dd25c
enable v2 apkg export
2020-02-24 18:54:55 +10:00
Damien Elmes
0e6b584483
fix tr()
2020-02-24 18:37:02 +10:00
Damien Elmes
d085fcea64
add Tobias to contributors
...
if anyone else is reading this and thinks they should be on the list,
please let me know!
2020-02-24 18:36:37 +10:00
Damien Elmes
087afc94d8
merge po with pot before building mo
...
fixes errors in strings that have been removed from the template
2020-02-24 15:35:52 +10:00
Damien Elmes
70ae99778f
remove old fmtTimeSpan() and associated strings
2020-02-23 18:47:16 +10:00
Damien Elmes
f710e58cee
check-po-files moved into i18n repo
2020-02-23 18:33:03 +10:00
Damien Elmes
1c69747b5a
move the big error message into FTL
...
this works around the issue Pontoon has with saving translations with
trailing newlines, and makes it easier for translators to update in
the future, as the errors are now using markdown
2020-02-23 18:01:34 +10:00
Damien Elmes
024126b3be
support aqt-specific FTL files
2020-02-23 18:00:13 +10:00
Damien Elmes
d270a01b61
update extract-po-string
...
- use fluent.syntax for output (only non-plural case for now)
- add confirmation step
2020-02-23 17:58:43 +10:00
Damien Elmes
c98247fa0f
translations no longer require an open collection
2020-02-23 14:57:02 +10:00
Damien Elmes
0d1a30c6d8
rework Fluent handling
...
- all .ftl files for a language are concatenated into a single file
at build time
- all languages are included in the binary
- external ftl files placed in the ftl folder can override the
built-in definitions
- constants are automatically generated for each string key
- dropped the separate StringsGroup enum
2020-02-23 13:22:50 +10:00
Arthur Milchior
adfbd0d70f
should(default)deckbedisplayed in snake case
2020-02-22 04:08:01 -08:00
Arthur Milchior
6a50730f0d
Remove options for all/allNames
...
Instead, we always see default deck if it has a child
As indicated in https://github.com/ankitects/anki/pull/452
2020-02-22 04:03:42 -08:00
Arthur Milchior
89b79d9800
forceDefault to force_default
2020-02-22 04:01:42 -08:00
Damien Elmes
258a8a04f0
fix comment
2020-02-21 20:10:58 +10:00
Damien Elmes
7d4d713c49
remove unused import
2020-02-21 19:58:54 +10:00
Damien Elmes
3a83d9844a
add studied_today(), move to statistics.ftl
2020-02-21 18:01:15 +10:00
Damien Elmes
ce84a1a246
don't use implicit $ in extract-po-strings
2020-02-21 17:06:57 +10:00
Damien Elmes
05c20e72e8
split ftl and po syncing scripts
2020-02-21 15:29:38 +10:00
Damien Elmes
8afaaf9c70
simplify interval display in review log
2020-02-21 15:29:38 +10:00
Damien Elmes
ddf1d6acbd
add plural support to extract-po-string
2020-02-21 15:29:38 +10:00
Damien Elmes
74bff450e2
add non-abbreviated timespan translation; update existing short=True calls
...
- drop the '5m3s' special casing done in the card stats screen, and
just use decimals
- change alignment of the review log so that the non-abbreviated
spans are easier to read
2020-02-21 15:29:38 +10:00
Damien Elmes
b0cd1b23f2
support variables when importing from gettext
2020-02-21 15:29:38 +10:00
Damien Elmes
bda7e0e0a4
possible fix for race conditions in the sound code
...
https://anki.tenderapp.com/discussions/ankidesktop/39030-erro-ao-adicionar-arquivo-de-udio
the lock should at least ensure _process doesn't disappear in the
middle of our logic, and the longer wait should reduce the chances
of .stop() timing out and allowing multiple audio files to play
Not very happy with the current approach, as in the timeout case
you have multiple threads competing to access the same data
2020-02-21 15:14:09 +10:00
Damien Elmes
e98e85a0b8
Revert "Merge pull request #452 from Arthur-Milchior/noDefaultDeckInBrowser"
...
This reverts commit 56d908cc28 , reversing
changes made to c123b5bf95 .
More discussion required on https://github.com/ankitects/anki/pull/452
2020-02-21 12:27:39 +10:00
Damien Elmes
a30e4d9313
Merge pull request #448 from glutanimate/top_toolbar_links_hook
...
Add a hook for adding links to the top toolbar
2020-02-21 12:18:25 +10:00
Damien Elmes
56d908cc28
Merge pull request #452 from Arthur-Milchior/noDefaultDeckInBrowser
...
No default deck in browser
2020-02-21 12:10:36 +10:00
Glutanimate
4f50f6c669
Refactor ToolbarLink dataclass into create_link arguments
...
ToolbarLink was more of a vestigial left-over from an interim
implementation. This change simplifies link addition and brings
it closer in line with adding buttons in the editor screen
2020-02-20 18:22:31 +01:00
Glutanimate
8aa7e9e32e
Restore gui_hooks changes
2020-02-20 17:05:27 +01:00
Glutanimate
1df7a29765
Add ids to all link elements
2020-02-20 16:34:02 +01:00
Glutanimate
0e8c8ae775
Rename CenterLink to more generic ToolbarLink and add inline docs
2020-02-20 16:30:22 +01:00
Glutanimate
af2c353aa7
Update 'top_toolbar_did_init_links' hook
2020-02-20 16:23:33 +01:00
Glutanimate
1a8ef9e589
Refactor center link creation and link handler registration
...
Uses a CenterLink dataclass to describe individual links, and transforms
them into HTML using create_link, which may also be used by add-ons.
2020-02-20 16:15:50 +01:00
Glutanimate
05f5b4d664
Merge branch 'master' into top_toolbar_links_hook
2020-02-20 15:17:48 +01:00
Arthur Milchior
59587f1bb2
no default in left-side browser
2020-02-19 02:42:04 -08:00
Arthur Milchior
541e586db1
Replace g[idx] by variable name
2020-02-19 02:41:57 -08:00
Arthur Milchior
aa1668ec96
remove default deck from filter list
2020-02-19 02:41:56 -08:00
Damien Elmes
20c765cf91
pin fcntl, which went missing on Linux in a recent update
2020-02-19 19:59:31 +10:00
Arthur Milchior
9860d5ba5e
method shouldBeDisplayed
2020-02-19 01:56:33 -08:00
BlueGreenMagick
b81db34fbd
fix typo
...
<font> tag was closed by </span>
2020-02-19 17:46:12 +09:00
Damien Elmes
5bb81a95c2
add 'new #' prefix to new cards in the due column
2020-02-18 11:16:15 +10:00
Damien Elmes
fdf297afa0
fix card info screen
2020-02-18 10:59:24 +10:00
Damien Elmes
0e7f433071
fix legacy filter return values being ignored
2020-02-18 09:12:16 +10:00
Damien Elmes
d2929bcc64
fix negative number in compat message
2020-02-18 08:27:47 +10:00
Damien Elmes
08bb73b4d9
Merge pull request #450 from Arthur-Milchior/selectCardInBrowserFromReviewer
...
Current card get selected in browser
2020-02-18 08:27:34 +10:00
Damien Elmes
0a562c2eac
Merge pull request #449 from glutanimate/html-content-section-hooks
...
Add hooks for modifying HTML body sections in the deck browser and overview screens
2020-02-18 08:20:01 +10:00
Glutanimate
ed2782b185
Complete OverviewContent docs
2020-02-17 16:53:47 +01:00
Glutanimate
0e95badd80
Add overview_will_render_content hook
2020-02-17 16:49:21 +01:00
Glutanimate
803b0432f1
Bundle individual section hooks together into one
...
Uses new dataclass 'DeckBrowserContent'
2020-02-17 16:26:21 +01:00
Arthur Milchior
3763d35149
Current card get selected in browser
...
I'm pretty sure it was the way it worked before. I'm surprised that
it's not the case anymore.
If you open the browser from the reviewer, the current card get
selected if it exists. The current note is still entirely displayed.
Personally, I want to know easily which is the current card. Opening
the browser is the easiest way to do it; assuming I can see the
current card selected
2020-02-17 04:10:47 -08:00
Damien Elmes
e020aa54f9
add fallback for tr if collection not open
...
When syncing media on close, the collection may be closed before
media syncing completes.
A better solution in the future will be decouple translations from
the collection object.
2020-02-17 17:39:01 +10:00
Damien Elmes
9ffae5650f
fix initial build failing
2020-02-17 15:48:27 +10:00
Damien Elmes
fd01cac4d7
split "Due" into three different contexts for translators
2020-02-17 14:41:01 +10:00
Damien Elmes
b9276f8d56
add helper script to extract previous translated string
2020-02-17 13:41:21 +10:00
Damien Elmes
d13473d456
make sure ftl files get updated
2020-02-17 12:35:55 +10:00
Damien Elmes
908bd93831
fix sync-git
2020-02-17 11:45:56 +10:00
Damien Elmes
f40a00f0cb
localize some error messages
2020-02-17 11:38:22 +10:00
Damien Elmes
f6643eda53
use new i18n infrastructure for more media check / media sync strings
2020-02-17 10:18:20 +10:00
Damien Elmes
1f736239cd
pass progress back as translated string(s)
2020-02-17 08:40:17 +10:00
Damien Elmes
8450214cda
add ftl to the build process, and a sync-git script
...
also
- ensure po files are checked when updated
- add start of sync.ftl
2020-02-17 08:40:17 +10:00
Damien Elmes
632041f14f
drop unused threadLocal and noHint i18n code
2020-02-17 08:40:17 +10:00
Damien Elmes
ff9daa099b
use new file locations for translations
...
- translation files are now stored in a separate repo, and
use a layout compatible with Pontoon
- normalize the language code in aqt, so that old config settings
and command line arguments are correctly handled
- store Qt and gettext translations in separate subfolders
- remove Crowdin scripts
2020-02-17 08:40:17 +10:00
Damien Elmes
067ade9a3b
move Gettext translations into separate repo for Pontoon
2020-02-17 08:40:17 +10:00
Damien Elmes
0acae7ecf7
update translations
2020-02-17 08:40:17 +10:00
Damien Elmes
7a0d1ffae0
fix sync deauth
2020-02-17 08:40:17 +10:00
Damien Elmes
834989a019
include report in MediaCheckOutput
2020-02-17 08:40:17 +10:00
Damien Elmes
89626c1a72
use media.trash for unused media deletion as well
2020-02-17 08:40:17 +10:00
Damien Elmes
fc7c2fe187
accept clicks on the progress dialog close button when updating
2020-02-17 08:40:17 +10:00
Damien Elmes
7ce49cb1f8
fix latex render progress; display more frequently
2020-02-17 08:40:17 +10:00
Damien Elmes
71c2730244
rename aqt/media.py to mediacheck.py
2020-02-17 08:40:17 +10:00
Damien Elmes
c4d6d9480c
if latex fails to render in bulk, show the user the problem
2020-02-17 08:40:17 +10:00
Damien Elmes
625b5728cc
new render_all_latex() + gui button; remove some old code
2020-02-17 08:40:17 +10:00
Damien Elmes
edbb23b0ce
sort media list
2020-02-17 08:40:17 +10:00
Damien Elmes
790f3c9f72
plug new media check in
2020-02-17 08:40:17 +10:00
Damien Elmes
edf60b10d4
backend stores media folder/db locations; don't need to pass them in
2020-02-17 08:40:17 +10:00
Damien Elmes
9c60f2c77e
log media DB change registration progress, and allow aborting it
2020-02-17 08:40:17 +10:00
Damien Elmes
ef14b1a96b
simplify code by accumulating stats at the source
2020-02-17 08:40:17 +10:00
Damien Elmes
1f931a5b78
defer errors on upload to media check
2020-02-17 08:40:17 +10:00
Damien Elmes
469798f523
autosync media every ~15 minutes
2020-02-17 08:40:17 +10:00
Damien Elmes
14cb7357fb
autosync media on close
2020-02-17 08:40:17 +10:00
Damien Elmes
728e71f589
autosync media on startup
2020-02-17 08:40:17 +10:00
Damien Elmes
e9884a4b14
add extra hook for media sync start/stop
2020-02-17 08:40:17 +10:00
Damien Elmes
5835a68f47
if toolbar refreshed, make sure not to clear syncing
2020-02-17 08:40:16 +10:00
Damien Elmes
77158760ff
use enums for some common errors
2020-02-17 08:40:16 +10:00
Damien Elmes
85b5c26930
catch DB errors in sync
2020-02-17 08:40:16 +10:00
Damien Elmes
bd14e30f63
constant sync spin speed
2020-02-17 08:40:16 +10:00
Damien Elmes
b883b09414
pass in endpoint
2020-02-17 08:40:16 +10:00
Damien Elmes
c489b6b7ac
catch network errors
2020-02-17 08:40:16 +10:00
Damien Elmes
c02a490be0
move more logic into mediasync.py, handle auth errors
2020-02-17 08:40:16 +10:00
Damien Elmes
ecab2da99e
remove unused code
2020-02-17 08:40:16 +10:00
Damien Elmes
1ba2e30854
show spinner when media sync active, click to reveal dialog
2020-02-17 08:40:16 +10:00
Damien Elmes
738e415463
connect media sync progress to Python, add a progress dialog
2020-02-17 08:40:16 +10:00
Damien Elmes
c9a5ed3cc6
add add_file() and write_data()
2020-02-17 08:40:16 +10:00
Damien Elmes
dee114df63
put head text after css/js imports so it can override them
...
as discussed in PR #438
2020-02-17 08:38:59 +10:00
Glutanimate
c3c31d1454
Add deck_browser_will_render_section hook
...
Allows add-on authors to specifcally target and modify individual
sections of the deck browser HTML body at string composition time.
2020-02-16 19:29:01 +01:00
Damien Elmes
415cb15661
Merge pull request #447 from glutanimate/browser-sidebar-tree-hooks
...
Add browser_will_build_tree filter
2020-02-16 08:36:28 +10:00
Damien Elmes
f6bad7b9c3
Merge pull request #445 from glutanimate/new-html-view-hooks-2
...
Allow add-on authors to easily inject their own content into Anki's web views – take 3
2020-02-16 08:32:34 +10:00
Glutanimate
b7dde202b5
Add a convenience function for creating toolbar links
...
Similar to aqt.editor.Editor.addButton
2020-02-15 23:22:41 +01:00
Glutanimate
5378587f67
Add top_toolbar_did_init_links hook
...
Allows extending the links in the top toolbar, in a similar
fashion to editor_did_init_shortcuts
2020-02-15 23:21:23 +01:00
Glutanimate
b7e0d4388a
Add browser_will_build_tree filter
...
Allows add-ons to populate the browser sidebar tree with their own
items, and/or take over specific construction stages in their
entirety
2020-02-15 21:03:15 +01:00
Glutanimate
356eda66f4
Update documentation for webview_will_set_content and WebContent
2020-02-15 15:03:58 +01:00
Glutanimate
28a394a074
Assume that web assets without a specified subpath are under /_anki
...
Maintains compatibility with existing add-ons
2020-02-15 15:03:43 +01:00
Damien Elmes
3d1e89f014
Merge pull request #433 from Arthur-Milchior/ints
...
Constants
2020-02-14 08:37:31 +10:00
ijgnd
e39d18647f
small fix: store return value for hook in preview
2020-02-13 18:51:11 +01:00
Glutanimate
f2f16903b6
Fix "js" parameter type
2020-02-12 22:20:30 +01:00
Glutanimate
ffdafaee6d
Fix missing "Optional" import and lint
2020-02-12 22:15:44 +01:00
Glutanimate
7e213bdcd5
Pass CardInfoDialog context to stdHtml
2020-02-12 22:12:45 +01:00
Glutanimate
d7836e3af8
Add webview_will_set_content hook & update supporting code accordingly
2020-02-12 22:00:13 +01:00
Glutanimate
88b5d94513
Refactor web view title setting and add titles to all web views
...
Simplifies debugging web views
2020-02-12 21:03:11 +01:00
Damien Elmes
5faaf35eec
fix odd outline in replay button, and center align
...
https://anki.tenderapp.com/discussions/beta-testing/1708-anki-2120-beta#comment_48079637
2020-02-12 09:18:32 +10:00
Damien Elmes
faded8f56d
study screen -> overview screen wording
...
This is a test change to see how Crowdin handles wording tweaks
2020-02-12 09:02:48 +10:00
Damien Elmes
369c810778
update translations
2020-02-12 08:59:14 +10:00
Damien Elmes
084e059508
constrain editor and reviewer image width to container width
...
view height still makes more sense in the reviewing screen so images
are relative to the window instead of the document
2020-02-12 08:33:55 +10:00
Damien Elmes
89f926f177
night mode fix for find dupes screen
2020-02-12 08:28:33 +10:00
Damien Elmes
e64b1e0ca2
provide easy access to browser from preview/dupes handlers
2020-02-12 08:28:21 +10:00
Damien Elmes
27dabaeaa6
tweak wording
2020-02-12 08:14:16 +10:00
Damien Elmes
f8338b094d
move export notes action to the notes menu
2020-02-12 08:09:12 +10:00
Arthur Milchior
097e6d4b46
Adding export option in Browser
2020-02-11 10:50:59 -08:00
Arthur Milchior
c16a3954fa
browser._exporting
2020-02-11 10:50:59 -08:00
Arthur Milchior
078a10ae55
Replace list of deck by "Browser Selection"
2020-02-11 10:50:59 -08:00
Arthur Milchior
9c158e615e
if cards are selected, default is apkg
2020-02-11 10:50:59 -08:00
Arthur Milchior
d1183df830
aqt.exporter takes extra argument cid
2020-02-11 10:49:13 -08:00
Damien Elmes
897f7ed249
fix error when double-clicking open profile button
...
https://anki.tenderapp.com/discussions/ankidesktop/38670-bug-when-auto-sync-is-enabled-and-open-profile-button-is-double-clicked
2020-02-10 09:32:56 +10:00
Damien Elmes
6096d19b85
work around HTML editor race condition on macOS
...
https://anki.tenderapp.com/discussions/beta-testing/1785-cant-see-html-boxes
2020-02-10 09:25:11 +10:00
Damien Elmes
a7348f0d23
ensure the inverted images don't appear over toolbar
2020-02-09 09:30:37 +10:00
Damien Elmes
c8eb939231
support AnkiMobile's drawings in night mode
2020-02-09 09:20:08 +10:00
Damien Elmes
fc40182335
pass instance to webview_did_receive_js_message instead of string
2020-02-09 08:59:29 +10:00
Damien Elmes
b4761698cb
Merge pull request #441 from Arthur-Milchior/hookRefreshOverview
...
Allow to change main window when overview/deckbrowser is shown
2020-02-09 08:02:41 +10:00
Arthur Milchior
0d23f5dafb
Allow to change main window when overview/deckbrowser is shown
2020-02-08 08:09:12 -08:00
Damien Elmes
cc27baef35
formatting
2020-02-07 17:55:26 +10:00
Damien Elmes
c8f3c5819d
don't filter strong/em; sort list of tags
2020-02-07 17:55:17 +10:00
Damien Elmes
e0d81675c2
update translations
2020-02-07 13:26:15 +10:00
Damien Elmes
d20ac6f341
more legible graph colours in night mode
2020-02-07 13:21:46 +10:00
Arthur Milchior
769c806c2d
correct missing french translation
2020-02-05 20:48:30 -08:00
Arthur Milchior
607bcc55c2
Reformatting through black
2020-02-04 08:47:36 -08:00
Arthur Milchior
611ce618a8
QUEUE and TYPE day learn, relearn
2020-02-04 08:47:36 -08:00
Arthur Milchior
41ffdbd504
QUEUE_TYPE_REV and CARD_TYPE_REV
2020-02-04 08:47:36 -08:00
Arthur Milchior
44368caf55
CARD_TYPE_LRN and QUEUE_TYPE_LRN
2020-02-04 08:47:35 -08:00
Damien Elmes
16e9a9c32f
clearer variable names
2020-02-04 17:10:20 +10:00
Damien Elmes
ff466ff3e9
minor wording tweak
2020-02-04 17:06:41 +10:00
Damien Elmes
511d2cf469
default human_version to None
2020-02-04 17:03:21 +10:00
Damien Elmes
89ad3ae00c
Merge pull request #435 from ijgnd/debug2
...
Extend Copy Debug Info and add human_version to manifest.json
2020-02-04 17:01:50 +10:00
ijgnd
aabfb83fb5
about.py - some type hints
2020-02-04 04:16:51 +01:00
ijgnd
0c4f520725
Extend Copy Debug Info
2020-02-04 04:16:51 +01:00
ijgnd
486c5871af
add human_version to manifest.json
...
edit 7586c67 add human_version to manifest.json
2020-02-04 04:16:12 +01:00
Arthur Milchior
e27b2ff554
QUEUE_TYPE_NEW and CARD_TYPE_NEW
2020-02-03 02:24:37 -08:00
Arthur Milchior
e5b4dc62ae
radioCram
2020-02-03 02:24:37 -08:00
Arthur Milchior
0a4641cc2d
radioPreview
2020-02-03 02:24:37 -08:00
Arthur Milchior
e4d698e399
radioAhead
2020-02-03 02:24:37 -08:00
Arthur Milchior
1ffde9ca7f
radioForgot
2020-02-03 02:24:37 -08:00
Arthur Milchior
d2007462da
radiorRev
2020-02-03 02:24:37 -08:00
Arthur Milchior
46c62526d0
radioNew
2020-02-03 02:24:37 -08:00
Damien Elmes
b8f90f4e4b
add option to disable audio interrupting
2020-02-03 08:55:14 +10:00
Damien Elmes
85b3a1dc94
formatting
2020-02-02 13:09:02 +10:00
Damien Elmes
62b5c4bf73
only apply padding fix to stats screen
...
It was breaking the display of dialogs like the filtered deck screen
2020-02-02 13:07:24 +10:00
Damien Elmes
6dbbc52d1a
more contrast on buttons and scrollbars
2020-02-02 12:53:35 +10:00
Damien Elmes
c1c1a54ea8
match fusion bars to webview bars, bump size again
2020-02-02 12:25:07 +10:00
Damien Elmes
55c8a10a9d
fix gridline color in macOS dark mode
...
https://anki.tenderapp.com/discussions/beta-testing/1752-beta7-nightmode-issues-on-mac
2020-02-02 12:01:27 +10:00
Damien Elmes
cca836de34
make pylint happy
2020-01-31 14:30:41 +10:00
Damien Elmes
3377fea96c
only import darkdetect on a Mac
2020-01-31 14:14:54 +10:00
Damien Elmes
596a38d0f8
mypy+darkdetect fix
2020-01-31 13:45:25 +10:00
Damien Elmes
fe9f886955
update translations
2020-01-31 13:44:46 +10:00
Damien Elmes
74f5acce6e
when dark mode not active, match fusion buttons
2020-01-31 13:39:52 +10:00
Damien Elmes
d13e6cb29e
redraw top toolbar when deck list refreshed
...
Just a hack that allows users to click on Decks to adjust the colour
after a macOS theme change.
2020-01-31 13:31:31 +10:00
Damien Elmes
a25c092a8b
ignore dark mode when running from source, as it doesn't work
2020-01-31 13:30:35 +10:00
Damien Elmes
b7c492c40c
maintain separate icon cache for light and dark themes
2020-01-31 13:30:12 +10:00
Damien Elmes
7a63c42b39
use night mode when dark mode active, using standard macOS theme
2020-01-31 13:15:08 +10:00
Damien Elmes
39b7786573
put % in spinners
...
fixes the lone % shown for users of the v1 scheduler
2020-01-31 12:19:51 +10:00
Damien Elmes
bc609dc2d9
ignore immediate=True in progress dialog
...
Instead, set the busy cursor immediately to give the user feedback,
but defer popup for at least 500ms. This will hopefully address the
white flash in night mode on Windows, and prevent progress dialogs
from rapidly appearing and disappearing for short operations.
2020-01-31 08:47:05 +10:00
Damien Elmes
5da6797a99
ignore foreground/background colour in spans when night mode active
...
This prevents pasted text from a standard webpage appearing as
black on white. It could theoretically be made smarter in the future,
but handling all the situations where the background or foreground
colour is not exactly #000/#fff might be tricky.
2020-01-31 08:03:09 +10:00
Damien Elmes
58fdc22486
make link/filtered deck colour in night mode more blue
2020-01-31 07:38:14 +10:00
Damien Elmes
4f6d18ee19
drop the extraneous svg group
2020-01-31 07:23:35 +10:00
Damien Elmes
3309d0f8c6
disable elastic scrolling to work around Qt's buggy behaviour on macOS
2020-01-31 07:12:27 +10:00
Damien Elmes
42f09fe933
add compat soundLink selector back
2020-01-31 07:01:22 +10:00
Damien Elmes
a8e0b53165
add .night_mode as well
...
Please report if this causes any regressions.
2020-01-31 07:00:01 +10:00
Damien Elmes
bbd134fcc6
use SVG for the play icon, and reduce the default size to 40px
2020-01-28 10:11:29 +10:00
Damien Elmes
d09a0e6115
update translations
2020-01-27 18:17:59 +10:00
Damien Elmes
2bada0e891
tolerate branch idx out of range
...
Branches can't be deleted at the moment, but this may change in the
future.
2020-01-27 17:59:40 +10:00
Damien Elmes
8014fd6574
mac top toolbar looks better with a slightly whiter border
2020-01-27 17:02:40 +10:00
Damien Elmes
8bd253c48f
rework update checks to match latest AnkiWeb API
2020-01-27 17:01:09 +10:00
Damien Elmes
bd94e6fc01
fix +ve max versions being marked as disabled
2020-01-27 16:58:12 +10:00
Damien Elmes
92adb7a6db
don't do HTML filtering when pasting urls/text/images
...
fixes
https://anki.tenderapp.com/discussions/ankidesktop/37752-anki-21-wont-play-audio-files-with-a-blank-in-the-title
2020-01-26 19:13:31 +10:00
Damien Elmes
7abe5d2a9b
fix pylint
2020-01-26 18:57:32 +10:00
Damien Elmes
f38aa3f320
style tags area like fields
2020-01-26 18:47:28 +10:00
Damien Elmes
7b84eb2c7f
remove the extra margin in the editing area so everything lines up
2020-01-26 18:26:03 +10:00
Damien Elmes
f253711559
remove the line at the top of the editor
2020-01-26 18:25:44 +10:00
Damien Elmes
dbaac0ae23
use a darker rather than lighter border in night mode
2020-01-26 18:16:21 +10:00
Damien Elmes
42527d0b08
add a (perhaps temporary) tts-voices: filter to show all available engines
2020-01-26 17:35:07 +10:00
Damien Elmes
47bcb3845c
support speed control in tts tags
2020-01-26 14:31:07 +10:00
Damien Elmes
54626b4ae3
slightly lighter, larger night mode scrollbar
2020-01-26 10:39:53 +10:00
Damien Elmes
68dc9d1e61
fix webview button alignment on Linux
...
caused by the height: specification inside webview.py
2020-01-26 10:18:24 +10:00
Damien Elmes
6973df52a0
fix tags area and stats buttons in night mode
2020-01-26 09:13:38 +10:00
Damien Elmes
2d4d89d5a5
fix autoplaying of audio in preview screen, and drop extend_and_play()
2020-01-25 16:02:34 +10:00