Commit Graph

1194 Commits

Author SHA1 Message Date
Damien Elmes
8c58e7a76a support conflicts when downloading from AnkiWeb
users can now upload .ankiaddon files as well - package/name remains
defined by the add-on listing as before
2019-04-16 17:44:00 +10:00
Damien Elmes
112fc8e7c1 don't confirm conflict disabling
we don't want to be showing dialog boxes while a progress window
is active
2019-04-16 17:43:02 +10:00
Damien Elmes
b3d48c6de6 need rich text in install error, as err msgs have html 2019-04-16 17:39:08 +10:00
Damien Elmes
580d699161 use dialog instead of tooltip if there's more than one log line 2019-04-16 17:38:38 +10:00
Damien Elmes
3592365762
Merge pull request #300 from glutanimate/dynamic-addon-config-button
Disable add-on config button when no config present
2019-04-16 17:36:46 +10:00
Damien Elmes
f80d250b47 Revert "Workaround for AltGr '@' issue."
This reverts commit 1e433a7cdd and
91178d3d58

Due to regressions this will be moved into an optional add-on, at
least for now.
2019-04-16 13:39:40 +10:00
Damien Elmes
015bb71cca fix race condition in webview load on Windows
- don't require collection for initial blank content
- defer profile load until initial blank content loaded
- use plain text for blank content to prevent initial flash of white
2019-04-16 13:24:38 +10:00
Glutanimate
199d9dcb44 Disable add-on config button when no config present
https://anki.tenderapp.com/discussions/ankidesktop/33602-disable-the-config-button-when-an-add-on-is-highlighted-that-does-not-have-any-config
2019-04-15 14:53:18 +02:00
Damien Elmes
d24d485f06 preview code shouldn't assume self.card is valid 2019-04-15 12:20:12 +10:00
Damien Elmes
380d59f775 fix race condition in webview startup on windows
use _setHtml so that _domDone is set to false
2019-04-10 17:31:55 +10:00
Damien Elmes
91178d3d58 extend altgr fix to editor fields, and add warning about helper
extends https://github.com/dae/anki/pull/298
2019-04-10 16:16:29 +10:00
Damien Elmes
4a167304a6
Merge pull request #298 from dlon/altgr-fix
"@" suspends cards with text input for some keyboard layouts
2019-04-10 15:33:02 +10:00
Damien Elmes
7120607dfe avoid highlighting/tabbing to top bar 2019-04-10 15:16:22 +10:00
Damien Elmes
111727240b standard blue focus highlight on windows 2019-04-10 15:16:06 +10:00
Damien Elmes
df4aad50e1 avoid popups for some non-serious warnings 2019-04-10 12:44:01 +10:00
David Lönnhager
1e433a7cdd Workaround for AltGr '@' issue. 2019-04-09 14:55:00 +02:00
Damien Elmes
478ee66d0e fix issue preventing profile rename/delete
qtwebengineprocess.exe inherits the current working directory, so if
it is started after the profile is loaded, it prevents the profile
media folder from being renamed/deleted

also, load profile on first run at the same point we normally load
the profile
2019-04-09 18:48:50 +10:00
Damien Elmes
dac5ea2a7a ensure card info is closed properly 2019-04-09 16:21:43 +10:00
Glutanimate
4de09400c5 Fix timestamp comparison failing when update API returns null
Addresses a rare instance of update checks failing when locally
installed packages point to a shared ID that has yet to be updated
to 2.1. In those instances Anki's update API returns null, which
causes a ValueError downstream when comparing the timestamps
against each other.
2019-04-08 17:51:15 +02:00
Damien Elmes
cc335a15e4 make sure card counts are updated when undoing reviews 2019-04-08 15:47:49 +10:00
Damien Elmes
e7c3de1d9d friendly message for full disk 2019-04-08 15:32:58 +10:00
Damien Elmes
838545b1d6 fix preview not updating when note edited 2019-04-08 15:18:40 +10:00
Damien Elmes
e4eaebe2fb fix note not displaying when preview toggled off & on 2019-04-08 15:18:27 +10:00
Damien Elmes
8ed069d4a6 fix memory leak in card layout screen 2019-03-26 11:31:40 +09:00
Damien Elmes
44952ff727 revert undo shortcut change in browser
when ctrl+z pressed in focused field and no undo history left, qt
triggers the menu item instead, causing data loss

I tried capturing the shortcut in JS and manually executing the undo,
and that seems to work on macOS, but not on Windows.

