Commit Graph

1287 Commits

Author SHA1 Message Date
Damien Elmes
aff810c18a make sure add-on list updates when toggling on qt 5.12/mac 2019-02-06 09:19:20 +10:00
Damien Elmes
bf6e10ec88 catch profile rename error in non-English locales 2019-02-06 09:02:56 +10:00
Damien Elmes
1e9fb6ab29 turn local port message into a tooltip and automatically reload
Since we're automatically disabling proxies now, the main remaining
issue seems to be Windows users resuming their machine from sleep -
for some reason localhost is inaccessible during the resume process.
2019-02-06 07:55:34 +10:00
Damien Elmes
1603a5224e fix context menu in editor, and move workaround into shared function 2019-02-05 14:37:07 +10:00
Damien Elmes
372d5ed6e8 update copyright and clarify licenses 2019-02-05 14:01:33 +10:00
Damien Elmes
488c867afb info/warning/etc need to be be application modal
WindowModal was allowing multiple popups in the browser on Windows:
https://anki.tenderapp.com/discussions/beta-testing/1378-error-does-not-go-away
2019-02-04 07:32:49 +10:00
Damien Elmes
6b24b61999 skip the webview reload when undoing reviews 2019-01-29 09:35:46 +10:00
Damien Elmes
318765cb2e remove another newline case from empty fields
thanks to dlon: https://github.com/dae/anki/pull/273
2019-01-29 08:29:01 +10:00
Damien Elmes
57d566d670
Merge pull request #273 from zjosua/reinstate-mungehtml
Reinstate mungeHTML in editor.py
2019-01-29 08:26:47 +10:00
Damien Elmes
c8b5ce1b66
Merge pull request #275 from glutanimate/editor-addbutton-qrc-support
Add support for button icons stored in Qt resource system
2019-01-29 08:26:07 +10:00
Glutanimate
709bfa4a11 Add support for button icons stored in Qt resource system 2019-01-26 20:42:56 +01:00
David Lönnhager
106134be33 Fix crash caused by cutting and copying 2019-01-26 04:29:05 +01:00
zjosua
4981fa187a Reinstate mungeHTML in editor.py
The removal of this function in #270 causes <br> to remain in seemingly
empty editor fields, which in turn wrongly prompts the "Close and lose
current input?" dialog.
2019-01-25 23:12:48 +01:00
Damien Elmes
3c96492a1a
Merge pull request #270 from dlon/br-improve
Remove <br> from empty fields.
2019-01-21 14:26:12 +10:00
David Lönnhager
4ca2220117 Remove <br> from empty fields. 2019-01-19 19:36:55 +01:00
Damien Elmes
e41c399954 Revert "default to GL mode auto on qt 5.12"
This reverts commit d7760d9831.

unfortunately there still appear to be widespread issues on qt 5.12
2019-01-06 09:59:25 +10:00
Damien Elmes
f91e30a2c1 fix field content showing in top button area 2018-12-22 13:27:12 +10:00
Damien Elmes
4c6c0d428b detect and refuse to run on nouveau 2018-12-18 19:29:34 +10:00
Damien Elmes
a6c34fd79f ignore broken reset hooks in database check
ideally the original code should be correctly cleaning up the hooks,
but if it does not, then we don't want to repeatedly present the user
with confusing errors when they try to check their database is ok.
2018-12-15 13:14:33 +10:00
Damien Elmes
d6d5677fa8 remove unused ref 2018-12-15 12:45:38 +10:00
Damien Elmes
ba9ebcf8f9 make sure change note type clears up hooks
if an error occurred after QDialog.accept() had been called,
the hook was left lying around and caused errors when reset later
fired

File "aqt\main.py", line 1028, in onCheckDB
  File "aqt\main.py", line 516, in reset
  File "anki\hooks.py", line 28, in runHook
  File "aqt\modelchooser.py", line 47, in onReset
  File "aqt\modelchooser.py", line 82, in updateModels
<class 'RuntimeError'>: wrapped C/C++ object of type QPushButton has been deleted
2018-12-15 12:45:17 +10:00
Damien Elmes
748f362695 fix the other json.dumps call
previous change was in the wrong place
33ae6404f1
2018-12-15 09:15:43 +10:00
Damien Elmes
0769bf7ac9 apply stylesheet app wide, and add border to win10 menu
the night mode add-on may need updating with this change, but with
a global stylesheet it may be easier to style widgets in the future

menu bar issue:

