Commit graph

1034 commits

Author SHA1 Message Date
Damien Elmes
c6b74646b9 handle 'jpg' and leading space in inlined images 2018-08-20 13:02:30 +10:00
Damien Elmes
3157372fdd handle conf group with string id
https://anki.tenderapp.com/discussions/ankidesktop/29112-cant-delete-a-deck
2018-08-09 15:03:19 +10:00
Damien Elmes
5f71f91cd0 support specifying gfx driver in profile folder
We need to set the OpenGL mode prior to Qt initialisation, but
want to fetch the current driver from the profile manager - and
the profile manager required Qt to already be set up.

Work around this by moving away from QStandardPaths in favour of
a pure Python module. The profile manager now does early setup
using winpaths, and we defer most of the setup until Qt has been
initialised.

Also we install a message handler to catch OpenGL initialisation
errors, and automatically switch to the next driver so users
don't need to manually change the driver.

The --hwaccel option has been removed, as it is no longer necessary.
2018-08-08 23:48:25 +10:00
Damien Elmes
096dbd6aff fix winpaths for py3 2018-08-08 23:31:18 +10:00
Damien Elmes
631865917c bundle winpaths 2018-08-08 23:30:41 +10:00
Damien Elmes
99fb8b6403 favour urls over images in local file case
fixes copying&pasting from finder pasting icons instead of actual image

https://anki.tenderapp.com/discussions/ankidesktop/29082-found-several-issues-in-anki-21
2018-08-08 12:46:51 +10:00
Damien Elmes
afdcc8871e fix images not pasting as links 2018-08-08 12:45:59 +10:00
Damien Elmes
31f0fa4ab5 don't save window geom when window is fullscreen
fixes windows being shown in extra workspaces instead of tabs on osx

