Damien Elmes
ce243c2cae
Simplify note adding and the deck/notetype choosers
...
The existing code was really difficult to reason about:
- The default notetype depended on the selected deck, and vice versa,
and this logic was buried in the deck and notetype choosing screens,
and models.py.
- Changes to the notetype were not passed back directly, but were fired
via a hook, which changed any screen in the app that had a notetype
selector.
It also wasn't great for performance, as the most recent deck and tags
were embedded in the notetype, which can be expensive to save and sync
for large notetypes.
To address these points:
- The current deck for a notetype, and notetype for a deck, are now
stored in separate config variables, instead of directly in the deck
or notetype. These are cheap to read and write, and we'll be able to
sync them individually in the future once config syncing is updated in
the future. I seem to recall some users not wanting the tag saving
behaviour, so I've dropped that for now, but if people end up missing
it, it would be simple to add as an extra auxiliary config variable.
- The logic for getting the starting deck and notetype has been moved
into the backend. It should be the same as the older Python code, with
one exception: when "change deck depending on notetype" is enabled in
the preferences, it will start with the current notetype ("curModel"),
instead of first trying to get a deck-specific notetype.
- ModelChooser has been duplicated into notetypechooser.py, and it
has been updated to solely be concerned with keeping track of a selected
notetype - it no longer alters global state.
2021-03-10 11:53:27 +10:00
Damien Elmes
d4765a301f
coalesce note updates; avoid unnecessary saving due to mtime changes
2021-03-10 11:53:27 +10:00
Henrik Giesel
e03bfd2923
Refactor bridgeCommand and silence false "uncaught msg" log
2021-03-09 13:43:11 +01:00
Henrik Giesel
cd26901f3d
Make sure topleft buttons are rounded too, prefer Bootstrap's rounded class
2021-03-09 13:43:11 +01:00
Henrik Giesel
6fbd82f2f8
Change signature of editor onBridgeCmd to Any instead of None
2021-03-09 13:43:11 +01:00
Henrik Giesel
da0317cb85
Replace pin icon with lock icon
...
Credit goes out to @kleinerpirat
2021-03-09 13:43:11 +01:00
Henrik Giesel
ebf423bc9c
Remove Change Tracker again
2021-03-09 13:43:11 +01:00
Henrik Giesel
8593ab3c4c
Connect icons to sticky fields values
2021-03-09 13:37:56 +01:00
Henrik Giesel
31cba30873
Include the bootstrap icons in the editor view
2021-03-09 13:37:56 +01:00
Henrik Giesel
a66b0fbd84
Fix positioning of buttons
2021-03-09 13:37:56 +01:00
Henrik Giesel
f2cc85a3bc
Include bootstrap in editor
2021-03-09 13:37:56 +01:00
Damien Elmes
e218604708
monospace font in html editor
...
https://forums.ankiweb.net/t/change-default-font-of-html-edit-mode-to-a-monospaced-font/7833
2021-03-01 10:16:12 +10:00
Damien Elmes
2941503bea
tweak getFile() arguments in editor to be more readable
2021-02-19 10:18:40 +10:00
Damien Elmes
35840221bb
tweak search wording and tidy up API
...
- SearchTerm -> SearchNode
- Operator -> Joiner; share between messages
- build_search_string() supports specifying AND/OR as a convenience
- group_searches() makes it easier to negate
2021-02-11 19:57:19 +10:00
Damien Elmes
88c002f4eb
convert qt strings to f-strings with flynt
...
Also revealed an incorrect type def in editor.py that mypy wasn't
noticing before :-(
2021-02-11 10:09:06 +10:00
Damien Elmes
bb29ce88f3
minor code cleanups with pyupgrade
...
- pyupgrade --py38-plus --keep-runtime-typing --keep-percent-format
- third-party mpv and winpaths excluded
2021-02-11 09:43:40 +10:00
Damien Elmes
3cd311191a
add opus to supported audio list and sort
2021-02-06 15:11:24 +10:00
Damien Elmes
bb30e8f7bc
use constants for other color references
...
str_color/qcolor() doesn't appear to have been used by any add-ons
except one of mine, so changing the signature should be safe
2021-02-05 18:58:22 +10:00
RumovZ
c18af2a0a9
Merge branch 'master' into dyn-deckconf
2021-02-01 23:33:41 +01:00
RumovZ
4d097b995d
Add button in dynDeckConf to search in browser
2021-02-01 13:55:03 +01:00
RumovZ
6de6e5f339
Make browser accept optional args and add reopen
...
That way, the caller doesn't have to hold a reference to the browser and
explicitly call it again, if it wants to search for something specific.
Also, if the browser was closed and opened for a single-card-search, it
now won't perform a redundant current-deck-search first.
2021-02-01 11:54:28 +01:00
Damien Elmes
98f4b3db81
add types to utils.py
...
The function signatures for things like getFile() are awful, but
sadly are used by a bunch of add-ons.
2021-02-01 20:23:48 +10:00
Damien Elmes
d13762bd32
add types to editor.py
2021-02-01 17:28:35 +10:00
Damien Elmes
cb805cf355
Merge branch 'more-backend-search' into main
2021-01-31 14:21:51 +10:00
RumovZ
5425b00d2b
Import SearchTerm from collection in aqt
2021-01-30 12:51:24 +01:00
Damien Elmes
1adc9952f4
simplify Dupe message and ditch helper function
...
Calling code doesn't need to know about the existence of such helpers;
it can just rely on code completion to discover the required arguments.
2021-01-30 11:10:26 +10:00
Henrik Giesel
aa924ac821
Add semicolon in js message
2021-01-29 19:48:17 +01:00
RumovZ
c299e271e8
Refactor search_string() and FilterToSearchIn
...
See #955 .
2021-01-29 18:27:33 +01:00
Henrik Giesel
fe87f986d3
Remove user styling in editor again for now
2021-01-29 14:54:59 +01:00
Henrik Giesel
af3753948a
Allow stylesheet of note type take effect on editor fields
2021-01-29 14:54:58 +01:00
Henrik Giesel
aed38de228
Fix dupes, but also make sticky, and centered to draw more attention
2021-01-29 14:54:58 +01:00
Damien Elmes
64af4dfe7e
drop potentially slow regex usage in cloze check
...
Closes #956 , thanks to Henrik.
2021-01-29 11:15:33 +10:00
RumovZ
f04228990d
Add browser_search helper in mw
2021-01-28 20:51:32 +01:00
Arthur Milchior
e0a2d90a68
NF: HelpPage in an enum
...
Hopefully, this can help with updating on next manual update and maybe even linking to manual translation
2021-01-26 02:16:37 +01:00
Henrik Giesel
9226d50185
Space items by using margins instead of spaces
...
* also changed name of topbutton container back to topbutsOuter as it is clearer
* starting with Chromium 83, `row-gap` would be better suited for this
2021-01-22 12:17:10 +01:00
Henrik Giesel
97f8f1b89e
Switch from floating windows and clearfix to flex and justify-content: space-between
2021-01-22 11:37:11 +01:00
Henrik Giesel
1f4de7fe4b
Adjust the positioning of the editor toolarea via CSS
2021-01-21 21:36:33 +01:00
Henrik Giesel
6262997599
Explicitly execute code deactivating button focus from editor.py
2021-01-20 17:06:08 +01:00
RumovZ
7b9cc017c4
Use backend to set dupe filter
2021-01-14 10:42:37 +10:00
Henrik Giesel
cf1240bb18
Make keys parameter requiring func parameter in _addButton explicit
2021-01-10 13:42:23 +01:00
Henrik Giesel
ace61835de
Fix formatting, use shortcut on preview before displaying
2021-01-10 01:50:00 +01:00
Henrik Giesel
6afc495035
Activate toggle on hotkey invocation
2021-01-10 01:10:23 +01:00
Damien Elmes
b30b7c3073
fix qt/ pylints
2021-01-07 16:21:50 +10:00
Damien Elmes
94064b8230
convert setWindowFlags call into helper, and fix invalid variables
...
"type: ignore" was masking the invalid references to self in places
like showText()
2021-01-07 14:24:49 +10:00
BlueGreenMagick
6224658c0d
remove context help button
2021-01-06 22:15:48 +09:00
Damien Elmes
eea6bf963b
fix media attachment
...
insertHtmlRemovingInitialBR() was removed in a previous PR
2020-12-30 19:30:23 +10:00
Henrik Giesel
98407c3fea
Avoid building jquery to its own directory
2020-12-28 14:18:07 +01:00
Henrik Giesel
37dcdcc4c0
Rename references from vendor/jquery.js to vendor/jquery/jquery.min.js
2020-12-28 13:16:12 +01:00
Damien Elmes
ecb7c1482f
use QtMultimedia for recording instead of PyAudio
...
The unmute-on-first-duration-change approach is to try to prevent
clicks/pops that can happen at the start of recordings. If it doesn't
solve the problem, we may need to drop down to the lower-level
QAudioInput().
Closes https://github.com/ankitects/help-wanted/issues/23
May fix https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824 ,
which I suspect was caused by processEvents()
2020-12-16 19:33:25 +10:00
Damien Elmes
ffa26fe4bc
fix remaining _() references; remove unused imports
2020-11-18 12:43:46 +10:00
Damien Elmes
ba336d5de3
update multi-line _() references
2020-11-18 11:32:22 +10:00
Damien Elmes
2453e5c488
update temporary val="%s" references to standard ftl
2020-11-17 22:00:44 +10:00
Damien Elmes
6418993840
merge bulk of qt/ - designer files still to do
2020-11-17 17:42:43 +10:00
abdo
358d0f957e
Make dupe search operate on non-stripped text
...
See https://github.com/ankitects/anki/pull/822/
2020-11-16 04:01:04 +03:00
Damien Elmes
e99c0dbe15
Merge pull request #793 from nwwt/object-audio-tags-support
...
Audio & object tag support
2020-11-11 10:33:31 +10:00
Andreas Reis
e68a40f13e
cleanup / renames
...
・ soundRegexps → sound_regexps
・ htmlRegexps → html_media_regexps
・ HTML_TAGS → HTML_MEDIA_TAGS
・ escapeImages → escape_media_filenames + alias
・ strip_html_preserving_image_filenames → strip_html_preserving_media_filenames
2020-11-10 14:53:04 +01:00
Damien Elmes
aea0a6fcc6
initial Bazel conversion
...
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:
- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00
Damien Elmes
1aa29f2e79
Merge pull request #789 from abdnh/editor-decode-urls
...
Decode pasted URLs for nicer display
2020-10-12 12:33:52 +10:00
abdo
709e789ade
Decode pasted URLs
2020-10-11 16:46:46 +03:00
johan456789
06f1aeb052
fix help url paths
2020-10-10 00:38:07 +08:00
Damien Elmes
8fa865e8f4
Merge pull request #781 from hgiesel/leftbtns
...
Refactor Buttons in editor and add editor_did_init_left_buttons gui_hook
2020-10-05 13:14:52 +10:00
Henrik Giesel
e9ca17b1b3
Turn _class into rightside boolean flag
2020-10-04 23:03:37 +02:00
Henrik Giesel
e8c80174eb
Refactor out theclass assignment
2020-10-04 22:51:34 +02:00
Henrik Giesel
4c255b0289
Add editor_did_init_left_buttons gui_hook
2020-10-04 22:50:02 +02:00
Henrik Giesel
bf29fb8e83
Make icon Optional explicitly in function signature
2020-10-04 22:42:28 +02:00
Henrik Giesel
30d1d57c78
Rewrite so all editor toolbar buttons use _addButton
2020-10-04 22:41:18 +02:00
abdo
dbc820ba6f
Paste links as plain text in basic mode
2020-10-03 19:46:05 +03:00
abdo
8c0bfd7d1d
Recognize ico files
...
Local icons were being pasted as normal links previously instead of
being enclosed in img tags.
2020-10-03 00:17:38 +03:00
abdo
151f854fa2
Support extended drag & drop
2020-09-14 17:07:31 +03:00
Damien Elmes
0455e760c6
another showDupes fix from ANH
...
https://forums.ankiweb.net/t/show-duplicates-not-working/2883/10
2020-09-04 10:13:30 +10:00
Damien Elmes
21749a3b0c
sound tags need filename html escaped
...
https://forums.ankiweb.net/t/unable-to-play-longer-audio-on-cards/1313/30
2020-09-04 09:36:38 +10:00
Damien Elmes
dc1f489d3e
Revert "Merge pull request #749 from ANH25/editor-media-autoplay"
...
This reverts commit 9aa3d7867e
, reversing
changes made to c3a1acb524
.
https://github.com/ankitects/anki/pull/749#issuecomment-686385112
2020-09-04 08:34:26 +10:00
Damien Elmes
a517accee3
update to latest black
2020-08-31 13:29:28 +10:00
ANH
28d86ab8d1
editor: only autoplay added media when recording
2020-08-26 14:49:19 +03:00
ANH
cc17b4db62
fix drag & drop issue when dropping things over existing content
2020-08-25 17:28:13 +03:00
ANH
680b5e4b50
work around editor freeze issue after external drag & drop
2020-08-19 18:14:07 +10:00
Henrik Giesel
dcf82fb403
Merge branch 'master' into resethook
2020-08-17 12:39:09 +02:00
Damien Elmes
3d0d21e4bc
fix duplicates not escaping html
...
https://forums.ankiweb.net/t/bug-report-showdupes-not-html-escaping-field-content/2167
2020-08-17 17:50:27 +10:00
Henrik Giesel
7f503895d7
Create ResetReason enum
2020-08-16 18:56:32 +02:00
Henrik Giesel
db0a18106f
Reorder + make all parameters optional
2020-08-16 18:56:32 +02:00
Henrik Giesel
ccc56d4355
Satisfy formatter
2020-08-16 18:56:32 +02:00
Henrik Giesel
dd515e65e7
Add new use of requireReset
2020-08-16 18:56:32 +02:00
Arthur Milchior
c4db4bd291
Any removed
2020-08-12 01:37:21 +02:00
Henrik Giesel
17f23221e4
Add newlines
2020-08-09 11:16:19 +02:00
Henrik Giesel
ee3d4f5ad8
Avoid extra assignment
2020-08-09 10:38:31 +02:00
Henrik Giesel
f5479edacc
Move reverse url quoting functionality to editor_will_munge_html hook
2020-08-09 10:37:38 +02:00
Henrik Giesel
1b9bd70bb1
Move remove null bytes functionality to editor_will_munge_html hook
2020-08-09 10:35:52 +02:00
Henrik Giesel
4720645d1c
Replace functionality of mungeHTML with call to new gui_hook
2020-08-08 23:59:01 +02:00
Adam Plaice
d6fb4acd38
Re-add previously supported file extensions for media
...
(They had been removed in 2ae342592c
).
2020-07-29 15:08:33 +02:00
Damien Elmes
93ada5d374
Merge pull request #703 from ANH25/master
...
fix help-wanted#13
2020-07-29 14:14:57 +10:00
Matt Krump
24e7156991
Turn on check_untyped_defs for aqt.editor
...
* Turn on check_untyped_defs for aqt.browser
* Add type hints
2020-07-28 18:42:22 -06:00
ANH
fd0c3cf57e
add missing string r flag
2020-07-24 09:18:05 +03:00
ANH
da3761341e
formatting
2020-07-24 09:00:34 +03:00
ANH
e122534ba4
avoid string concatenation
2020-07-24 08:12:46 +03:00
ANH
eaf935c3ff
fix ankitects/help-wanted#13
2020-07-24 06:00:55 +03:00
Andreas Reis
e8ddd17fec
Always use standard QT color dialog on Linux
...
On Linux only Gnome uses its own color dialog, and it's inferior to QT's own: See the same issue @ https://github.com/OpenShot/openshot-qt/pull/2425
(This is/was visible only on some distributions' packaged versions of Anki, not via ./run.)
isLin check since QT on Windows already uses the default, whereas Mac's own picker seems superior (from what I can judge by screenshots).
2020-07-05 13:21:38 +02:00
Damien Elmes
05fb67d409
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
37bf56c56e
remove ellipsis
2020-06-12 09:04:19 +10:00
Quentin Nerden
86713d110e
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
43da12a445
(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