https://anki.tenderapp.com/discussions/beta-testing/1313-anki-216-beta-1#comment_46664932
2018-12-14 20:35:12 +10:00
Damien Elmes
9e4730f9dd add file to track pinned modules 2018-12-14 20:32:53 +10:00
Damien Elmes
33ae6404f1 don't escape unicode characters in add-on json
https://anki.tenderapp.com/discussions/ankidesktop/31423-configuration-module-of-addons-is-not-allowing-pt-br-accent
2018-12-13 21:34:55 +10:00
Damien Elmes
053b286398 include git hash in version info 2018-12-13 20:59:06 +10:00
Damien Elmes
d7760d9831 default to GL mode auto on qt 5.12 2018-12-10 15:17:21 +10:00
Damien Elmes
2131c0049f restore tooltips for fields/cards 2018-12-07 08:33:47 +10:00
Damien Elmes
a2b8d24352
Merge pull request #265 from Arthur-Milchior/reopenEdit
The note in curentEdit is not changed until the window is closed.
2018-12-03 16:41:56 +10:00
Damien Elmes
2c30ad9593 fix editor buttons overlapping field content
https://anki.tenderapp.com/discussions/ankidesktop/31235-editor-second-row-for-buttons-feature-request
2018-12-03 09:54:51 +10:00
Damien Elmes
429cb2ce7f fix import screen appearing before progress dialog closes 2018-12-01 13:37:26 +10:00
Arthur-Milchior
b8523944ff The note in curentEdit is not changed until the window is closed.
https://anki.tenderapp.com/discussions/ankidesktop/31105-reopening-an-edit-window
I added a «reopen» method, which I believe may be useful in other
cases too. I check whether the method exists before calling it, so
there should be no compatibility problem.
2018-11-28 10:24:59 +01:00
Damien Elmes
ed665557d5 ensure card list updated when editing html
using an extra hook is ugly, but there's a risk re-purposing
the editTimer hook will break an add-on that assumes the note
has already been loaded

https://anki.tenderapp.com/discussions/ankidesktop/30972-bug-editing-html-in-browser-not-saved-unless-tabbingclicking-to-other-field
2018-11-27 18:00:57 +10:00
Damien Elmes
35360df68d case-insensitive field sort in find dupes 2018-11-27 16:44:23 +10:00
Damien Elmes
5bce218312 limit find&replace fields to selected notes 2018-11-27 16:42:00 +10:00
Damien Elmes
7e2305ac0c fix encoding error when setting up profile
https://anki.tenderapp.com/discussions/ankidesktop/30926-error-when-choosing-ukrainian-as-the-interface-language
2018-11-27 12:55:24 +10:00
David Lönnhager
5744ab01e4 Use escape to close the deck chooser without switching to the selected deck 2018-11-26 18:06:29 +01:00
Damien Elmes
e4af18cf66 catch wrong objects in add-on conf
based on patch from Arthur: https://github.com/dae/anki/pull/261/files
2018-11-18 15:22:31 +10:00
Damien Elmes
204ed5c18a fix font hack 2018-11-15 14:04:08 +10:00
Damien Elmes
9396d74bf6
Merge pull request #260 from zandimna/patch-1
Change the order of elements on the window title
2018-11-13 11:10:51 +10:00
zandimna
3b70c6ff26
Change the order of elements on the window title
The application name typically comes at the end of the title. As such, many tools grabs the final string as the application name. What Anki does currently causes the profile name to be grabbed, producing unexpected results.
2018-11-12 20:23:47 +08:00
Damien Elmes
6e95d9a398 catch maxpath error in mediasrv
https://anki.tenderapp.com/discussions/ankidesktop/30729-valueerror-in-ospathisdir-call-in-mediasrvpy-for-elements-with-long-strings-as-src
2018-11-12 19:35:23 +10:00
Damien Elmes
7f85218b5a paste links as anchors if shift held down 2018-11-12 16:39:24 +10:00
Damien Elmes
ed411b0cc9 add hack for font name consistency issue
https://anki.tenderapp.com/discussions/ankidesktop/30785-bug-font-not-applying-to-japanese-characters
2018-11-12 16:30:11 +10:00
Damien Elmes
d3c0ea46e2 normalize search text
https://anki.tenderapp.com/discussions/ankidesktop/30614-diacritics-changed-on-card-save-anki-21
2018-11-12 12:43:54 +10:00
Damien Elmes
fea23177e8 skip scroll if the number of cards has not changed
The scrolling behaviour is useful when cards are deleted, but
annoying in other cases such as when changing flags.
2018-11-12 12:26:23 +10:00
Damien Elmes
6609dfda7b prevent hiding of shortcuts in browser context menu 2018-11-12 12:13:58 +10:00
Damien Elmes
4acce5f96b checkmark on flags in browser 2018-11-12 12:10:50 +10:00
Damien Elmes
8ac5cc8dff prevent qt from hiding shortcuts in reviewer context 2018-11-12 12:02:51 +10:00
Damien Elmes
4b19e47b3f show checkmark on current flag in reviewer context menu 2018-11-12 12:01:54 +10:00
Damien Elmes
a3eb44d950 toggle flags in reviewer 2018-11-12 11:58:36 +10:00
Damien Elmes
d2765eadd5 toggle flags instead of using separate clear action in browser 2018-11-12 11:55:37 +10:00
Damien Elmes
997cc95fc7 use a semi transparent, neutral selection in browser
As the base colour of rows is now visible, actions like flagging
now provide immediate feedback about what they've changed.
2018-11-12 11:02:01 +10:00
Damien Elmes
5e5d35e9c1 change purple flag to orange 2018-11-01 14:58:41 +10:00
Damien Elmes
a9f9df5109 Revert "workaround bottom toolbar issue on macOS/qt5.12"
This reverts commit 5e3f35a32c.

