Commit Graph

2254 Commits

Author SHA1 Message Date
Damien Elmes
86d9b57877 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
Damien Elmes
7aba268d7a tweak type answer note type 2019-05-14 17:05:37 +10:00
lovac42
f41e791c5a
doubleclick addman list
doubleclick on addon manager list opens conf editor.
2019-05-13 17:27:27 -04:00
Damien Elmes
bcb422beda fix learn steps being assigned on relearn in v2 2019-04-30 09:27:28 +10:00
Damien Elmes
9ce1f051cc 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
8a63b4712c 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
599f57494b wrap due numbers instead of capping them, and add warning
Wrapping (mostly) preserves the original card order, and starting
at 1M makes it easier for users to find the cards with the high
due numbers even after they have wrapped.

related discussion:
https://anki.tenderapp.com/discussions/ankidesktop/33664-due-value-of-new-card-being-1000000
2019-04-29 18:17:33 +10:00
Damien Elmes
3716feb1c4 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
c3dc02cd7f 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
6594f62f5d 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
eb46a8509a bump version 2019-04-29 14:51:34 +10:00
Damien Elmes
70c584671d cleanup mpv on exit 2019-04-29 14:36:51 +10:00
Damien Elmes
9fb5a3257c 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
90dd0efed4 as it's only a testing requirement, move mock into docs instead 2019-04-29 12:40:44 +10:00
Damien Elmes
408e34d108 add missing mock requirement 2019-04-29 12:37:25 +10:00
Damien Elmes
955f21e594
Merge pull request #304 from ErezVolk/jsonschema
Use jsonschema for add-on manifests
2019-04-29 12:34:47 +10:00
Damien Elmes
b4019473ab 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
fccb458fda remove travis notifications 2019-04-25 13:33:18 +10:00
Damien Elmes
b2cfba367e 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
2f75d1758d Use jsonschema for add-on manifests 2019-04-24 23:42:49 +03:00
Damien Elmes
ed0fae3c0c catch another full disk error 2019-04-23 10:19:05 +10:00
Damien Elmes
eef86bf37e 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
1fc480e8f4 mention README.contributing in README.md 2019-04-21 19:07:10 +10:00
Damien Elmes
9cc99cdced 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
623926e8f9 fix some timers failing to fire 2019-04-21 18:56:30 +10:00
Damien Elmes
7df402b006 catch full mpv request queue
presumably happening if multiple requests are sent before previous
response fetch times out

Caught exception:
  File "aqt/webview.py", line 314, in handler
  File "aqt/editor.py", line 351, in <lambda>
  File "aqt/addcards.py", line 225, in afterSave
  File "aqt/addcards.py", line 231, in doClose
  File "aqt/addcards.py", line 210, in _reject
  File "anki/sound.py", line 417, in clearAudioQueue
  File "anki/sound.py", line 117, in clearQueue
  File "anki/mpv.py", line 558, in command
  File "anki/mpv.py", line 352, in _send_request
  File "anki/mpv.py", line 311, in _send_message
<class 'anki.mpv.MPVTimeoutError'>: unable to put request
2019-04-21 18:56:11 +10:00
Damien Elmes
8497da27cf ensure the list of note types is not empty
fixes an issue opening the add screen if a user manages to delete
all their note types with an add-on or a sync
2019-04-21 18:02:12 +10:00
Damien Elmes
4a2f39e8f4 Revert "Remove <br> from empty fields."
This reverts commit 4ca2220117.

The above commit caused a regression with RTL text:
https://anki.tenderapp.com/discussions/ankidesktop/33592-bugs-in-add-box
2019-04-16 18:58:59 +10:00
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
8dbebe3583 fix fields appearing under editor buttons
https://anki.tenderapp.com/discussions/ankidesktop/33096-editor-buttons-in-additional-rows-overlap-fields-only-when-scrolled-down
2019-04-09 16:29:56 +10:00
Damien Elmes
dac5ea2a7a ensure card info is closed properly 2019-04-09 16:21:43 +10:00
Damien Elmes
fda69219fc
Merge pull request #299 from glutanimate/fix-update-none-comparison
Fix timestamp comparison failing when update API returns null
2019-04-09 16:05:01 +10:00
Damien Elmes
5dd7fc8c6e another attempt to preventing mpv from accessing standard config
https://github.com/dae/anki/pull/296
2019-04-09 15:32:44 +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