Damien Elmes
00c68b44e0
update Python deps
2021-10-02 23:52:23 +10:00
Damien Elmes
676d043011
add missing encoding argument to open calls
2021-10-02 23:51:50 +10:00
Damien Elmes
51ac8d7813
use extra variable in stdHtml() to work around a pylint crash
2021-10-02 22:47:13 +10:00
Damien Elmes
8960017554
Merge pull request #1402 from RumovZ/row-changed
...
Connect `currentChanged()` and add legacy alias for `onRowChanged()`
2021-10-02 09:06:05 +10:00
RumovZ
db3cda588f
Add legacy alias browser.onRowChanged()
2021-10-01 18:36:12 +02:00
RumovZ
287acfe017
React to currentChanged() signal
...
Decouples changes of the current element and changes of the selection.
Introduces `browser.current_card` which has previously been amalgamated
with the previewer card `browser.card`.
2021-10-01 16:40:25 +02:00
Damien Elmes
8b4030a1b5
Merge pull request #1399 from abdnh/addon-homepage-manifest-prop
...
Add the homepage property to manifest.json
2021-10-01 21:52:00 +10:00
Abdo
fe24525aa5
Add the homepage property to manifest.json
2021-10-01 14:40:36 +03:00
Damien Elmes
181bfab3d9
Merge pull request #1397 from RumovZ/column-tooltips
...
Add tooltips for some browser columns
2021-10-01 19:12:59 +10:00
Damien Elmes
8ba252a53e
Merge pull request #1400 from RumovZ/revert-hide-completer
...
Remove workaround for Qt completer bug
2021-10-01 15:30:37 +10:00
Damien Elmes
4897a6fcfa
Merge pull request #1392 from RumovZ/missing-row-handling
...
Handle missing rows consistently and speed up selections
2021-10-01 14:24:04 +10:00
Damien Elmes
5d7eb8c425
update to latest rules_nodejs & switch to ts_project
...
ts_library() is deprecated and will presumably be dropped from a
future rules_nodejs, and it wasn't working with the jest tests
after updating, so we switch over to ts_project().
There are some downsides:
- It's a bit slower, as the worker mode doesn't appear to function
at the moment.
- Getting it working with a mix of source files and generated files
was quite tricky, especially as things behave differently on Windows,
and differently when editing with VS Code. Solved with a small patch
to the rules, and a wrapper script that copies everything into the
bin folder first. To keep VS Code working correctly as well, the built
files are symlinked into the source folder.
- TS libraries are not implicitly linked to node_modules, so they
can't be imported with an absolute name like "lib/proto" - we need
to use relative paths like "../lib/proto" instead. Adjusting "paths"
in tsconfig.json makes it work for TS compilation, but then it fails
at the esbuild stage. We could resolve it by wrapping the TS
libraries in a subsequent js_library() call, but that has the downside
of losing the transient dependencies, meaning they need to be listed
again. Alternatively we might be able to solve it in the future by
adjusting esbuild, but for now the paths have been made relative to
keep things simple.
Upsides:
- Along with updates to the Svelte tooling, Svelte typing has improved.
All exports made in a Svelte file are now visible to other files that
import them, and we no longer rebuild the Svelte files when TS files
are updated, as the Svelte files do no type checking themselves, and
are just a simple transpilation. Svelte-check now works on Windows again,
and there should be no errors when editing in VS Code after you've
built the project. The only downside seems to be that cmd+clicking
on a Svelte imports jumps to the .d.ts file instead of the original now;
presumably they'll fix that in a future plugin update.
- Each subfolder now has its own tsconfig.json, and tsc can be called
directly for testing purposes (but beware it will place build products
in the source tree): ts/node_modules/.bin/tsc -b ts
- We can drop the custom esbuild_toolchain, as it's included in the
latest rules_nodejs.
Other changes:
- "image_module_support" is moved into lib/, and imported with
<reference types=...>
- Images are now imported directly from their npm package; the
extra copy step has been removed.
Windows users may need to use "bazel clean" before building this,
due to old files lying around in the build folder.
2021-10-01 12:52:53 +10:00
RumovZ
c04c8db9a4
Remove workaround for Qt completer bug
...
Reverts #803 .
2021-09-30 17:56:37 +02:00
RumovZ
0d68e1d59c
Add tooltips for some browser columns
2021-09-30 13:15:09 +02:00
RumovZ
2fca3de03e
Remove redundant call to len_columns()
2021-09-28 12:11:20 +02:00
RumovZ
7c376e0172
Tweak comment
...
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2021-09-28 11:48:35 +02:00
RumovZ
6be0de0310
Speed up to_row_of_unselected_note()
...
Skip rows between selected rows and return fetched note ids.
2021-09-28 11:47:13 +02:00
RumovZ
17ece47beb
Cache selectionModel().selectedRows()
2021-09-28 11:45:22 +02:00
RumovZ
014220959a
Calculate len_selection depending on modifiers
...
If no modifiers are pressed, a single row has probably been clicked and
`selectedRows()` is fast, while a lot of rows might have been deselcted.
2021-09-28 10:22:20 +02:00
RumovZ
4245a6bbc3
Prefer selectionModel().reset() over .clear()
...
The latter triggers `selectionChanged()` unreliably, probably due to the
aggregation of chronologically close events, causing problems in
tracking `_len_selection`. `reset()` never emits signals.
2021-09-28 10:19:33 +02:00
Damien Elmes
b1e7a25623
Revert "Revert "Merge pull request #1364 from evandroforks/fix_unclosed_python_file""
...
This reverts commit a2ac197fd7 .
Looks like it wasn't the cause of the previously reported problem:
https://forums.ankiweb.net/t/2-1-48-tts-problem/13587/2
2021-09-27 18:43:16 +10:00
Damien Elmes
04a620ff1a
Merge pull request #1382 from RumovZ/tags-from-sidebar
...
Tags from sidebar
2021-09-27 18:41:32 +10:00
Damien Elmes
c3c51af7a9
Merge pull request #1388 from lolilolicon/patch-1
...
Quote $PREFIX properly for paths with spaces
2021-09-27 18:39:25 +10:00
RumovZ
94eafcf831
Calculate number of selected rows manually
...
`len(self._view.selectionModel().selectedRows())` is slow for large
selections, because Qt queries flags() for every selected cell, so we
calculate the number of selected rows ourselves.
2021-09-27 10:15:53 +02:00
RumovZ
8daecb94e5
Switch to new row before deleting notes
...
The table now properly deselects deleted rows, but that takes effort and
it's more convenient to have a selected row after deleting.
2021-09-25 17:28:38 +02:00
RumovZ
c0616fe820
Handle deleted or restored rows
...
- Cache the result of 'table.len_selection()'
- Update this cache manually when a row was deleted or restored
- Emit 'dataChanged()' after such a change to fix flags not updating
correctly to the shortcut in 'model.flags()'
- Remove/retsore focus if the current element was deleted/restored
2021-09-25 17:16:53 +02:00
RumovZ
053bbe8f01
Only check flags of cached rows
...
Speeds up the selection process (esp. Ctrl+A) by avoiding to fetch rows.
Co-authored-by: BlueGreenMagick <BlueGreenMagick@users.noreply.github.com>
2021-09-25 15:32:22 +02:00
RumovZ
0a95d69735
Add callbacks to row fetching routine
...
Called when a row is detected that has been deleted or restored.
2021-09-25 15:27:19 +02:00
RumovZ
a77c65006f
Check 'index.isValid()' in 'table.model'
2021-09-25 15:21:06 +02:00
Soren Bjornstad
834118ce8a
Add hook after selecting a new note type in the add window
2021-09-24 21:54:33 -05:00
lolilolicon
1120e6d644
Quote $PREFIX properly for paths with spaces
2021-09-23 01:24:52 +00:00
lolilolicon
ad9497aaf7
Quote $PREFIX properly for paths with spaces
2021-09-23 01:20:53 +00:00
hikaru-y
6e196e43fd
Fix memory leak in previewer
...
Related thread:
https://forums.ankiweb.net/t/high-memory-usage-over-time-on-2-1-44/13544/
2021-09-22 17:21:08 +09:00
RumovZ
dcb7d44ce4
Enable adding/removing tags from the sidebar ...
...
... to selected notes.
2021-09-21 11:48:43 +02:00
Damien Elmes
54ec174453
Merge pull request #1375 from RumovZ/disable-actions
...
Disable unusable browser actions on row change
2021-09-21 18:38:30 +10:00
Damien Elmes
888f02a0f6
Merge pull request #1379 from BlueGreenMagick/dont-fill-empty-on-add-cards
...
set CardLayout fill_empty=False for add cards editor
2021-09-21 15:08:54 +10:00
Damien Elmes
2695cb64ff
add hidden option to disable tooltips in browse screen
...
https://forums.ankiweb.net/t/browser-text-pop-up-when-hovering-over-card-poll/13254
2021-09-21 15:03:37 +10:00
Damien Elmes
916ff49efe
temporary fix for error on deleting ( #1374 )
2021-09-20 22:02:44 +10:00
Damien Elmes
8dde10e83a
add startup message about forcing Wayland
2021-09-20 21:42:16 +10:00
Damien Elmes
c0abcdf647
Revert "Merge pull request #1364 from evandroforks/fix_unclosed_python_file"
...
This reverts commit c05475a49e .
Revert "possible fix for reported audio issues"
This reverts commit e53192a079 .
Reverting in case https://forums.ankiweb.net/t/2-1-48-release-candidate/13268/10
is related to this change. If the issue persists, we'll know this was
not the cause.
2021-09-20 21:39:15 +10:00
bluegreenmagick
1a9e0ec1a0
set CardLayout fill_empty=False for add cards editor
...
Card layout view functions as a previewer in add cards dialog
so displaying accurately is more important than having placeholders.
Especially for card layouts using conditional-not fields {{^Field}}
card layout is rendered badly.
2021-09-20 18:34:49 +09:00
RumovZ
64fd90d633
Simplify sidebar context menu separators
...
Qt can collapse consecutive menu separators, so no need to check if a
subroutine has actually added any actions to the menu.
2021-09-19 18:33:36 +02:00
RumovZ
8fd0e89a5a
Disable unusable browser actions on row change
2021-09-17 16:16:34 +02:00
Damien Elmes
e53192a079
possible fix for reported audio issues
...
https://forums.ankiweb.net/t/2-1-48-release-candidate/13268/6
This is the only area of the sound code that has changed since 2.1.47
2021-09-16 10:27:37 +10:00
Henrik Giesel
ca4430d922
Make StickyBottom actually stick and make editor fullsize + flexbox
2021-09-15 15:21:37 +02:00
Henrik Giesel
9ca8e07bbe
Correctly include editable css
2021-09-15 13:32:31 +02:00
Henrik Giesel
5811e59f27
Introduce editable module
2021-09-15 13:32:30 +02:00
Damien Elmes
93202f372c
Merge pull request #1264 from hgiesel/tageditor2
...
Svelte Tag Editor v2
2021-09-15 20:21:16 +10:00
evandrocoan
cdd8b99097
Fix previous card attribute not initialized
2021-09-13 23:16:25 -03:00
Damien Elmes
f55f1fcd21
disable wayland again, but allow enabling it
...
Will add an entry to the known issues page.
2021-09-14 09:53:23 +10:00
Damien Elmes
cb9be3b387
preserve focus on notetype change
...
Closes #1360
2021-09-13 15:31:24 +10:00
Damien Elmes
dba107db74
allow wayland again
...
See #1368
2021-09-13 15:18:32 +10:00
Damien Elmes
2c235ccc70
don't check state of current card when repositioning
...
closes #1365
2021-09-13 14:56:53 +10:00
Damien Elmes
d6552cf14e
Merge pull request #1358 from evandroforks/lastcardinfo
...
Add option to reveal previous card's info
2021-09-13 12:06:10 +10:00
evandrocoan
c1b861a7b0
Add clone stdin to another _process deletion
2021-09-09 18:36:21 -03:00
Henrik Giesel
62e4486008
Remove hiding Qt autocompleter from AddCards
2021-09-09 15:38:10 +02:00
Damien Elmes
c83843812e
add basic tag completion to backend
...
Matches should arrive in alphabetical order. Currently results are not
capped (JS should be able to handle ~1k tags without too much hassle),
and no reordering based on match location is done. Matches are substring
based, and multiple can be provided, eg "foo::bar" will match
"foof::baz::abbar".
This is not hooked up properly on the frontend at the moment -
updateSuggestions() seems to be missing the most recently typed character,
and is not updating the list of completions half the time.
2021-09-09 15:38:08 +02:00
Henrik Giesel
5aa43539a4
Remove Python TagEdit from Editor view
2021-09-09 15:37:48 +02:00
Henrik Giesel
fc5dffbf86
Save tags back to Python
2021-09-09 15:37:47 +02:00
Henrik Giesel
51732b4470
Set tags from Python
2021-09-09 15:37:47 +02:00
Henrik Giesel
d89a6af45f
Port Focus tags shortcut to webview
2021-09-09 15:37:34 +02:00
Henrik Giesel
7f6e7235f1
Display a tag-outline icon in the bottom left
2021-09-09 15:37:33 +02:00
evandrocoan
35ea88e2bb
Use Alt+i for previous/last card info because Ctrl+i could
...
easily confuse a user that Ctrl+i is for the current card.
Ctrl was first added because it is easier to press,
at least for me, then, I press first using Ctrl and if
not available go to Alt.
2021-09-08 21:26:48 -03:00
evandrocoan
14e2d0d102
Fix ResourceWarning: unclosed file <_io.BufferedWriter name=5>
...
https://forums.ankiweb.net/t/aqt-sound-py-resourcewarning-unclosed-file-io-bufferedwriter-name-5/13070
2021-09-08 21:02:12 -03:00
evandrocoan
3c5514d12f
Fix #1355
2021-09-07 23:53:47 -03:00
Ren Tatsumoto
37b00d9ca3
avoid possible performance hit
2021-09-05 16:10:34 +03:00
Ren Tatsumoto
b6e52b929d
fix test complaints
2021-09-05 15:04:24 +03:00
Ren Tatsumoto
ef24288639
Add a hook for modifiying pasted MIME data
2021-09-05 13:52:54 +03:00
Damien Elmes
acda398a2e
quote fonts added via the Add Field dialog
2021-09-02 21:05:16 +10:00
Damien Elmes
5e862c216a
Merge pull request #1349 from RumovZ/rename-with-parents
...
Disable 'Rename with Parents' for top-level items
2021-08-30 22:27:44 +10:00
RumovZ
f1fcd8830d
Disable 'Rename with Parents' for top-level items
2021-08-30 11:10:14 +02:00
RumovZ
e482322f0d
Reset flags when loading a profile...
...
... not only on startup.
2021-08-30 11:07:40 +02:00
Damien Elmes
8d4b38533a
Merge pull request #1344 from glutanimate/add-dialog-manager-hooks
...
Add a hook for subscribing to dialog creation / opening
2021-08-29 11:36:11 +10:00
Damien Elmes
f3b6041e79
Merge pull request #1345 from hgiesel/windowsfocus
...
Use different artificial reviewer button highlight for Windows
2021-08-29 11:35:32 +10:00
Damien Elmes
c0392192c5
more checks for package name
...
Follows up #1343
2021-08-29 11:23:47 +10:00
Henrik Giesel
ff68eb2268
Use different artificial reviewer button highlight for Windows
2021-08-28 21:30:07 +02:00
Glutanimate
09fb9afb18
Add a hook for subscribing to dialog creation / opening
2021-08-28 20:37:31 +02:00
bluegreenmagick
e8cb921747
Fix bug when add-on package string is ""
...
which deleted the entire add-on folder
2021-08-27 21:49:55 +09:00
Damien Elmes
c8cf606736
avoid spurious warning in addcards startup
2021-08-20 11:37:23 +10:00
Damien Elmes
96651a4123
mark old editing code as deprecated
...
https://forums.ankiweb.net/t/emacs-style-shortcuts-with-ctrl-t-in-the-editor-in-45/12280/6
2021-08-20 11:37:11 +10:00
Damien Elmes
e2f89fc24c
show v3 scheduler in error info
2021-08-20 10:47:41 +10:00
Damien Elmes
87afb69c0e
fix default deck being shown in deck options deck prompt
2021-08-19 12:33:36 +10:00
Damien Elmes
bddee7eb99
preferences update needs to be a collection op
...
- fixes https://forums.ankiweb.net/t/v3-bug-card-modified-without-updating-queue/12418
- fixes undo menu not updating after closing preferences screen
2021-08-19 10:47:55 +10:00
Damien Elmes
ad306d763e
add a small .wait() after terminating player process
...
Avoids python3.8/subprocess.py:942:
ResourceWarning: subprocess 90387 is still running
_warn("subprocess %s is still running" % self.pid,
2021-08-19 10:33:56 +10:00
Damien Elmes
bf2c157405
Merge pull request #1333 from kelciour/mpv-property-list-timeout
...
A possible fix for "mpv timed out, restarting"
2021-08-18 16:39:50 +10:00
Damien Elmes
09ad5ab7c3
Merge pull request #1331 from hikaru-y/fix-fragment-autoplay
...
Fix <audio>/<video> with 'autoplay' issue
2021-08-18 16:37:14 +10:00
Damien Elmes
22e70b520d
shift timebox check to post-answer
...
- should prevent non-review actions from triggering display
- should prevent next card's audio from playing before diag. dismissed
- the timer hack should no longer be required, as the webview will
have already been loaded
https://forums.ankiweb.net/t/timebox-pop-up-suddenly-appears-when-daily-cutoff-hour-rolls-over-even-when-not-in-the-reviewer/12385
2021-08-18 16:25:23 +10:00
Damien Elmes
176c626ffd
ctrl+alt+n for forget
...
https://forums.ankiweb.net/t/anki-2-1-44-make-cards-new/12247/7
2021-08-18 15:32:45 +10:00
Damien Elmes
70dec17296
add symlink to generated icons.qrc
...
Otherwise Qt Designer tries to remove the reference.
2021-08-18 15:32:45 +10:00
kelciour
3962de958a
A possible fix for "mpv timed out, restarting"
...
https://forums.ankiweb.net/t/anki-wont-open-mpv-timed-out/7579/6
2021-08-18 00:47:04 +03:00
hikaru-y
53d8a9a492
Silence 'link preload' warning on the first card
...
Due to e23737f , a harmless warning about 'link preload' will be output
to the console on the first card.
2021-08-18 02:25:51 +09:00
Arthur Milchior
c0625e9145
Add Card history: keep & instead of replacing them by underline
2021-08-15 06:32:03 +02:00
Damien Elmes
15c3b2a62a
fix deprecation warning in modelchooser.py
2021-08-04 12:05:11 +10:00
Damien Elmes
8fb6ad2f08
fix notetype selection in import screen
...
Accidental rename in "PEP8 cards.py"
2021-08-04 12:01:28 +10:00
Damien Elmes
821775f8cf
fix redo menu item showing undo text
2021-08-04 10:28:45 +10:00
Henrik Giesel
2649dc0ad7
Add toggle sticky shortcuts F9 and Shift+F9
2021-08-03 05:52:07 +02:00
Damien Elmes
9a809af6ab
Merge pull request #1320 from hgiesel/colorpickerplus
...
Remember last text and highlight color again
2021-08-03 09:07:46 +10:00
Henrik Giesel
39566638f3
Remember last text and highlight color again
2021-08-02 23:12:00 +02:00
Damien Elmes
48028aa397
Merge pull request #1319 from abdnh/sidebar-scroll-center
...
Use PositionAtCenter for sidebar scrolling
2021-08-02 18:35:38 +10:00
Damien Elmes
28535b4f84
Merge pull request #1311 from hikaru-y/flag-mark-icons-in-previewer
...
Show flag and mark icons in previewer
2021-08-02 18:33:36 +10:00
abdo
26b6688cb2
Use PositionAtCenter for sidebar scrolling
2021-08-02 10:57:54 +03:00
Damien Elmes
bd146fa4fb
update congrats screen periodically; automatically move back to study
2021-08-02 16:05:18 +10:00
Damien Elmes
3dc7bd6051
fix study deck->add deck->cancel
2021-07-30 11:35:55 +10:00
Damien Elmes
8e48722cf0
prevent hiding of sidebar
...
https://forums.ankiweb.net/t/browser-format-issues/11504/10
2021-07-28 11:14:09 +10:00
hikaru-y
7c90637922
Show flag and mark icons in previewer
2021-07-26 20:13:42 +09:00
Damien Elmes
7749675624
reload card if there are registered hooks
...
https://forums.ankiweb.net/t/2-1-45-release-candidate/11362/54
2021-07-26 20:48:30 +10:00
Damien Elmes
ed409233d4
Merge pull request #1303 from Arthur-Milchior/paste_post_hook
...
Add a hook to execute after pasting in a field
2021-07-26 11:01:29 +10:00
RumovZ
67ecb3dfc3
Prevent DeckChooser from setting filtered deck
2021-07-25 08:54:39 +02:00
Arthur Milchior
283198f93c
Add a hook to execute after pasting in a field
...
I expect to use it to ensure that images are resizable after they get pasted in a field
2021-07-25 01:53:25 +02:00
Damien Elmes
6c4b74e565
fix ugly js confirm box
...
https://forums.ankiweb.net/t/2-1-45-release-candidate/11362/2
2021-07-24 22:04:06 +10:00
Damien Elmes
e43f2b23cc
clarify deck description message
...
+ drop the reference to overview screen
2021-07-24 21:45:09 +10:00
Damien Elmes
b158cd4e1f
drop traceback in importing error message
2021-07-24 20:05:32 +10:00
Damien Elmes
10715d7e16
fix Python lints
2021-07-23 20:22:32 +10:00
RumovZ
72a9507c18
Remove native HelpPage enum
...
Also remove oneof from pb enum and handle strs in Python.
2021-07-22 16:32:49 +02:00
RumovZ
b05c812a55
Switch frontend to use backend links
2021-07-22 10:07:13 +02:00
RumovZ
16e3f2c7f3
Fix browser search completer
...
Adding an empty entry at the top fixes
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/45
and allows for scrolling back to an empty line.
2021-07-17 12:23:19 +02:00
Damien Elmes
4ed0260248
Merge pull request #1297 from hgiesel/browsershortcuts
...
Allow Using Ctrl+Shift+P from Browser when focusing Qt components
2021-07-17 15:18:36 +10:00
Henrik Giesel
f016df00cd
Remove unnecessary lambda
2021-07-17 04:17:28 +02:00
Henrik Giesel
59f801abc7
Allow Using Ctrl+Shift+P from Browser when focusing Qt components
2021-07-17 03:39:27 +02:00
Damien Elmes
c93476512c
Merge pull request #1292 from hgiesel/reviewerplus
...
Move reviewer to ts/reviewer v2
2021-07-17 09:10:14 +10:00
hikaru-y
dc11d7c297
Revert "Follow-up to #1271 (Preload answer images)"
2021-07-16 23:57:49 +09:00
Henrik Giesel
170bc5c25e
Revert to MathJax through script tag
2021-07-16 16:56:57 +02:00
Henrik Giesel
28e2f62793
Remove protobuf important from reiewer (no longer necessary (?))
2021-07-16 16:56:56 +02:00
Henrik Giesel
70040d508e
Include MathJax over ts/reviewer
2021-07-16 16:56:56 +02:00
Henrik Giesel
c62d2dc033
Export jquery via ts/reviewer
2021-07-16 16:56:56 +02:00
Henrik Giesel
8ee6eb71eb
Include css-browser-selector via ts/reviewer
2021-07-16 16:56:56 +02:00
Henrik Giesel
11f06161c9
Include protobuf in clayout and browser (p)reviewer
2021-07-16 16:56:56 +02:00
Henrik Giesel
2536063784
Export getTypedAnswer
2021-07-16 16:56:56 +02:00
Henrik Giesel
791d7f2f4b
Move reviewer to ts/reviewer
2021-07-16 16:56:55 +02:00
Damien Elmes
df6d3ed116
Merge pull request #1288 from evandroforks/clayout_next_card_shortcut
...
Created shortcut to switch between card types on clayout.py
2021-07-16 10:51:40 +10:00
Damien Elmes
eb4e18a45f
Merge pull request #1293 from RumovZ/find-and-replace
...
Find & Replace
2021-07-16 10:47:16 +10:00
Damien Elmes
2d0540b741
Revert "stop (un)escaping media filenames"
...
This was flawed - while non-Latin text is now acceptable
in an IRI, we still need to be concerned with reserved characters
such as spaces, and Anki unfortunately has been storing the filenames
in unencoded form in the DB, meaning we must encode them at display
time. We won't be able to move away from this until existing notes
are rewritten, and it will probably require breaking compatibility with
older clients.
https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier
This reverts commit b21af06d75 .
2021-07-16 10:37:59 +10:00
evandrocoan
19ef304873
Created shortcut to switch between card types on clayout.py
...
editor window (F3 and F4) because it should be simple to use them
single hand and together with Ctrl+1, 2 and 3 combos.
2021-07-15 20:51:08 -03:00
RumovZ
9ba35b9efb
Remove redundant QueryOp in rename_deck()
2021-07-15 08:56:47 +02:00
Damien Elmes
090a54c6e6
support numpad enter in type answer
...
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/149
regression introduced in dc61a6f547
2021-07-15 14:46:39 +10:00
RumovZ
0804d054b7
Remove unused name prefix of sidebar templates
2021-07-13 16:41:50 +02:00
RumovZ
4f17400021
Add sidebar actions
...
- Find & Replace for notetype fields
- Rename with Parents for decks and tags
2021-07-13 16:34:02 +02:00
RumovZ
4b1218184d
Rework Find & Replace dialog:
...
- Add option to affect whole collection
- Allow to open without selection
- Add parameter for presetting field
2021-07-13 16:33:45 +02:00
Damien Elmes
492137d264
Merge pull request #1291 from RumovZ/addon-cols
...
Show key of unknown browser columns
2021-07-13 13:35:54 +10:00
RumovZ
211f39836d
Show key of unknown browser columns
2021-07-12 19:03:51 +02:00
RumovZ
300ff08ad0
Add mock browser model to support legacy resetting
2021-07-12 12:36:26 +02:00
Damien Elmes
2238cdaa43
rename Config in protobuf to avoid conflict with module name
...
+ use the enum directly, instead of wrapping it in an object
Python code retains the old "Config" name.
2021-07-11 19:27:08 +10:00
Damien Elmes
e86e0a64ea
move proto files into separate py_library in same namespace
...
Will allow importing the Protobuf without pulling in the rest of
the library. This is not a full PEP420 namespace, and the wheel still
bundles everything - it just makes things easier in a Bazel workspace.
I originally tried with PEP420, but it required more invasive changes,
and I ran into issues with mypy.
2021-07-11 14:51:25 +10:00
Damien Elmes
5255409093
refactor protobuf handling for split/import
...
In order to split backend.proto into a more manageable size, the protobuf
handling needed to be updated. This took more time than I would have
liked, as each language handles protobuf differently:
- The Python Protobuf code ignores "package" directives, and relies
solely on how the files are laid out on disk. While it would have been
nice to keep the generated files in a private subpackage, Protobuf gets
confused if the files are located in a location that does not match
their original .proto layout, so the old approach of storing them in
_backend/ will not work. They now clutter up pylib/anki instead. I'm
rather annoyed by that, but alternatives seem to be having to add an extra
level to the Protobuf path, making the other languages suffer, or trying
to hack around the issue by munging sys.modules.
- Protobufjs fails to expose packages if they don't start with a capital
letter, despite the fact that lowercase packages are the norm in most
languages :-( This required a patch to fix.
- Rust was the easiest, as Prost is relatively straightforward compared
to Google's tools.
The Protobuf files are now stored in /proto/anki, with a separate package
for each file. I've split backend.proto into a few files as a test, but
the majority of that work is still to come.
The Python Protobuf building is a bit of a hack at the moment, hard-coding
"proto" as the top level folder, but it seems to get the job done for now.
Also changed the workspace name, as there seems to be a number of Bazel
repos moving away from the more awkward reverse DNS naming style.
2021-07-10 19:17:05 +10:00
Damien Elmes
3ca4ca397a
add workaround for protobufjs requiring uppercase package names
...
I mourn the time lost trying to track this down :-(
https://github.com/protobufjs/protobuf.js/issues/1014
We can't patch the minified file in dist without essentially duplicating
it, so this change also switches from the external file to including
the src file as part of the bundle.
2021-07-10 15:24:01 +10:00
Damien Elmes
bfa8ee6b96
more friendly message for v2 import into v1
2021-07-08 10:32:27 +10:00
Damien Elmes
af6a80c4ec
Merge pull request #1277 from RumovZ/config-keys
...
Add constants for literal config keys
2021-07-07 09:14:40 +10:00
RumovZ
e763745e05
Add pylib/browser.py for literal config keys
...
Also, remove config bools for sort order.
2021-07-05 12:44:48 +02:00
hikaru-y
00eaf63d41
Follow-up to #1271
...
- remove no-longer-required 'escape_media_filenames()' b21af06d
- clean up previewer.py
2021-07-05 01:13:17 +09:00
Damien Elmes
447bd2671c
Merge pull request #1273 from hgiesel/macshortcuts
...
Execute Ctrl+C/V/X/A via execCommand in editor
2021-07-04 16:02:52 +10:00
Damien Elmes
289845a049
remove old Mac shortcut code completely
...
The shortcuts seem to work correctly without it on Qt 5.14, so this
code seems to have only been required for older Qt releases.
2021-07-04 16:00:23 +10:00
Damien Elmes
29808094c8
Merge pull request #1271 from hikaru-y/preload-images
...
Preload answer images
2021-07-04 15:50:55 +10:00
Damien Elmes
d0480ff529
Merge pull request #1270 from RumovZ/flag-manager
...
Add flag manager and hook
2021-07-04 15:45:11 +10:00
Damien Elmes
b21af06d75
stop (un)escaping media filenames
...
Back in the WebKit days, images with Unicode filenames would fail to
appear if they weren't percent-escaped. This no longer seems to be the
case - with this patch, images appear correctly on the Mac and Windows
platforms I tested with.
Fixes https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/96
Fixes #1219
2021-07-04 15:27:29 +10:00
hikaru-y
bf93324448
Preload images to be displayed on answer side
2021-07-03 21:33:00 +09:00
Henrik Giesel
b74258f79e
Satisfy qt formatter
2021-07-03 01:54:10 +02:00
Henrik Giesel
5b2290f868
Execute Ctrl+C/V/X/A through execCommand in editor (so we can customize it)
2021-07-03 01:48:49 +02:00
RumovZ
94cc0cf901
Add flag manager and hook
...
'FlagManager' allows cached access to the flag objects, takes care of
renaming flags and notifies GUI components with the hook
'flag_label_did_change'.
2021-07-02 11:16:10 +02:00
Henrik Giesel
db4cbfcb26
More uniform file naming
...
kebap-case for .ts, .scss, .html, and directories
2021-07-01 12:24:16 +02:00
Henrik Giesel
01cc9df232
Add flag icons from mdi after all
...
- This way, we can also use their modifier versions with little pluses/minuses
2021-07-01 01:16:50 +02:00
Henrik Giesel
d5f8a6e50c
Remove multiple icons, new notetype/cardtype icons
2021-07-01 01:12:11 +02:00
Henrik Giesel
eec7eae885
Remove name_prefix from field sidebar item
2021-06-30 21:02:23 +02:00
Henrik Giesel
e1c171b819
Add missing type hint
2021-06-30 21:02:23 +02:00
Henrik Giesel
32f3c5dbe7
Replace card state and clock icon
2021-06-30 21:02:23 +02:00
Henrik Giesel
1850f24c4b
Replace saved search icon
2021-06-30 21:02:23 +02:00
Henrik Giesel
5031bafb61
Add NOTETYPE_FIELD sidebar items
2021-06-30 21:02:23 +02:00
Henrik Giesel
fecceb1997
Add notetype icons
2021-06-30 21:02:23 +02:00
Henrik Giesel
5fe2519619
Add new icons for decks
2021-06-30 21:02:23 +02:00
Henrik Giesel
d9a368631f
Add tag_multiple icon
2021-06-30 21:02:23 +02:00
Damien Elmes
309f5ee528
minor follow-up to #1257
...
No need for a separate argument, as we only want to scroll when
searching.
2021-06-29 11:53:10 +10:00
Damien Elmes
8743ccf682
Merge pull request #1257 from abdnh/sidebar-scroll-to-first-match
...
Scroll to first sidebar search match
2021-06-29 11:44:28 +10:00
Damien Elmes
2bada06570
use inner function instead of return value in _expand_where_necessary()
2021-06-29 11:40:59 +10:00
abdo
27313ba53d
Scroll to first sidebar search match
2021-06-28 14:44:09 +03:00
RumovZ
1be1ca5911
Fix id check for today and card state items
2021-06-28 12:55:59 +02:00
Damien Elmes
c0dccee9fa
Merge pull request #1252 from RumovZ/fix-tag-expand
...
Fix expanding/collapsing tags triggering refresh
2021-06-27 18:45:29 +10:00
Damien Elmes
f9560586cb
PEP8 collection.py
2021-06-27 15:12:22 +10:00
Damien Elmes
fba156ec93
PEP8 models.py
2021-06-27 14:30:00 +10:00
Damien Elmes
3c46c9a7eb
PEP8 decks.py
2021-06-27 14:02:48 +10:00
Damien Elmes
d6e3964151
PEP8 cards.py
2021-06-27 12:12:23 +10:00
Damien Elmes
d73231dbdc
PEP8 notes.py
...
An example of how we can start migrating the codebase to PEP8:
- enable invalid-name at the top
- use bazel run pylib:pylint to identify names that need renaming
- use PyCharm or similar to rename the functions/variables
- in the cases where the conversion is not just snake_case, use
.register_deprecated_aliases()
+ removed the __repr__() definition, it dumps all the note content
and obscures the error message
2021-06-26 11:38:59 +10:00
Damien Elmes
5e41eb7565
add a helper so we can get semi-automatic camelCase conversion
2021-06-26 11:33:35 +10:00
Damien Elmes
5d106a4c93
Merge pull request #1254 from RumovZ/sidebar-menu-hook
...
Add hook "browser_sidebar_will_show_context_menu"
2021-06-26 08:42:59 +10:00
Damien Elmes
f9dd95254b
revert to % format string to avoid breaking add-on
...
partially reverts 3572f0a0c6
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/50
2021-06-26 08:39:16 +10:00
Damien Elmes
3670a291a9
fix error when user confirms adding cloze to basic type
2021-06-26 08:35:24 +10:00
RumovZ
5cc2932fcb
Add hook "browser_sidebar_will_show_context_menu"
2021-06-25 17:01:17 +02:00
RumovZ
7a82ea01b8
Fix expanding/collapsing tags triggering refresh
2021-06-24 17:27:53 +02:00
hikaru-y
95a8d140e4
Set background-color of body to var(--window-bg)
...
required to emulate day mode in clayout
if background-color is not set in .card styling
2021-06-24 23:47:14 +09:00
hikaru-y
2ed9f69cd7
Toggle night-mode class of documentElement when action triggered
2021-06-24 23:47:06 +09:00
hikaru-y
754e7c753d
Set --window-bg of day/night mode to proper colors
...
including the following changes:
- rename "_getWindowColor" to "get_window_bg_color" to follow PEP8
- add "night_mode" argument to "get_window_bg_color"
- make it possible to get the correct colors regardless of the current theme
2021-06-24 23:46:48 +09:00
hikaru-y
3eb4321087
Store default palette before "fusion" QStyle is applied
...
Once a QStyle different from the system default is applied, the system default palette can no longer be retrieved with standardPalette().
2021-06-24 23:46:11 +09:00
Damien Elmes
cadf499216
fix pin toggle causing saved tags to get lost
2021-06-24 20:16:21 +10:00
Damien Elmes
efd6d47a05
v3 scheduler: experimental -> beta
2021-06-24 14:46:09 +10:00
Damien Elmes
66aa225965
don't wait for images before revealing
...
Currently there's a nasty blink when revealing the answer if the answer
has images on it, as the entire card is hidden, and not shown again until
the images have loaded. This patch removes the wait, so text should appear
more quickly, but it will mean the images may pop in.
We still wait for images before scrolling, to avoid a scroll to the wrong
location.
There's plenty of scope to improve this further - preloading images,
rendering MathJax in advance, etc, but those changes will need to wait
for now. #1120 has some related discussion.
2021-06-24 12:22:25 +10:00
Damien Elmes
4ffca62afe
allow customization of default search text
...
https://forums.ankiweb.net/t/whats-the-default-search-when-browsing-now-also-how-do-i-choose-to-browse-current-deck/8922
2021-06-24 11:24:30 +10:00
Damien Elmes
f4111fca00
drop crash.log support
...
I don't recall it ever helping to resolve a bug, and presumably we can
still use it in the future via the PYTHONFAULTHANDLER env var if
necessary.
2021-06-24 10:08:31 +10:00
Henrik Giesel
b08b4ef2c8
Call update_notetype_legacy after toggling sticky
2021-06-21 15:48:22 +02:00
Damien Elmes
d89c538c48
in/out -> request/response
...
The saved characters weren't worth the increased difficulty when
reading, and the fact that we were deviating from protobuf norms.
2021-06-20 15:49:20 +10:00
Damien Elmes
532ac8b511
Merge pull request #1230 from RumovZ/fields-check
...
Check for misplaced or missing clozes when adding and in the editor
2021-06-17 21:26:16 +10:00
Damien Elmes
4e7e45e3cf
show correct card count when removing multiple templates
...
https://forums.ankiweb.net/t/error-in-card-type-deletion/10868
2021-06-17 15:51:21 +10:00
Henrik Giesel
43171c02af
Allow inclusion of external icons into aqt/forms/icons
...
+ Replace old tag icon with mdi tag and tag-off icon
2021-06-16 17:19:21 +10:00
Henrik Giesel
8fd024c020
Make Browser root nodes use "_*" uniformly
2021-06-16 17:19:21 +10:00
Damien Elmes
521a158406
update to latest mypy
...
mypy's move to external types-* packages is a PITA, as it requires them
to be installed in site-packages, and provides no way to specify a custom
site-packages folder, necessitating extra scripts to mock the
site-packages path, and copy+rename the stub packages into a separate
folder.
2021-06-16 16:04:59 +10:00
RumovZ
be54c4352a
Merge cloze hint divs into one
2021-06-15 08:43:18 +02:00
RumovZ
9ae6df9b88
Make missing cloze a warning again
2021-06-15 08:43:00 +02:00
Thore
9a4e248317
Add hook to onDelete in AddonsDialog ( #1232 )
...
* add hook
* add me to CONTRIBUTORS
* adjust hook to comments
* Update CONTRIBUTORS
2021-06-15 10:01:29 +10:00
RumovZ
f11b39c817
Fix filtered deck from browser
...
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/14
2021-06-13 08:59:23 +02:00
RumovZ
3572f0a0c6
Add editor hints for cloze errors
2021-06-12 17:35:40 +02:00
RumovZ
46ee710a06
Check for out-of-place/missing clozes when adding
2021-06-12 10:05:42 +02:00
Damien Elmes
4c9c1d4ebf
prevent cmd+c in webview with empty selection from crashing on macOS
...
https://forums.ankiweb.net/t/command-c-on-crashes-anki-2-1-41-on-mac/10684
2021-06-11 19:58:20 +10:00
Damien Elmes
fca3c08541
Merge pull request #1224 from kelciour/mpv-playlist-fix
...
Keep the internal mpv playlist from growing on
2021-06-10 22:28:24 +10:00
Damien Elmes
153e1e8d41
new change notetype implementation for the frontend
...
- changes can now be undone
- the same field can now be mapped to multiple target fields, allowing
fields to be cloned
- the old Qt dialog has been removed
- the old col.models.change() API calls the new code, to avoid
breaking existing consumers. It requires the field map to always
be passed in, but that appears to have been the common case.
- closes #1175
2021-06-10 22:19:24 +10:00
kelciour
5ff2b69c0d
keep the internal mpv playlist from growing on
...
https://forums.ankiweb.net/t/audio-tracks-get-clipped-at-the-end/10289/5
2021-06-10 11:28:57 +03:00
Damien Elmes
e589edf6fd
when focusing current card, position at top
...
trying out the changes mentioned on
https://github.com/ankitects/anki/pull/1222#discussion_r648051997
2021-06-09 21:01:29 +10:00
Damien Elmes
379317cfe0
ensure current card centered even if it was already visible
...
Otherwise if a user reviews a card while keeping Browse open, the
card may not be centered if it was already in view.
2021-06-08 16:22:56 +10:00
Damien Elmes
0cd7aee339
add card info action to reviewer; move note actions together
2021-06-08 14:23:23 +10:00
Damien Elmes
94ef3102d1
don't wait before scrolling to current card
...
https://github.com/ankitects/anki/pull/1222#discussion_r647017566
2021-06-08 12:54:05 +10:00
Damien Elmes
e65eca102e
fix preferences screen indiscriminately triggering queue rebuild
2021-06-08 12:11:31 +10:00
Damien Elmes
aaba9a777a
fix note changes triggering a queue rebuild
2021-06-08 12:09:35 +10:00
Damien Elmes
c63e3ed72d
Merge pull request #1222 from RumovZ/browser-card
...
Change handling of browser's card parameter
2021-06-08 09:32:43 +10:00
Damien Elmes
e2bc97f098
Merge pull request #1221 from kelciour/audio-pause-fix
...
Audio pause fix
2021-06-08 09:23:11 +10:00
RumovZ
b09d71c2ec
Change handling of browser's card parameter
...
If a search is provided execute it, else search for current deck.
Then try to select and scroll to the provided card.
2021-06-07 16:42:17 +02:00
kelciour
fb36ebea82
use 'cycle' command to toggle pause
2021-06-07 01:54:07 +03:00
kelciour
723981d1a9
workaround for audio tracks get clipped at the end
2021-06-07 01:45:59 +03:00
kelciour
8152d3fb25
fix audio is paused unusual
...
closes #1164
2021-06-07 01:09:44 +03:00
Damien Elmes
998a3c0f7f
add Rescheduled to Today section of sidebar
...
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/105
2021-06-05 12:55:07 +10:00
Damien Elmes
c608c64658
fix CSV import ignoring selected deck
...
This is a stop-gap - once the importing code is refactored, we
should pass in the desired deck directly.
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/102
2021-06-04 20:37:45 +10:00
Damien Elmes
8b584e3f7c
Merge pull request #1218 from cherryblossom000/help-links
...
fix documentation links
2021-06-04 15:44:16 +10:00
Damien Elmes
fb0eaf8e8e
another workaround for timeboxing issue
2021-06-04 15:25:30 +10:00
Damien Elmes
52195cbc5a
remove 'flag ' prefix from flag names
2021-06-04 15:03:17 +10:00
cherryblossom
462da55fd5
fix documentation links
2021-06-03 16:51:03 +10:00
Damien Elmes
f0bb3fabba
make sure install.sh is run from the correct folder
...
https://forums.ankiweb.net/t/upgrade-doesnt-work-free-disk-space-is-written-full/10500/2
2021-06-03 10:50:32 +10:00
Damien Elmes
bb94ded8ba
catch all recording errors; mention permission
...
https://forums.ankiweb.net/t/i-have-an-error-when-i-try-to-record-of-audio/10483
2021-06-02 12:20:40 +10:00
Damien Elmes
d38f57cf3c
Merge pull request #1213 from RumovZ/new-flags
...
Add pink, turquoise and purple flags
2021-06-02 11:22:26 +10:00
Damien Elmes
512dfd59cd
limit custom study to 100 tags
...
The hard limit from sqlite may be larger, but things slow down as more
tags are selected.
https://forums.ankiweb.net/t/unable-to-create-custom-test/10467
There are a number of things that could be improved here:
- we should show a live count so users are aware of the limit
- we should be filling in the parent tags when they're not explicitly
listed on a card
- we should reconsider disabling the 'tags to include' by default
It may make sense to defer these changes until we can move this screen
into Svelte/handle the processing in the backend.
2021-06-02 11:15:39 +10:00
Damien Elmes
c80e852ada
prevent error storm when browser table encounters panic
2021-06-02 11:15:39 +10:00
Damien Elmes
e025fe3b43
close Anki after a panic occurs
...
Once the mutex has been poisoned the app is unusable, and users were
struggling to close it. This also ensures we'll receive the original
error report, instead of the follow-up poison errors that don't tell us
what caused the issue.
https://forums.ankiweb.net/t/error-message-keeps-popping-up/10494
2021-06-02 11:15:39 +10:00
RumovZ
9e43c91a62
Tweak flag colors
2021-06-01 18:14:54 +02:00
RumovZ
d6d712c4a7
Rename violet to pink
2021-06-01 18:14:43 +02:00
Damien Elmes
b52ac3883e
Merge pull request #1209 from RumovZ/drop-saved-search
...
Drag & drop for saved search
2021-06-01 17:50:55 +10:00
Damien Elmes
45cbc82f26
fix incorrect platform specifier
...
It should have been isLin, but we don't even need to check it -
the env var alone should suffice.
2021-06-01 17:41:15 +10:00
Damien Elmes
66a6c70bda
try to fall back to xcb if wayland forced on packaged build
...
https://forums.ankiweb.net/t/anki-doesnt-start-under-wayland-linux/10409/5
2021-06-01 17:38:35 +10:00
Damien Elmes
3786329625
handle ctrl+numpad enter on Windows
...
https://forums.ankiweb.net/t/ctrl-enter-with-the-number-pad-doesnt-work/10323/5
2021-06-01 16:25:12 +10:00
Damien Elmes
ea60b73275
fix timebox causing crash
...
When a modal was created with another window as its parent, the other
window was being returned, when it was the current window that we
actually wanted. This caused nextCard() to be called again when it
presented the timebox modal, leading to a stack overflow.
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/71
2021-06-01 15:35:18 +10:00
Damien Elmes
5ca77f6934
require reposition to start at 0; cap maximum
...
https://forums.ankiweb.net/t/unable-to-reposition-cards-to-negative-start-position/10370/2
2021-06-01 10:09:24 +10:00
RumovZ
9e56a4421b
Add violet, turquoise and purple flags
2021-05-31 12:03:30 +02:00
Damien Elmes
0b6beaa1da
remove deck protobuf from frontend
...
Like the previous change, avoid exposing the protobuf as a public API
for now. It requires more thought, and is probably better done with
either extra helper accessors like decks.name(), or via a native class.
2021-05-31 16:31:06 +10:00
RumovZ
fb9cbf9816
Make a new item the current item after refresh
2021-05-30 10:46:59 +02:00
RumovZ
bf0dbeb5f0
Skip saving search if it already exists
2021-05-30 10:11:40 +02:00
RumovZ
a989b4e8e9
Enable drop to create saved search
2021-05-30 09:30:22 +02:00
Damien Elmes
c0020da00d
Merge pull request #1206 from RumovZ/fix-sidebar
...
Fix some sidebar issues
2021-05-29 10:33:52 +10:00