underlying issue should be fixed in qt5.12beta3
2018-10-29 21:08:16 +10:00
Damien Elmes
3126611ecf display warning when profile corrupted 2018-10-29 21:06:33 +10:00
Damien Elmes
eef0b92374 correctly load prefs file modified in more recent qt 2018-10-29 21:06:11 +10:00
Damien Elmes
e18bd4d67d work around existing instance not responding quickly
on a slow computer the first instance may have set up the local
server but not yet started the main loop, so when a user double clicks
on the icon twice, the second instance was timing out and opening
another window, then giving locked database errors

to work around this, increase the timeout, and tell the user the
existing instance is not responding instead of creating a new instance

https://anki.tenderapp.com/discussions/ankidesktop/30306-error
https://anki.tenderapp.com/discussions/ankidesktop/30550-im-sorry
2018-10-28 14:17:16 +10:00
Damien Elmes
2483e9c89e sidebar now visible by default 2018-10-28 12:24:54 +10:00
Damien Elmes
a4edc57dc5 run latex commands without bundled libs
https://anki.tenderapp.com/discussions/ankidesktop/30531-latex-wont-generate-svgs-automatically-but-will-generate-pngs
2018-10-28 11:41:43 +10:00
Damien Elmes
b4f4e65c55 simplify about sizing 2018-10-25 15:47:17 +10:00
Damien Elmes
1fd7c244be Revert "fix about dialog collapsed on qt 5.11/12"
This reverts commit edb3b176a8.

causes a lot of flickering on startup - will just move to
static sizing instead, as there is a scrollbar anyway
2018-10-25 15:43:17 +10:00
Damien Elmes
5e3f35a32c workaround bottom toolbar issue on macOS/qt5.12 2018-10-25 15:34:27 +10:00
Damien Elmes
edb3b176a8 fix about dialog collapsed on qt 5.11/12
the new approach doesn't seem to work properly on qt 5.9, so just
revert to a static size on that platform
2018-10-25 15:25:47 +10:00
Damien Elmes
3cb073878a allow startup on qt5.12+
an intermittent issue with the webview on macOS, but otherwise
appears ok in initial tests
2018-10-25 14:48:08 +10:00
Damien Elmes
098434ff38 we can use the old undo shortcut on 5.11
webviews no longer propagate the captured shortcut
2018-10-23 18:40:58 +10:00
Damien Elmes
68a398f8d6 fix black flash on stats load on osx/qt5.11 2018-10-23 17:09:16 +10:00
Damien Elmes
0c1c7a1ca3 fix other clickable anchors 2018-10-23 17:05:47 +10:00
Damien Elmes
14f4107dfd deal with onclick handlers that don't return false
Because <base> is set to the media server URL, <a href='#' ...> causes
a page transition from the current setHtml() page data. Previous Qt
versions allowed us to just ignore the request, but now returning False
in acceptNavigationRequest() causes the subsequent page navigation to
be rejected as well, resulting in no visible change when clicking on a
deck in the deck list.

To deal with this, Anki will now warn when such navigation requests
come in, as the anchors need to be updated to return false. pycmd()
has been updated to return false to make returning in onclick easier.

