Commit graph

1221 commits

Author SHA1 Message Date
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