Damien Elmes
574e119566
fix qtwebengineprocess leak in stats screen
...
https://anki.tenderapp.com/discussions/ankidesktop/35941-closing-stats-window-doesnt-end-its-extra-qt-process
2019-09-16 15:16:41 +10:00
Damien Elmes
7035f405a3
Merge pull request #330 from glutanimate/add-typing-module
...
Add "typing" to pinned modules
2019-09-07 13:01:26 +10:00
Glutanimate
a9c687d7d2
Add "typing" to pinned modules
2019-09-06 17:25:30 +02:00
Damien Elmes
f8b3bb7f05
Merge pull request #329 from aidanholm/fix-default-discard
...
Don't discard new card contents by default
2019-09-02 10:24:29 +10:00
Damien Elmes
dd9894cd12
support multiple urls at once in editor
2019-09-02 10:17:04 +10:00
Damien Elmes
4c846f0620
reduce editcurrent width constraint
...
https://anki.tenderapp.com/discussions/ankidesktop/35724-bug-edit-window-not-resizable
2019-09-02 09:52:04 +10:00
Aidan Holm
b68ed4180c
Don't discard new card contents by default
2019-09-01 13:09:05 +08:00
Damien Elmes
a839aa42af
add decimal
...
https://anki.tenderapp.com/discussions/ankidesktop/35620-module-decimal-missing-in-binary-package-2115-linux-only
2019-08-26 10:04:42 +10:00
Mike Hordecki
ecba3f429b
Use traceback.format_exception for debug error display.
2019-08-19 23:08:55 +02:00
Damien Elmes
a8b302c7f2
Merge pull request #324 from MHordecki/software-opengl
...
Add support for OpenGL software rendering.
2019-08-18 20:18:03 +10:00
Damien Elmes
bac937ee49
add progress dialog for media delete
2019-08-17 18:32:39 +10:00
Mike Hordecki
fe9df49226
Add support for OpenGL software rendering.
...
In some systems, the default Qt hardware renderer is buggy. There's a Qt
option for forcing software rendering. This commit adds support for a
new environment variable, ANKI_SOFTWAREOPENGL, that, when set, will
prompt Anki to force software OpenGL in Qt.
2019-08-16 23:18:28 +02:00
Damien Elmes
5d1dc680a9
pin logging
...
https://anki.tenderapp.com/discussions/ankidesktop/35444-python-standard-library-availability-in-anki
2019-08-13 19:08:49 +10:00
Damien Elmes
da533b3854
Merge pull request #318 from wgreven/single-config-file-for-colors
...
Allow configuring Anki's color scheme using a single config file on Linux
2019-07-22 10:51:51 +10:00
Damien Elmes
a7b33ad234
remove open backup folder link
...
https://anki.tenderapp.com/discussions/ankidesktop/35084-crash-while-trying-to-revert-to-a-backup
2019-07-22 10:49:22 +10:00
Wilco Greven
eec70c9d17
Set applicationName and desktopFileName before instantiating the application.
...
When these are set after instantiating the application Anki will load both
$XDG CONFIG HOME/.config/Ankirc and $XDG CONFIG HOME/.config/ankirc.
2019-07-20 13:10:59 +02:00
Wilco Greven
6585967799
Set the desktop file name.
...
Otherwise, on Wayland, Anki will look for python3.desktop This fixes the window icon.
2019-07-18 23:14:34 +02:00
Damien Elmes
e02e6d2c14
display a more helpful message when base folder not readable in startup
2019-07-17 17:23:22 +10:00
Damien Elmes
54ba318171
cleanup recording on cancel
2019-07-14 11:19:29 +10:00
Damien Elmes
06e302903b
force default button in record dialog
...
https://anki.tenderapp.com/discussions/ankidesktop/34985-make-save-the-default-option-when-recording-audio
2019-07-12 17:37:25 +10:00
Damien Elmes
2d32d89180
quieten local port message for now
...
the race condition that is causing this still needs to be investigated
2019-06-27 10:01:23 +10:00
Damien Elmes
c4ec006efc
prefix non-breaking spaces
...
https://anki.tenderapp.com/discussions/ankidesktop/34512-first-space-is-omitted-when-pasting
2019-06-10 09:41:29 +10:00
Damien Elmes
08b36d8300
fix __renderPage() being called twice
2019-06-01 16:35:19 +10:00
Lovac42
84272eca04
added runHooks for reverted cards and state.
2019-05-17 20:17:36 -04:00
Damien Elmes
ac8b6c0cac
fix preview failing to appear when 'show both sides' enabled
2019-05-17 15:16:13 +10:00
Damien Elmes
ce1a78f07c
don't error out when non-latin characters written to js console
...
(some?) macOS users have an ascii encoding, so we need to escape
the non-ascii portions prior to writing
2019-05-17 08:43:25 +10:00
Damien Elmes
3f1af6a55f
Merge pull request #306 from lovac42/master
...
doubleclick addman list
2019-05-15 15:58:43 +10:00
Damien Elmes
e69e13ce1e
prevent deck chooser from becoming default
...
Qt's behaviour seems to have changed in move to 5.12
2019-05-15 14:50:55 +10:00
lovac42
50cb5a5d50
doubleclick addman list
...
doubleclick on addon manager list opens conf editor.
2019-05-13 17:27:27 -04:00
Damien Elmes
c8775d4161
catch add-on deletion failure due to locked files in add-on folder
...
https://anki.tenderapp.com/discussions/add-ons/32676-2112
2019-04-29 18:43:10 +10:00
Damien Elmes
62ff62a360
on serverAbort, return early
...
- fixes error attempting to access self.client.hostNum
- prevents media sync from running
2019-04-29 18:27:00 +10:00
Damien Elmes
48e441e20d
fix 'open backup' opening to an empty deck list
...
Starting the import in a timer could cause the collection to be unloaded
while the deck list was being displayed, leading to an inconsistent
state.
The timer was originally required to avoid importing on startup,
but profile load is already delayed until after startup these days,
so the workaround should no longer be necessary.
2019-04-29 16:59:29 +10:00
Damien Elmes
94e59aeaff
don't require callback for regular deck refresh
...
Ensures that decks refresh properly even if the webview has previously
failed to load due to a bug (such as the render routine being called
while the collection is closed)
2019-04-29 16:46:13 +10:00
Damien Elmes
21e842c927
fix stuck webview issue
...
A race condition could cause domDone to get stuck on false, causing
any further bridge messages and setHtml() calls to be ignored. Fix
the issue by clearing pending actions and resetting domDone when
setting HTML.
2019-04-29 16:41:47 +10:00
Damien Elmes
60afbcf62d
daemonize helper threads so that sys.exit() during startup works
...
with daemonize set to False, the app hangs waiting on the helper threads
2019-04-29 14:36:44 +10:00
Damien Elmes
a79da88a35
Merge pull request #304 from ErezVolk/jsonschema
...
Use jsonschema for add-on manifests
2019-04-29 12:34:47 +10:00
Damien Elmes
7e5f86499a
fix formatting being lost in inter-field pasting on macOS
...
ownsClipboard() always returns false on macOS
regression introduced in PR 274
2019-04-29 12:30:52 +10:00
Damien Elmes
19b875a153
fix bug caused by user creating profile with trailing space
...
Caught exception:
File "aqt\main.py", line 237, in onOpenBackup
File "aqt\profiles.py", line 264, in backupFolder
File "aqt\profiles.py", line 274, in _ensureExists
File "os.py", line 220, in makedirs
<class 'FileNotFoundError'>: [WinError 3] The system cannot find the path specified: 'C:\\Users\\xxx\\AppData\\Roaming\\Anki2\\xxx \\backups'
2019-04-25 09:37:58 +10:00
Erez Volk
a2c6a5b27e
Use jsonschema for add-on manifests
2019-04-24 23:42:49 +03:00
Damien Elmes
c125ba1358
catch another full disk error
2019-04-23 10:19:05 +10:00
Damien Elmes
737a2bba66
don't try set filter if webview already deleted
...
https://anki.tenderapp.com/discussions/add-ons/32496-add-on-error
2019-04-21 19:12:04 +10:00
Damien Elmes
2e92f30150
possible fix for " super-class ... Preferences was never called"
...
Can't reproduce the issue, but it seems the user was able to open the
preferences screen when no collection was loaded. If an error was
caught in loadCollection() the main window was not being hidden, so
perhaps a timing issue was preventing the profiles screen from taking
modal focus.
Removed the check in the prefs init - it is hopefully no longer
necessary, and returning before QDialog.__init__() was called was
causing the problem.
Caught exception:
File "aqt/webview.py", line 27, in cmd
File "aqt/webview.py", line 85, in _onCmd
File "aqt/webview.py", line 360, in _onBridgeCmd
File "aqt/toolbar.py", line 56, in _linkHandler
File "aqt/toolbar.py", line 80, in _syncLinkHandler
File "aqt/main.py", line 669, in onSync
File "aqt/main.py", line 365, in unloadCollection
File "aqt/main.py", line 611, in closeAllWindows
File "aqt/__init__.py", line 110, in closeAll
<class 'RuntimeError'>: super-class __init__() of type Preferences was never called
2019-04-21 19:02:03 +10:00
Damien Elmes
923ee44448
fix some timers failing to fire
2019-04-21 18:56:30 +10:00
Damien Elmes
49d60a8519
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
2c7463a808
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
9bc1bc4976
need rich text in install error, as err msgs have html
2019-04-16 17:39:08 +10:00
Damien Elmes
0c0e8a9ff0
use dialog instead of tooltip if there's more than one log line
2019-04-16 17:38:38 +10:00
Damien Elmes
9bd3536fce
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
47bc308ece
Revert "Workaround for AltGr '@' issue."
...
This reverts commit b3f6fc1fc1 and
917d31c7fa
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
7339fdded3
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
4aff1a80fb
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
a674b3386c
preview code shouldn't assume self.card is valid
2019-04-15 12:20:12 +10:00
Damien Elmes
5d2267cbae
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
917d31c7fa
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
8dc324108c
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
bab82e0a28
avoid highlighting/tabbing to top bar
2019-04-10 15:16:22 +10:00
Damien Elmes
3a43165586
standard blue focus highlight on windows
2019-04-10 15:16:06 +10:00
Damien Elmes
9d230f2820
avoid popups for some non-serious warnings
2019-04-10 12:44:01 +10:00
David Lönnhager
b3f6fc1fc1
Workaround for AltGr '@' issue.
2019-04-09 14:55:00 +02:00
Damien Elmes
0e0bca2d08
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
de6825288f
ensure card info is closed properly
2019-04-09 16:21:43 +10:00
Glutanimate
14fbc90b4f
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
4115235a45
make sure card counts are updated when undoing reviews
2019-04-08 15:47:49 +10:00
Damien Elmes
07adde978b
friendly message for full disk
2019-04-08 15:32:58 +10:00
Damien Elmes
320cc90320
fix preview not updating when note edited
2019-04-08 15:18:40 +10:00
Damien Elmes
d15bfd6d1c
fix note not displaying when preview toggled off & on
2019-04-08 15:18:27 +10:00
Damien Elmes
bf8c0216ff
fix memory leak in card layout screen
2019-03-26 11:31:40 +09:00
Damien Elmes
5522c240a5
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
3e8fd97ae3
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
b6b1a8117d
Merge branch 'master' of github.com:dae/anki
2019-03-07 18:34:35 +10:00
Damien Elmes
496b029ac1
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
295175b3b0
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
d208ac2088
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
9b0efdc190
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
d62177b020
tweak coding statement to make xgettext happy
2019-03-05 09:59:21 +10:00
Damien Elmes
464fe69cdb
allow decreasing daily limits in custom study
2019-03-05 09:06:17 +10:00
Damien Elmes
d118c5cc9f
add option to strip html in export
2019-03-05 08:57:53 +10:00
Damien Elmes
3e80f85d94
preview state depends on card id, not note id
...
fixes
https://anki.tenderapp.com/discussions/ankidesktop/32952-commit-b43b14eb6263676da4d41cd5f3ca514bb8b43873-causes-preview-to-not-work-with-multiples-cards-of-same-note-cloze-deletions
2019-03-05 07:50:54 +10:00
Damien Elmes
0c6fbddc27
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
442600daf8
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
75a95ee1fb
tidy up unused imports
2019-03-04 17:25:19 +10:00
Damien Elmes
300231e318
use raw strings for regexs
2019-03-04 17:03:43 +10:00
Damien Elmes
71f2b0627d
fix inconsistent indentation
2019-03-04 16:54:22 +10:00
Damien Elmes
e7a8bf145a
move from deprecated optparse to argparse
2019-03-04 16:45:29 +10:00
Damien Elmes
7d0f7ae33c
fix some warnings
2019-03-04 16:01:10 +10:00
Damien Elmes
5dbe5638c0
fix incorrect qt constructor call
2019-03-04 15:59:53 +10:00
Damien Elmes
70c803adf7
WindowsError may not be defined
2019-03-04 12:29:55 +10:00
Damien Elmes
739885118b
print warning when add-ons access _ without importing it
2019-03-04 12:08:48 +10:00
Damien Elmes
e6d75207af
explicitly import _ and ngettext
2019-03-04 11:58:34 +10:00
Damien Elmes
8981da61c1
silence some spurious errors and remove some unused code
2019-03-04 11:22:40 +10:00
Glutanimate
37da78f4c6
Refactor: re.match --> re.fullmatch
2019-03-03 17:04:01 +01:00
Glutanimate
a01679266b
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
085679d5d1
move versionWithBuild into anki module
2019-02-28 08:37:42 +10:00
Damien Elmes
b1bd76f2dc
avoid traceback when network offline in add-on check
2019-02-27 14:18:16 +10:00
Damien Elmes
d3aac33d08
fix regression in showInfo() et al
2019-02-27 14:16:35 +10:00
Damien Elmes
5142bb012f
ensure progress window cleared if error on add-on import
2019-02-27 14:08:20 +10:00
Damien Elmes
e5a4688411
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
Glutanimate
0bdd18f352
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
0595b3ab04
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
b43b14eb62
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