Also use QUrl.matches() instead of converting the potentially long
URL to a string.
2018-10-23 16:47:01 +10:00
Damien Elmes
fa9a54db98 allow the initial setHtml() request to proceed
Qt 5.11 appears to call acceptNavigationRequest() for the initial
page load now.
2018-10-23 16:11:08 +10:00
Damien Elmes
1af556cb8d delay event filter installation
Qt 5.11 doesn't initialize the focusProxy until
a page has been loaded.
2018-10-23 16:06:56 +10:00
Damien Elmes
63f2ccdb3a allow startup on qt 5.11 2018-10-23 16:03:27 +10:00
Damien Elmes
5ecd01cc99 support new sip module location
qt has moved sip into a submodule
2018-10-23 16:02:59 +10:00
Damien Elmes
b0091053bf don't require collection for top toolbar
This is a hack, and ideally the code would be refactored
so that the entire main window is not loaded until a collection
is available, but doing that will break a bunch of add-ons.

Fixes
https://anki.tenderapp.com/discussions/beta-testing/1276-anki-215-beta#comment_46241878
2018-10-12 12:08:19 +10:00
Damien Elmes
7d62b186f8 disable proxy support if 127.0.0.1 is not bypassed
There doesn't appear to be an easy way to tell WebEngine to ignore
the proxy for 127.0.0.1, so if the user has not bypassed the proxy
for local addresses, completely disable it. This may break remote
image and script references, but should at least allow the app to
load without intervention.
2018-10-11 15:49:04 +10:00
Damien Elmes
63661713df use 127.0.0.1 instead of localhost in local urls 2018-10-11 15:45:55 +10:00
Gabriel McManus
893ebfab60 Properly escape pasted URLs
If a URL is pasted and it isn't converted to a media link, then it
should be treated as normal text and properly escaped.
2018-09-29 00:47:45 +00:00
Damien Elmes
c535783091 increase overview width
fixes wrapped button on
https://anki.tenderapp.com/discussions/ankidesktop/29948-214-bugs
2018-09-28 17:54:43 +10:00
Damien Elmes
2868ec0e8b catch js results that are received after collection closed 2018-09-28 16:27:41 +10:00
Damien Elmes
8489f84937 catch .anki(2) imports 2018-09-27 11:35:21 +10:00
Damien Elmes
f3a6472c5c fix error when review button deselected
https://anki.tenderapp.com/discussions/ankidesktop/29882-selecting-a-button-and-enter-or-space-always-chooses-good
2018-09-26 16:31:31 +10:00
Damien Elmes
e2d133525e support newlines in type:cloze, and convert them to spaces
https://anki.tenderapp.com/discussions/ankidesktop/29747-empty-cards-when-trying-to-type-in-cloze-deletions
2018-09-24 17:44:34 +10:00
Damien Elmes
9ba8f9784d add rowChanged hook and ensure singleCard attr exists 2018-09-24 17:29:19 +10:00
Damien Elmes
8775314e36 use custom mpv config folder
not the first time the default location has caused problems for users
https://anki.tenderapp.com/discussions/ankidesktop/29531-bug-ankis-version-of-mpv-loads-mpvconf-from-configmpv-on-macos
2018-09-24 16:26:08 +10:00
Damien Elmes
0d6d7b9bad print early tracebacks to console 2018-09-24 16:24:11 +10:00
Damien Elmes
6e9276e5a3 add missing translation line 2018-09-24 14:48:08 +10:00
Damien Elmes
41caa8ccbc add Arman to about 2018-09-24 14:46:44 +10:00
Damien Elmes
49096da7f8 enter/space should use selected answer button
https://anki.tenderapp.com/discussions/ankidesktop/29882-selecting-a-button-and-enter-or-space-always-chooses-good
2018-09-24 14:24:17 +10:00
Damien Elmes
dfd23f6a41 use anki requests client for common user agent name
some websites are blocking access from the generic requests UA - now
they can choose whether they wish to block Anki or not
2018-09-19 23:49:56 +10:00
Damien Elmes
ae3c0416db fix catch of access denied error 2018-09-17 23:38:19 +10:00
Damien Elmes
aef584f0a8 don't force qFade when hardware accel available
https://anki.tenderapp.com/discussions/ankidesktop/29599-disable-fade-animation-in-anki-21
2018-09-10 13:33:08 +10:00
Damien Elmes
504ee75c8e fix deck list getting stuck when building filtered deck
issue is trying to move to the overview screen before the callbacks
on the deck overview screen complete - "fix" it for now by remaining
on the deck list
2018-09-05 20:02:40 +10:00
Damien Elmes
d976bf913e prevent new users from downloading accidentally 2018-09-05 19:53:41 +10:00
Damien Elmes
18a7fb9dcd prioritize marked/flagged card colour over suspended colour 2018-09-05 16:55:26 +10:00
Damien Elmes
36b763e45f
Merge pull request #251 from upday7/master
disable form.viewPage button when add-on was not downloaded from AnkiWeb
2018-09-02 18:03:14 +10:00
root
77e6b395e5 specify exception; convert match result to None 2018-08-31 15:13:06 +08:00
root
8aa27dcdf5 disable form.viewPage button when add-on was not downloaded from AnkiWeb 2018-08-31 14:56:16 +08:00
Glutanimate
2f58152f13 Try to more closely imitate native widget theming on Linux
Renames stdHtml buttonspec to widgetspec, and applies a number of Linux-
specific adjustments, including:

