Commit Graph

2314 Commits

Author SHA1 Message Date
Damien Elmes
3464b5fd80 fix wrong var name in previous warning fix 2019-03-04 17:02:52 +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
ef23268573 use distro in place of deprecated dist() method 2019-03-04 15:39:10 +10:00
Damien Elmes
e91901911f WindowsError may not be defined 2019-03-04 12:29:55 +10:00
Damien Elmes
dfbbeab8db pylint is confused by pyqt subscript notation 2019-03-04 12:25:54 +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
4a9bb2d396 fix qt-related error messages 2019-03-04 11:43:04 +10:00
Damien Elmes
d802a53161 explicitly import _ in forms/ 2019-03-04 11:34:30 +10:00
Damien Elmes
3721cc4604 silence some spurious errors and remove some unused code 2019-03-04 11:22:40 +10:00
Damien Elmes
10ab258501 add basic error checking via pylint 2019-03-04 11:21:20 +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
Damien Elmes
47eab46f05
Merge pull request #289 from dlon/psutil-permissions
Fix permissions error on Windows
2019-02-27 14:36:37 +10:00
Damien Elmes
d6915ff6e8 avoid traceback when network offline in add-on check 2019-02-27 14:18:16 +10:00
Damien Elmes
2e70c56248 fix regression in showInfo() et al 2019-02-27 14:16:35 +10:00
Damien Elmes
66cbc87580 ensure progress window cleared if error on add-on import 2019-02-27 14:08:20 +10:00
Damien Elmes
444abfff94 avoid nbsp for single spaces when pasting text
https://anki.tenderapp.com/discussions/ankidesktop/32823-all-spaces-are-being-replaced-with-nbsp-when-pasting-219-linux
2019-02-27 13:54:50 +10:00
David Lönnhager
c6ab8dcc48 Fix permissions error on Windows 2019-02-27 02:51:28 +01:00
Glutanimate
1fb6123f5a Extend mediasrv to also serve media files in addons directory
RequestsHandler now rewrites "/_addons" references to addons folder.
2019-02-26 13:08:15 +01:00
Damien Elmes
fed15f5b90 include note id in state
to make sure we refresh when multiple notes have same mod time
2019-02-26 11:21:25 +10:00
Damien Elmes
c07f2d0747 avoid refreshing preview when nothing has changed
fixes visible redraw when:
- opening preview screen while cursor in field (as editTimer
fires even if note has not changed)
- moving between cards (as loadNote and rowChanged hooks are both
fired)
2019-02-26 11:18:32 +10:00
Damien Elmes
4116ab65b0 improve add-on downloading error readability 2019-02-26 09:36:20 +10:00
Damien Elmes
139e04c7c3 be explicit about text format when showing add-on errors
fixes br codes showing in error messages
2019-02-26 09:36:02 +10:00
Damien Elmes
188d822d09
Merge pull request #287 from glutanimate/fix-subpixel-antialiasing
Fix subpixel font anti-aliasing
2019-02-26 08:01:35 +10:00
Glutanimate
ac53a0852e Set webview bg to system default window color instead of Qt.transparent
Qt.transparent prevents subpixel anti-aliasing from working, resulting
in slightly blurry fonts on non-retina displays.
(The window background color is not determined correctly on macOS, so
we hardcode it.)

Credits for discovering this issue go to the unknown author of
https://ankiweb.net/shared/info/94394764
2019-02-25 11:44:27 +01:00
Damien Elmes
51ad750a63
Merge pull request #286 from glutanimate/about-debug-info
Add a button to copy debug info to the About screen
2019-02-25 13:48:30 +10:00
Glutanimate
4fd5a9c176 Add a button to copy debug information to About dialog
Supplies information on platform, app, toolkit, and installed add-ons.
Should come in useful to troubleshoot issues that do not produce an
error message, especially for add-on developers.
2019-02-24 14:55:55 +01:00
Glutanimate
c45ea26cd6 Move annotatedName to AddonManager to allow outside access 2019-02-24 14:51:19 +01:00
Glutanimate
569f42c0f5 Move supportText() to utils in order to allow use outside of errors 2019-02-24 14:50:39 +01:00
Damien Elmes
3b4ed41c5b bump version 2019-02-24 16:20:49 +10:00
Damien Elmes
86b3657969 clear selection when deleting add-on(s)
fixes error when deleting last, and wrong selection
otherwise
2019-02-24 15:24:31 +10:00
Damien Elmes
5bac787a5d
Merge pull request #285 from glutanimate/addons-gui-tweaks
Further tweaks to the add-on manager and config editor UI
2019-02-24 15:09:07 +10:00
Damien Elmes
4ab7c5b6d7
Merge pull request #283 from glutanimate/install-local-addons
Simplify installing add-ons from local files
2019-02-24 15:08:32 +10:00
Glutanimate
195ca93cfe Preserve selected add-ons 2019-02-23 10:10:05 +01:00
Glutanimate
15a83df126 Colour disabled add-ons gray 2019-02-23 10:04:45 +01:00
Glutanimate
8725583c97 Add tooltip feedback for restoring defaults
Changes might not always be apparent, so a tooltip might help.
2019-02-23 09:39:49 +01:00
Glutanimate
d02fd025e1 Enable non-contiguous multi-selection in add-on list 2019-02-23 09:39:49 +01:00
Glutanimate
1080ae10f9 Store addonconf geom and splitter. Tweak font sizes and margins. 2019-02-23 09:39:49 +01:00
Aristotelis
ff7b06fbda
Merge branch 'master' into install-local-addons 2019-02-23 09:27:17 +01:00
Glutanimate
512be4fc2c Implement add-on conflict handling via manifests "conflicts" value
Only enabled for locally installed packages for now
2019-02-22 21:14:42 +01:00
Glutanimate
8fceccf4b7 Refactor: Add manifest schema, unify install paths, use context manager
Sets the foundation for more elaborate additions to the manifest.

Manifest files are still only being read for local imports, but with
this commit that could be easily changed in the future.
2019-02-22 17:04:07 +01:00
Glutanimate
2ed61c9c99 Rename .apkx to .ankiaddon 2019-02-22 10:17:56 +01:00
Damien Elmes
ae67c97610 remember add-ons window geometry 2019-02-20 14:38:22 +10:00
Damien Elmes
a0b9b6c0f3
Merge pull request #284 from Arthur-Milchior/ErrorInCaseOfMissimngMod
Tolerate manually installed add-ons with numeric ids
2019-02-19 10:30:04 +10:00
Damien Elmes
95ccbfdd36 send build number when syncing too 2019-02-19 08:04:25 +10:00