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