+ updated button designs that more native/modern
+ updated widget focus colors that follow the theme
  default color palette
2018-08-30 22:07:06 +02:00
Damien Elmes
f699ebb370 add hw accel toggle to prefs 2018-08-30 13:39:04 +10:00
Damien Elmes
a8ce102916 disable question fade when using software rendering 2018-08-30 13:26:08 +10:00
Damien Elmes
36b2a889cc
Merge pull request #249 from lins05/front-preview-type-input-readonly
make the "type:" input readonly in the front preview
2018-08-29 10:35:21 +10:00
Damien Elmes
df280783b3 don't repeat shortcuts when key held down
https://anki.tenderapp.com/discussions/ankidesktop/29405-space-bar-repeat-problem
2018-08-29 10:07:33 +10:00
Shuai Lin
055c98f883 make the "type:" input readonly in the front preview 2018-08-28 09:01:17 +08:00
Damien Elmes
30f9d1e9c4 handle 'jpg' and leading space in inlined images 2018-08-20 13:02:30 +10:00
Damien Elmes
290fd34699 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
f2b5c8a862 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
91983ce21f fix winpaths for py3 2018-08-08 23:31:18 +10:00
Damien Elmes
8470e072b6 bundle winpaths 2018-08-08 23:30:41 +10:00
Damien Elmes
6cc9b5cde4 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
a389987530 fix images not pasting as links 2018-08-08 12:45:59 +10:00
Damien Elmes
23a3413c23 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
7074893af7 rewrite data uris from html pastes as well 2018-08-08 11:38:45 +10:00
Damien Elmes
0acf9b38a4 support rtl text in sort field in browser 2018-08-08 10:39:54 +10:00
Damien Elmes
2fec9248f8 fix exporting not working with regular scheduler 2018-08-07 14:27:48 +10:00
Damien Elmes
a1d1ea9b23 shortcut to mhchem 2018-08-06 13:17:57 +10:00
Damien Elmes
9fd085af37 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
c840364cd3 add webm 2018-07-30 12:06:38 +10:00
Damien Elmes
cbf3240203
Merge pull request #248 from glutanimate/addon-onconfigupdated
Extend add-on API with setConfigUpdatedAction
2018-07-28 18:50:29 +10:00
Damien Elmes
ae46bfa8d1 support dynamic sync url 2018-07-28 18:08:16 +10:00
Glutanimate
8ce7c00d54 Pass new config on to add-on 2018-07-28 09:25:38 +02:00
Glutanimate
ee3357a943 Only update config if actually modified 2018-07-28 09:09:17 +02:00
Glutanimate
8935b99188 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
c15df04622 remove beta warning 2018-07-28 16:44:23 +10:00
Damien Elmes
099bd045d0 default to software rendering on Windows/Linux 2018-07-28 16:43:19 +10:00
Damien Elmes
9c85e17628
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
5f9a8f7960
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
7ea02d5ea9 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
308c23fcba 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
da42ae7396 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
13b529e77a save file selector state 2018-07-23 13:57:17 +10:00
Damien Elmes
fbeade1f23 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
0fc0616ad1 select current card in card layout from edit current 2018-07-23 12:54:26 +10:00
Damien Elmes
b599b6b26c 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
a9f69b329f 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
475e2ab398 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
1a617e6d60 support customizing hard factor 2018-07-11 21:23:22 +10:00
Damien Elmes
c60e22fd60 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
6bd1eed9b6 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
3ff504461d don't attempt to rename profile folder if it's a file 2018-07-11 15:23:24 +10:00
Damien Elmes
9987c18a1c warn and close when media server requests fail 2018-06-29 17:17:13 +10:00
Damien Elmes
6669f1ba10 fix card info dialog size not being remembered 2018-06-25 11:56:27 +10:00
Damien Elmes
8421399020 fix error reporting when collection not open 2018-06-21 15:51:32 +10:00
Damien Elmes
9b5ee4ba44 change wording to differentiate from 'browse' in toolbar 2018-06-21 15:23:41 +10:00
Damien Elmes
dfaf9251c3 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
8eff5f3111 show sched ver in debug info 2018-06-08 12:33:05 +10:00
Damien Elmes
da246cb935 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
0052c8044c another many decks speedup 2018-05-31 16:24:34 +10:00
Damien Elmes
e2e68e0c54 catch name resolution errors in sync 2018-05-31 13:24:49 +10:00
Damien Elmes
e6fcfb7379 need to record active window prior to playing in mpv 2018-05-31 13:22:17 +10:00
Damien Elmes
9b7c701f25 new stats shortcut 2018-05-31 13:05:37 +10:00
Damien Elmes
e93dedc7c6 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
46a540e22f 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
4cee52a994
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
40612c5329 stdHtml: fix certain fonts not working on Linux 2018-05-27 21:16:55 +01:00
Damien Elmes
cfaedfef4a 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
0de4e65950 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
32b32bb881 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
de955e57c4 fix busy cursor in full sync screen 2018-05-01 14:34:03 +10:00
Damien Elmes
4b28151b61 add space to 'waiting for editing' screen 2018-05-01 13:35:28 +10:00
Damien Elmes
88de6b5075 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
5bf3349e05 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
47370af7c3 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
fc23241f0a add custom steps back to v1 sched options 2018-04-30 16:26:43 +10:00
Damien Elmes
560c21c59d add experimental scheduler to preferences 2018-04-30 16:26:19 +10:00
Damien Elmes
bdaedb7898 onReset() already sets note; don't need to do it twice 2018-04-30 15:15:43 +10:00
Damien Elmes
38178e5281 catch attempts to save field contents to wrong note 2018-04-30 15:15:20 +10:00
Damien Elmes
1b20dc3311 fix field getting overwritten when showing duplicates 2018-04-30 14:51:28 +10:00
Damien Elmes
35516048a7 sox was dropped years ago 2018-04-19 17:15:49 +10:00
Damien Elmes
eca6ecf90f 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
8577fe71cc
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
821b6a65aa Revert "work around issues writing to Windows clipboard"
This reverts commit 25c3f2cb24.