fixes
https://anki.tenderapp.com/discussions/ankidesktop/33064-how-to-undo-reverted-to-state-deleting-my-cards
2019-03-11 13:43:25 +10:00
Damien Elmes
8de0e7e54c handle blur/key event before note id set
can't reproduce the issue here, but presumably this change will
work around
https://anki.tenderapp.com/discussions/ankidesktop/33038-bug-after-updatehtml-notes-wont-display
2019-03-10 08:24:44 +10:00
Damien Elmes
22d6feed87 Merge branch 'master' of github.com:dae/anki 2019-03-07 18:34:35 +10:00
Damien Elmes
79660e41bb keep global i18n handlers working
the previous change broke the translations of copy&pasted anki code in
add-ons

should fix
https://anki.tenderapp.com/discussions/ankidesktop/32922-chinese-characters-in-the-main-window-when-setting-language-to-japanese#comment_47043676
2019-03-07 18:34:22 +10:00
Glutanimate
324370497e Set QTWEBENGINE_DICTIONARIES_PATH
This introduces the possibility for add-ons to supply spell checking
support in web views.
2019-03-06 18:59:38 +01:00
Damien Elmes
0543df7dfa allow translators to override Windows font
to work around Qt's awful fallback handling on Windows 10

https://anki.tenderapp.com/discussions/ankidesktop/32922-chinese-characters-in-the-main-window-when-setting-language-to-japanese
2019-03-06 15:28:49 +10:00
Damien Elmes
09651be9e7 check a profile exists every time
if something went wrong between pm.meta() and .ensureProfile() in the
past, it would lead to an inability to start Anki due to the a lack of
any profiles

https://anki.tenderapp.com/discussions/ankidesktop/32972-linux-upgrade-problems-20-219
2019-03-06 15:27:13 +10:00
Damien Elmes
73761b598f tweak coding statement to make xgettext happy 2019-03-05 09:59:21 +10:00
Damien Elmes
59b9c361ac allow decreasing daily limits in custom study 2019-03-05 09:06:17 +10:00
Damien Elmes
b168ce6eed add option to strip html in export 2019-03-05 08:57:53 +10:00
Damien Elmes
d0985a4e7c preview state depends on card id, not note id
fixes
https://anki.tenderapp.com/discussions/ankidesktop/32952-commit-c07f2d07474b52c065539fe9e56cbc6047856ad8-causes-preview-to-not-work-with-multiples-cards-of-same-note-cloze-deletions
2019-03-05 07:50:54 +10:00
Damien Elmes
f9f5d9d3ab deprecated global _/ngettext was returning None
the plurals may still be wrong in the ngettext case, but at least
it should not lead to premature tracebacks
2019-03-05 07:46:27 +10:00
Damien Elmes
7d65594944
Merge pull request #288 from glutanimate/mediasrv-addon-support
Extend mediasrv to also serve media files in addons directory
2019-03-04 18:03:48 +10:00
Damien Elmes
ebdd8dae4b tidy up unused imports 2019-03-04 17:25:19 +10:00
Damien Elmes
6e077ab414 use raw strings for regexs 2019-03-04 17:03:43 +10:00
Damien Elmes
4037a034aa fix inconsistent indentation 2019-03-04 16:54:22 +10:00
Damien Elmes
5185e817fc move from deprecated optparse to argparse 2019-03-04 16:45:29 +10:00
Damien Elmes
f6b2135129 fix some warnings 2019-03-04 16:01:10 +10:00
Damien Elmes
7755eb408c fix incorrect qt constructor call 2019-03-04 15:59:53 +10:00
Damien Elmes
e91901911f WindowsError may not be defined 2019-03-04 12:29:55 +10:00
Damien Elmes
919738a9d7 print warning when add-ons access _ without importing it 2019-03-04 12:08:48 +10:00
Damien Elmes
da2ddcc6e2 explicitly import _ and ngettext 2019-03-04 11:58:34 +10:00
Damien Elmes
3721cc4604 silence some spurious errors and remove some unused code 2019-03-04 11:22:40 +10:00
Glutanimate
58d0955392 Refactor: re.match --> re.fullmatch 2019-03-03 17:04:01 +01:00
Glutanimate
5e90758f39 Allow add-on authors to set a whitelist of webview-accessible files
Extends the AddonManager API with two new methods, setWebExports and
getWebExports. setWebExports expects an add-on module name and a
valid RegEx pattern to match subpaths in the add-on folder against.

Any matching subpaths will be accessible in Anki's web views by
referencing them with /_addons/{addon_id}/{subpath}.

For instance, to allow access to .css and .png files in your add-on's
user_files directory you would call:

> mw.addonManager.setWebExports(__name__, r"user_files/.+(\.png|\.css)")

You could then reference these files in web views as such:

> <img src="/_addons/{addon_id}/user_files/test.png">

Please note that this bypasses the default security policies used
in Anki webviews. You should take care to construct your RegEx
patterns specific enough so that they do not match any sensitive
files of our add-on.
2019-03-02 18:57:51 +01:00
Damien Elmes
a389b8b4a0 move versionWithBuild into anki module 2019-02-28 08:37:42 +10:00