https://anki.tenderapp.com/discussions/ankidesktop/29094-anki-21-issue
2018-08-08 12:30:58 +10:00
Damien Elmes
59d376fb98 rewrite data uris from html pastes as well 2018-08-08 11:38:45 +10:00
Damien Elmes
2695391891 support rtl text in sort field in browser 2018-08-08 10:39:54 +10:00
Damien Elmes
3036a5c43c fix exporting not working with regular scheduler 2018-08-07 14:27:48 +10:00
Damien Elmes
7b2c0533c1 shortcut to mhchem 2018-08-06 13:17:57 +10:00
Damien Elmes
a1c23c770c don't unmaximize when showing browser
https://anki.tenderapp.com/discussions/beta-testing/1228-anki-210-release-candidate/page/2#comment_45812673
2018-08-01 21:11:35 +10:00
Damien Elmes
1c538fb943 add webm 2018-07-30 12:06:38 +10:00
Damien Elmes
217074e710 Merge pull request #248 from glutanimate/addon-onconfigupdated
Extend add-on API with setConfigUpdatedAction
2018-07-28 18:50:29 +10:00
Damien Elmes
1d97d284e9 support dynamic sync url 2018-07-28 18:08:16 +10:00
Glutanimate
335406641a Pass new config on to add-on 2018-07-28 09:25:38 +02:00
Glutanimate
adab94e0ec Only update config if actually modified 2018-07-28 09:09:17 +02:00
Glutanimate
880a1d80d0 Extend add-on API with setConfigUpdatedAction
Allows add-on authors to define an action to be performed upon
manual editing of the add-on configuration through the ConfigEditor
2018-07-28 09:00:49 +02:00
Damien Elmes
4a79775510 remove beta warning 2018-07-28 16:44:23 +10:00
Damien Elmes
c84ae1e7c3 default to software rendering on Windows/Linux 2018-07-28 16:43:19 +10:00
Damien Elmes
b6a64991de Merge pull request #245 from glutanimate/fix-findreplace-showinfo-focus
Set showInfo parent explicitly in in browser find and replace
2018-07-26 16:31:13 +10:00
Damien Elmes
c7c559930e Merge pull request #244 from glutanimate/fix-togglefield-reset
Make sure to end model reset when prematurely returning from toggleField
2018-07-26 16:25:01 +10:00
Glutanimate
2518c13f16 Set showInfo parent explicitly in in browser find and replace
Fixes an issue where focus would be passed over to mw after longer
find and replace processing times.
2018-07-25 12:00:08 +02:00
Glutanimate
574edf9d2c Make sure to end model reset when prematurely returning from toggleField
Fixes an issue where Anki would stall after trying to remove the
last browser column.
2018-07-25 11:52:21 +02:00
Glutanimate
f0f1efd73d Add a hook to browser.onContextMenu for add-on authors
This will grant add-on authors more flexibility in implementing
custom context menu actions.
2018-07-25 11:40:49 +02:00
Damien Elmes
75c25b2b80 save file selector state 2018-07-23 13:57:17 +10:00
Damien Elmes
991aa7d402 fixes for mpv focus switching
- avoid changing focus if an Anki window is already focused
- only try to restore focus when playing videos
2018-07-23 13:57:09 +10:00
Damien Elmes
8d1cc6de23 select current card in card layout from edit current 2018-07-23 12:54:26 +10:00
Damien Elmes
42c590e5b8 select current card when browser opened
https://anki.tenderapp.com/discussions/beta-testing/1208-no-way-to-know-which-card-im-seeing-anymore
2018-07-23 12:50:10 +10:00
Damien Elmes
73ed513408 catch v2 sched export before file created
https://anki.tenderapp.com/discussions/beta-testing/1210-scheduling-error#comment_45692960
2018-07-23 12:01:45 +10:00
Damien Elmes
8f38ddd2b9 leave space after deck:current
https://anki.tenderapp.com/discussions/ankidesktop/28662-add-space-after-deckcurrent
2018-07-23 11:01:21 +10:00
Damien Elmes
f656a2da09 support customizing hard factor 2018-07-11 21:23:22 +10:00
Damien Elmes
72a8330143 separate cram into review cards(resched=1) and all cards(resched=0)
rescheduling on is useful for preventing extra work, but when applied to
new cards it will leave the user with a large number of reviews
2018-07-11 20:35:08 +10:00
Damien Elmes
1e63ed2965 remove study card count cap in v2 sched
- cap kept for the deck list, as we need to calculate it for multiple
decks
- v2 sched can calculate review limit faster, as it doesn't have to
check each deck separately
- filtered deck cap is same as in interface
- as this will be deployed on ankiweb, beta clients will need to update
or risk getting sanity check errors when syncing with high due counts
2018-07-11 20:03:36 +10:00
Damien Elmes
933bec4c45 don't attempt to rename profile folder if it's a file 2018-07-11 15:23:24 +10:00
Damien Elmes
dae7f56328 warn and close when media server requests fail 2018-06-29 17:17:13 +10:00
Damien Elmes
dbb1444a38 fix card info dialog size not being remembered 2018-06-25 11:56:27 +10:00
Damien Elmes
b6cbe64314 fix error reporting when collection not open 2018-06-21 15:51:32 +10:00
Damien Elmes
616e59bacc change wording to differentiate from 'browse' in toolbar 2018-06-21 15:23:41 +10:00
Damien Elmes
517fd21961 hack to keep scroll position in deckbrowser
noticeable flash when page is redrawn; in the future we'll
need to use js to update the page
2018-06-12 13:46:15 +10:00
Damien Elmes
ae1220aec0 show sched ver in debug info 2018-06-08 12:33:05 +10:00
Damien Elmes
56aec99462 move back to requiring python 3.6
portions of libanki can run on python 3.5, but media syncing will fail
so we require 3.6 when running the GUI
2018-06-07 11:36:11 +10:00
Damien Elmes
d0467b0e65 another many decks speedup 2018-05-31 16:24:34 +10:00
Damien Elmes
08538a48dc catch name resolution errors in sync 2018-05-31 13:24:49 +10:00
Damien Elmes
0562c7ba45 need to record active window prior to playing in mpv 2018-05-31 13:22:17 +10:00
Damien Elmes
7b944a46f4 new stats shortcut 2018-05-31 13:05:37 +10:00
Damien Elmes
d7fa18c1e6 avoid running on qt 5.11
updates will be needed for Qt's latest round of breaking changes
2018-05-29 19:25:23 +10:00
Damien Elmes
46c8eb00ca sync field contents before applying cloze deletion
based on a patch by dlon:

https://github.com/dae/anki/pull/236
2018-05-28 13:40:35 +10:00
Damien Elmes
9a28fd532a Merge pull request #237 from maharmstone/master
stdHtml: fix certain fonts not working on Linux
2018-05-28 12:15:43 +10:00
Mark Harmstone
6f8264d084 stdHtml: fix certain fonts not working on Linux 2018-05-27 21:16:55 +01:00
Damien Elmes
c78b9e8804 include aria-label in top toolbar
qt doesn't seem to support it at the moment though