seemed to be causing crashes, and the underlying race condition wasn't solved
2018-04-06 16:46:09 +10:00
Liam Cooke
0c1136e379 Read config.md as UTF-8 2018-04-05 22:11:44 +10:00
Damien Elmes
c01ba49168 remove stale journal file when resetting prefs 2018-03-22 14:10:23 +10:00
Glutanimate
410d1226bc 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
56e1643bfa allow pycmd() to return a value
based on pull request #228
2018-03-08 17:48:14 +10:00
Damien Elmes
9db9d144b9 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
dc6ebca944 filter middle click pastes 2018-03-02 11:16:02 +10:00
Damien Elmes
25c3f2cb24 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
53f0793b9e 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
724513ca91 clarify 'delete unused' button, and don't show when n/a 2018-03-01 14:00:05 +10:00
Damien Elmes
c87b9be73a 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
9902e21cba fix error when unsetting browser appearance 2018-02-26 11:21:12 +11:00
Damien Elmes
9a23f0958d 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
8a15bc897b fix importing of v2 colpkg files 2018-02-05 15:30:57 +10:00
Damien Elmes
5cd063a8bd 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
b08e25dafb fix temp folder msg 2018-02-05 12:34:38 +10:00
Damien Elmes
275af7e9b5 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
a617be1779 prevent find duplicates scrolling to top on link click 2018-02-03 17:11:32 +10:00
Damien Elmes
1b7a7df4f0 raise profile window on macos
otherwise profile manager opens without focus
2018-02-01 12:14:04 +10:00
Damien Elmes
0cce540d83 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
8cceb24857 preserve newlines when pasting plain text 2018-01-26 19:18:24 +10:00
Damien Elmes
ed9110d530 fix unbury op w/ v1 scheduler 2018-01-26 19:05:08 +10:00
Damien Elmes
a6ccae95b6 remove missed format literals 2018-01-24 21:07:06 +10:00
Damien Elmes
d78176debe fix opening prefs screen in V1 sched 2018-01-22 11:24:45 +10:00
Damien Elmes
d3d61ce93f add option to show day learn cards before reviews 2018-01-20 16:07:57 +10:00
Damien Elmes
b17a0552d0 support customizing day cutoff w/ V2 scheduler 2018-01-20 15:32:52 +10:00
Damien Elmes
651b107b18 make preview delay customizable 2018-01-20 15:26:11 +10:00
Damien Elmes
fecd1a0354 log traceback in case of sync error 2018-01-20 11:24:01 +10:00
Damien Elmes
118326df1e remove format literals so we can support python 3.5 2018-01-16 16:07:30 +10:00
Damien Elmes
52313fd0bf 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
bff61b95e9 hide second filter for v1 sched 2018-01-14 19:20:01 +10:00
Damien Elmes
b9aa3a3083 fix bad margins in progress dialog 2018-01-14 18:05:43 +10:00
Damien Elmes
3a059d15b5 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
Damien Elmes
1e0b97f25b support a second filter in filtered decks 2018-01-14 13:08:38 +10:00
Damien Elmes
4e52f43365 distinguish between buried siblings and manually buried cards 2018-01-14 12:16:53 +10:00
Damien Elmes
4070f4eef8 schedtest changes, squashed from local branch 2018-01-14 12:16:53 +10:00
Damien Elmes
1c390218fc fixes to progress window
- make sure _shown reset to False on finish()
- ignore calls to .update() after finish() called, which can happen with
async signals in the sync code
2018-01-14 12:16:47 +10:00
dubiousjim
df1704f578
Factor out definition of context menu in reviewer.py
Handle definition of context menu in same way that shortcutKeys are handled. This makes it easier for add-ons to modify the context menu without needing to re-implement the whole showContextMenu method.
2018-01-07 18:19:49 +01:00
Damien Elmes
5ad8f67f12 move away from qprogressdialog
qprogressdialog has been the source of a number of problems in the past,
and the most recent issue is that it's showing the progress dialog
early, regardless of what the minimum duration is set to. since we're
already using our own logic for deciding when to show the dialog, it's
easier to move to a normal dialog box

also prevent timers from firing while a progress dialog is visible, or
if the refresh timer fires we end up with the same issue.

https://anki.tenderapp.com/discussions/beta-testing/949-anki-stops-when-field-is-added
2017-12-28 18:31:05 +10:00
Kerrick Staley
61b4a6b655 Bind mediaserver on 127.0.0.1 instead of localhost 2017-12-24 23:10:07 -08:00
Damien Elmes
65b826d787 refuse to run on qt 5.10
- on Linux and Windows, opening the browser and stats window back and
forth multiple times triggers a crash in the GL libraries, even with
software rendering enabled. Will try again when .1 is out
- on Mac, shortcut keys fire multiple times:
https://bugreports.qt.io/browse/QTBUG-65184
2017-12-18 14:50:14 +10:00
Damien Elmes
405cea6a60 add context menu to browser 2017-12-14 14:49:51 +10:00
Damien Elmes
7981db1466 more raw string literals 2017-12-13 14:34:54 +10:00
Damien Elmes
81d4b77ee1 more open() and regex strings 2017-12-11 17:25:51 +10:00
Damien Elmes
bc65baeff7 cgi.escape is deprecated 2017-12-11 16:20:00 +10:00
Damien Elmes
fccfdef73d add a flag to keep editor buttons enabled when no field selected 2017-12-08 21:06:16 +10:00
Damien Elmes
774c19e83e add the ability to disable cert verification 2017-12-07 17:15:20 +10:00
Damien Elmes
39c0a57b13 work around pops in recording start
https://anki.tenderapp.com/discussions/ankidesktop/26005-when-recording-sound-on-mbp

on my machine, the pops start around sample 2048 of a 44.1khz recording,
and only for the first recording after the audio hardware has gone to
sleep
2017-12-05 11:07:52 +10:00
Damien Elmes
341da7385a ignore editor shortcuts when no field focused 2017-12-04 12:53:28 +10:00
Damien Elmes
c451141f97 play question audio when preview set to 'show both sides' 2017-12-04 12:45:22 +10:00
Damien Elmes
fcccf12ba6 night mode 2017-12-04 12:20:56 +10:00
Damien Elmes
15e102e047 make sure to preserve focus when reloading on editFocusLost 2017-12-04 12:03:01 +10:00
Piotr Kubowicz
879ca0b72b Allow to better translate "in x minutes"
"There is 1 minute" and "in 1 minute" need to be translated
differently in Slavic languages.