https://anki.tenderapp.com/discussions/beta-testing/1130-latest-anki-beta-not-accessible-with-voiceover-on-mac-os
2018-05-14 11:24:04 +10:00
Damien Elmes
9cdcc99aa7 fix previously pasted image appearing in place of drop/text paste
mime.imageData() was returning stale data, and may have been causing
crashes as well
2018-05-10 16:44:55 +10:00
Damien Elmes
dc1a999991 don't try to use mpv on Windows
some users had mpv lying around from previous installs, and the Windows
implementation seems to hang with the idle hook introduced in the
previous build
2018-05-10 14:50:23 +10:00
Damien Elmes
38279816eb fix busy cursor in full sync screen 2018-05-01 14:34:03 +10:00
Damien Elmes
a6007a54f3 add space to 'waiting for editing' screen 2018-05-01 13:35:28 +10:00
Damien Elmes
77b5db4d96 support pasting of images from inlined base64 text
chrome exports image data as text when using 'copy image location'
2018-05-01 13:16:46 +10:00
Damien Elmes
ca14f9e4d9 favour images over urls when pasting
fixes dragging of images from safari+google images, and pasting of
'copy image' from chrome
2018-05-01 12:47:41 +10:00
Damien Elmes
73ddd79967 work around video focus stealing
https://anki.tenderapp.com/discussions/ankidesktop/27401-bug-when-playing-a-video-on-anki-for-mac-anki-lanches-mplayer-and-doesnt-quit-it-or-return-to-anki
2018-04-30 17:12:26 +10:00
Damien Elmes
3e4e059966 add custom steps back to v1 sched options 2018-04-30 16:26:43 +10:00
Damien Elmes
4a00406ad1 add experimental scheduler to preferences 2018-04-30 16:26:19 +10:00
Damien Elmes
87d4a6beb5 onReset() already sets note; don't need to do it twice 2018-04-30 15:15:43 +10:00
Damien Elmes
d7db4b7427 catch attempts to save field contents to wrong note 2018-04-30 15:15:20 +10:00
Damien Elmes
d453278d4b fix field getting overwritten when showing duplicates 2018-04-30 14:51:28 +10:00
Damien Elmes
f8bfcc01d6 sox was dropped years ago 2018-04-19 17:15:49 +10:00
Damien Elmes
4d016cf4ba hack around premature completer deletion
haven't been able to identify why qt sometimes deletes the completer
early, so just suppress the error for now

https://anki.tenderapp.com/discussions/beta-testing/884-freeze-and-sigabrt-when-add-dialog-is-left-open-for-about-one-hour-and-used-afterwards#comment_44837119
2018-04-18 13:21:10 +10:00
Damien Elmes
ba378394cf Merge pull request #231 from ljcooke/config-md-unicode
Read config.md as UTF-8
2018-04-06 16:47:31 +10:00
Damien Elmes
b991883a6c Revert "work around issues writing to Windows clipboard"
This reverts commit b6d68c284e.

seemed to be causing crashes, and the underlying race condition wasn't solved
2018-04-06 16:46:09 +10:00
Liam Cooke
8eb6490dfd Read config.md as UTF-8 2018-04-05 22:11:44 +10:00
Damien Elmes
6dd7a18667 remove stale journal file when resetting prefs 2018-03-22 14:10:23 +10:00
Glutanimate
7c50ea06ad Revert debug console shortcut workaround
Seems like the assignment to "Ctrl+:" is working again