Additionally remove unused afterTimeTable.
2017-11-30 20:03:51 +01:00
Damien Elmes
9e5b909070 note media check stage in sync dialog 2017-11-27 11:21:03 +10:00
Damien Elmes
41205bd5ca allow user to override scaling
which may help wth issues like
https://anki.tenderapp.com/discussions/beta-testing/918-text-size-in-ubuntu-1710
and
https://anki.tenderapp.com/discussions/ankidesktop/25708-anki-with-high-dpi-screen
2017-11-27 11:01:15 +10:00
Piotr Kubowicz
674d45a606 Allow to better translate add-ons dialog 2017-11-19 10:28:04 +01:00
Damien Elmes
8e7ef1d1be detect image extension, catch errors, add timeout 2017-11-17 17:30:01 +10:00
Damien Elmes
56444ab967 don't check extension when localizing image sources
fixes https://anki.tenderapp.com/discussions/beta-testing/916-pictures-not-showing-on-iphoneipad-ios11-when-not-connected-to-internet
2017-11-17 16:20:33 +10:00
Damien Elmes
baae899864 don't error if pasted image in temp folder
https://anki.tenderapp.com/discussions/ankidesktop/25805-anki-21-error-reporting
2017-11-13 11:05:46 +10:00
Damien Elmes
e0d05e49d6 fix broken image links when pasting between fields
https://anki.tenderapp.com/discussions/beta-testing/853-anki-210-beta-21#comment_43959510
2017-11-11 11:51:30 +10:00
Damien Elmes
880243c361 disable main window while collection unloaded
fixes error when pressing y then d in rapid succession
2017-11-01 12:38:43 +10:00
Damien Elmes
1d3e5787a2 separate basic and extended paste modes
- basic mode is the default, and includes only HTML elements that can be
added/edited easily with the default editor
- extended mode is enabled by holding down shift and includes a bunch of
other HTML elements
2017-10-25 20:20:28 +10:00
Damien Elmes
23e0034278 use requests library for media downloads
fixes SSL errors when pasting media from https website
2017-10-25 19:42:20 +10:00
Damien Elmes
554ff3d8d2 drop experimental prewrap mode
- pasting in prewrap mode had been broken for a while and nobody noticed
- needs changes to export code and cloze handling code to deal with the
newlines
- newline rewriting in filterNode() is likely fragile
- may revisit post 2.1
2017-10-25 19:18:00 +10:00
Damien Elmes
c13b19820b clear audio queue when showing answer
fixes question audio playing again on answer
2017-10-25 19:00:24 +10:00
Damien Elmes
944bca0f44 fix type answer race condition
user may hit enter before the question has been written, due to fade out
delay
2017-10-24 17:08:36 +10:00
Damien Elmes
1cc29278f2 Revert "avoid setting modality in progress dialog"
This reverts commit 059db539a7.

seems to work correctly in qt 5.9.2
2017-10-20 13:25:38 +10:00
Damien Elmes
eaf09b5093 Merge branch 'master' of github.com:dae/anki 2017-10-20 11:26:15 +10:00
krassowski
f90f3dbc53 Clean up reviewer code from unused code 2017-10-18 16:12:04 +00:00
Damien Elmes
3df98573b4 fix detection of media links in paste
'.aspx' was matching the 'spx' filter
2017-10-18 21:58:36 +10:00
Damien Elmes
a6391bbe8c ctrl+d to deselect all in tag picker 2017-10-16 15:31:29 +10:00
Damien Elmes
ed151de19b don't die on _anki.png et al
https://anki.tenderapp.com/discussions/beta-testing/747-anki-210-beta-16/page/2#comment_43769227
2017-10-16 15:02:16 +10:00
krassowski
e21de9ed7e Setup shortcuts after setting-up web. 2017-10-11 18:51:26 +00:00
Damien Elmes
d8d6430ec7 fall back to mplayer if mpv not found or too old
ubuntu 14.04 looks to be using an ancient mpv version
2017-10-05 17:24:55 +10:00
Damien Elmes
33c5b5f9e7 remove lodpi hack, don't assume physical DPI is always 72 2017-10-05 16:42:46 +10:00
Damien Elmes
3840f012be catch errors caused by old mpv versions 2017-10-05 15:46:20 +10:00
Damien Elmes
0b15a4a3b3 show field numbers for easier positioning 2017-10-05 14:52:05 +10:00
Damien Elmes
7b844d12cb increase default number of backups; don't put in trash 2017-10-05 14:39:47 +10:00
Damien Elmes
f7062ff0c6 user-friendly warning when mpv missing 2017-10-05 13:48:24 +10:00
Damien Elmes
e1a4c52175 pass opts to main window; force zoom factor to 1 on lodpi 2017-10-03 12:12:57 +10:00