cf. fb81f63fe3
2018-03-18 15:50:50 +01:00
Damien Elmes
562eeda201 allow pycmd() to return a value
based on pull request #228
2018-03-08 17:48:14 +10:00
Damien Elmes
2336cd098c don't show completion dropdown on focus in
obscures buttons and gives the impression something needs to be chosen
https://anki.tenderapp.com/discussions/ankidesktop/27132-anki-bug-with-tags-and-decks#comment_44820594
2018-03-02 12:19:10 +10:00
Damien Elmes
75d1cb1f2a filter middle click pastes 2018-03-02 11:16:02 +10:00
Damien Elmes
b6d68c284e work around issues writing to Windows clipboard
https://anki.tenderapp.com/discussions/beta-testing/1014-cannot-copy-from-fields-in-anki-210beta36
2018-03-01 15:53:25 +10:00
Damien Elmes
4c4fcfe403 clean up deck chooser hook on importer close
fixes
https://anki.tenderapp.com/discussions/ankidesktop/20841-editingimport-limitation#comment_44777511
2018-03-01 14:20:30 +10:00
Damien Elmes
e131cb8e30 clarify 'delete unused' button, and don't show when n/a 2018-03-01 14:00:05 +10:00
Damien Elmes
317cb84201 ignore delete key if card list is not focused
https://anki.tenderapp.com/discussions/beta-testing/1004-ctrl-delete-erases-my-cards
2018-03-01 13:31:52 +10:00
Damien Elmes
fe95cdcfdd fix error when unsetting browser appearance 2018-02-26 11:21:12 +11:00
Damien Elmes
4d6d5034a9 load add-ons in consistent order
if ANKIREVADDONS env var is defined, reverse order for debugging

partially addresses pull req #225
2018-02-24 13:23:15 +11:00
Damien Elmes
8c6ee7de6b fix importing of v2 colpkg files 2018-02-05 15:30:57 +10:00
Damien Elmes
d8de5fbb9b check shift key when paste starts; avoid progress dlg for local file
https://anki.tenderapp.com/discussions/ankidesktop/26661-conot-paste-image-and-text-together-from-word-into-anki
2018-02-05 13:40:56 +10:00
Damien Elmes
2e3907f62e fix temp folder msg 2018-02-05 12:34:38 +10:00
Damien Elmes
2b7f2adbb8 catch more problems with corrupt collections
if collapseTime is missing from col.conf, the initial load was
succeeding, but then the UI was getting stuck in moveToState()
2018-02-05 12:34:31 +10:00
Damien Elmes
e592886723 prevent find duplicates scrolling to top on link click 2018-02-03 17:11:32 +10:00
Damien Elmes
e7607608c8 raise profile window on macos
otherwise profile manager opens without focus
2018-02-01 12:14:04 +10:00
Damien Elmes
c474f58748 enforce schema version; allow importing+exporting v2 scheduler
To avoid all sorts of problems, we need to ensure cards scheduled with
the V2 scheduler are not studied in older clients. Unfortunately we
can't just bump the file's schema version, as the existing clients will
freely import files created with newer versions. This patch changes
that, so things should be a bit easier in the future.

In the mean time, we need a way to prevent older clients from importing
files created with the V2 scheduler. To do this, we switch to using a
'collection.anki21' file in the archive, and include a dummy collection
.anki2 file.

The code has been tested with both deck and collection packages, but
exporting deck packages w/ scheduling info will remain disabled until
the V2 scheduler has had more testing.
2018-01-29 14:12:04 +10:00
Damien Elmes
3e9be0155e preserve newlines when pasting plain text 2018-01-26 19:18:24 +10:00
Damien Elmes
1d0ce7c095 fix unbury op w/ v1 scheduler 2018-01-26 19:05:08 +10:00
Damien Elmes
f668c6fc79 remove missed format literals 2018-01-24 21:07:06 +10:00
Damien Elmes
b05276ff89 fix opening prefs screen in V1 sched 2018-01-22 11:24:45 +10:00
Damien Elmes
7c79f24916 add option to show day learn cards before reviews 2018-01-20 16:07:57 +10:00
Damien Elmes
5c549e47f4 support customizing day cutoff w/ V2 scheduler 2018-01-20 15:32:52 +10:00
Damien Elmes
65b81b0a47 make preview delay customizable 2018-01-20 15:26:11 +10:00
Damien Elmes
6e76983b3a log traceback in case of sync error 2018-01-20 11:24:01 +10:00
Damien Elmes
07dcacf09b remove format literals so we can support python 3.5 2018-01-16 16:07:30 +10:00
Damien Elmes
2294f8bc9f work around progress dlg hang at startup on osx
with autosync on, when the progress dialog is closed and the main window
appears, it becomes stuck. hiding the dialog instead of closing it
seems to fix this.
2018-01-14 19:29:56 +10:00
Damien Elmes
f2159a99d0 hide second filter for v1 sched 2018-01-14 19:20:01 +10:00
Damien Elmes
e03f28f2cc fix bad margins in progress dialog 2018-01-14 18:05:43 +10:00
Damien Elmes
a089424adc check prefs21.db integrity
otherwise some corruption errors only become apparent when trying to
load an individual profile
2018-01-14 17:47:21 +10:00