Commit Graph

904 Commits

Author SHA1 Message Date
Damien Elmes
68d55239b4 rework fade in code
there were a number of issues with preloading:
- it could result in duplicate IDs in the document
- embedded styles failed to apply, because a preloaded item was
overriding them
- the type answer code needed rewriting to support it

so we're back to something closer to the old approach - a single node
that we fade out, update, and then fade in again. this means there's a
longer delay when revealing mathjax, but should minimize the breakage of
existing notes
2017-08-06 12:01:30 +10:00
Damien Elmes
797a7ea229 refactor editor focus handling
this fixes a bug where navigating to the next/previous card using
shortcut keys resulted in the first field being clobbered

- get rid of the stealFocus option in favour of explicitly passing
focusTo to setNote()
- setFields() is no longer responsible for setting focus
- add focusTo var to the browser so that the row changed hook can
restore focus when navigating to next/previous card
- fix the row changed hook being called twice
- the blur event now includes the field number instead of relying on the
 editor to have the correct currentField
- the current field is set to null on blur
- use deferred js and a callback rather than keeping track of when we
were loaded
- add shift+tab shortcut to go to previous field
2017-08-05 15:16:20 +10:00
Damien Elmes
96938e583a update browser toolbar to use delayed js 2017-08-05 13:47:48 +10:00
Damien Elmes
a56bddeb8d fix gifs failing to load
specifying max-height on img elements wasn't working when the parent
was an absolutely positioned element
2017-08-04 18:39:16 +10:00
Damien Elmes
d9b5d11312 fix conflicting add tags/jump to tags shortcuts 2017-08-04 17:39:40 +10:00
Damien Elmes
d656bff059 add contributor 2017-08-04 17:38:39 +10:00
Damien Elmes
37d3996be0 move height resizing to webview; remove onLoaded from toolbar/reviewer 2017-08-02 16:22:54 +10:00
Damien Elmes
538678a7a9 remove old comment 2017-08-02 16:18:09 +10:00
Damien Elmes
7d14a96889 automatically defer eval() calls until DOM loaded 2017-08-02 16:17:08 +10:00
Damien Elmes
321c4d7ff8 no longer need to hack around webengine stealing focus 2017-08-02 15:38:35 +10:00
Damien Elmes
9958dd57a4 remove superfluous lambda arg 2017-08-02 11:34:49 +10:00
Damien Elmes
61654ff70a skip useless focus preservation when navigating via preview screen 2017-08-01 17:46:08 +10:00
Damien Elmes
9ec9274011 fix fields being overwritten when dropping
remove the unneeded setFocus() call which was causing the blur event
to fire with the wrong data
2017-08-01 17:40:51 +10:00
Damien Elmes
66500f5262 move webview js into separate file 2017-08-01 17:04:55 +10:00
Damien Elmes
cd76281695 avoid errors caused by calling setHtml() before previous page loaded 2017-08-01 14:30:04 +10:00
Damien Elmes
0543a4533b add devMode flag to utils
also remove the extra toolbar call in loadProfile(), as we require a
restart to update the translations anyway
2017-08-01 14:28:13 +10:00
Damien Elmes
a5997e400b fix focus setting in resume screen 2017-08-01 13:57:15 +10:00
Damien Elmes
412d37fc13 another workaround for the KDE accelerator issue 2017-07-31 15:48:34 +10:00
Damien Elmes
b81a64272e allow browser override font to be unset 2017-07-29 16:09:00 +10:00
Damien Elmes
7405c1e7f1 don't force browser column font unless overriden 2017-07-29 16:00:02 +10:00
Damien Elmes
49e2d82aae fade next card in
- to minimize pop-in of images and mathjax, fade the previous card
out and fade the next card in
- render the answer at the same time as the question so it can be
shown immediately
- move reviewer css to separate file
- remove image preloading code that should no longer be necessary
2017-07-29 14:24:45 +10:00
Damien Elmes
8cd20f3352 turn latex svg into a note type option
needed until the other clients support svgs
2017-07-28 18:38:31 +10:00
Damien Elmes
608a5662a9 fix ampersands appearing in deck names
https://bugs.kde.org/show_bug.cgi?id=345023
2017-07-28 17:40:26 +10:00
Damien Elmes
7ad6966943 split js code out into separate files, mathjax improvements
- js code that was previously bundled in .py files is now in the
web folder
- add helpers to create links to bundled files, and update
stdHtml() to accept a list of javascript files to include
instead of text
- render MathJax in card layout and preview screens - these should be
updated in the future to update the document dynamically like the
reviewer does
- start media server earlier so it can be used to serve content for
the toolbar, etc
- work around a bug in WebEngine on Windows that could cause the
media server to hang
2017-07-28 16:35:45 +10:00
Damien Elmes
5ef1692c78 fix duplicate constructor call in editcurrent 2017-07-27 16:25:15 +10:00
Damien Elmes
fa3461e20b mathjax support 2017-07-27 14:18:10 +10:00
Damien Elmes
3d9d792dd4 bundle web folder 2017-07-27 12:28:44 +10:00
Damien Elmes
e7abd9f4ed fix crash when syncing media on windows
update() was being called when processing events, leading to
recursion until the stack was exhausted

https://anki.tenderapp.com/discussions/beta-testing/639-anki-210-beta4-crashing-during-syncing
2017-07-26 15:21:27 +10:00
Damien Elmes
94b1768ba8 use ctrl+delete for delete shortcut in both reviewer and browser 2017-07-26 10:52:04 +10:00
Damien Elmes
630cddc786 fix superscript shortcut
https://anki.tenderapp.com/discussions/beta-testing/627-anki-210-beta-1#comment_43048185
2017-07-22 10:54:45 +10:00
Damien Elmes
17bb179d06 experimental prewrap support
- add option to wrap html in implicit pre-wrap environment during
editing and review - defaults to off
- update paste filter to convert divs/Ps to newlines and non-breaking
spaces to normal ones
- catch enter key and write \n instead of creating a new div

also:

- remove extra caretToEnd() call that is no longer required
- add dd/dt/dl to allowed tags
2017-07-20 12:16:47 +10:00
Damien Elmes
f7b3457ff0 fix drawLinks reference 2017-07-17 14:54:12 +10:00
Damien Elmes
dffab1376f Merge branch 'master' of github.com:dae/anki 2017-07-17 13:16:06 +10:00
Damien Elmes
d99dcaafdc don't open separate browser window on iframe load
https://anki.tenderapp.com/discussions/beta-testing/627-anki-210-beta-1#comment_43008395
2017-07-17 12:40:38 +10:00
Dmitry Mikheev
5bfd93842c Let users extend their bottom buttons functions
Like this:
```
aqt.deckbrowser.DeckBrowser.drawLinks.extend([
            ["", "rebuildAll", _("Rebuild All")],
            ["", "emptyAll", _("Empty All")],
])
```
2017-07-15 18:39:01 +05:00
Damien Elmes
7ecd889d8f preserve newlines and indents when pasting text
https://anki.tenderapp.com/discussions/ankidesktop/24123-paragraphsnew-lines-not-preserved-when-copypasting-into-anki
2017-07-12 10:57:01 +10:00
Damien Elmes
14597bd888 if a non-media link pasted, paste the url text directly 2017-07-11 14:58:22 +10:00
Damien Elmes
7d71170a33 catch windows firewall issue 2017-07-09 13:26:50 +10:00
Damien Elmes
15ca733f14 fix base folder location on windows 2017-07-09 13:22:01 +10:00
Damien Elmes
2d25069936 run garbage collector after webengine window
we GC on autosave, but doing an explicit GC prevents excess memory
consumption when rapidly opening and closing windows using
webengine
2017-07-08 12:28:11 +10:00
Damien Elmes
c392418ba7 bump version 2017-07-05 10:54:27 +10:00
Damien Elmes
2b8987f654 fix browse add-ons command failing to load on linux 2017-06-27 12:04:42 +10:00
Damien Elmes
1fe86e1bde about tweaks
- fix sort order
- treat as a collection window so it's only opened once, and is
closed on quit
- use our standard font
2017-06-26 13:05:11 +10:00
Damien Elmes
90f7038109 fix exit code 120 when quitting in python 3.6 2017-06-26 13:03:05 +10:00
Damien Elmes
ea5f2bb0ef don't need to set bgcol when the window is transparent 2017-06-24 19:15:14 +10:00
Damien Elmes
7bd33242cf disable pinch to zoom gesture 2017-06-23 14:34:56 +10:00
Damien Elmes
e635157ee4 move stats and sync buttons to the center 2017-06-23 14:03:18 +10:00
Damien Elmes
a3bdd04d42 set bgcol in ankiwebview 2017-06-23 13:07:59 +10:00
Damien Elmes
7af591cfd7 add cancel button to recording window 2017-06-23 13:04:32 +10:00
Damien Elmes
1b41e68f05 remove gradients from toolbars in favour of system colour 2017-06-22 18:06:40 +10:00
Damien Elmes
a3fa2ff5ba remove duplicate <html> in editor, set bg on page creation 2017-06-22 18:01:47 +10:00
Damien Elmes
59f877737e start webview as transparent to reduce flicker 2017-06-22 18:01:01 +10:00
Damien Elmes
7d86984a12 turn off webview cache to reduce memory footprint 2017-06-22 17:06:33 +10:00
Damien Elmes
aa77df0805 give toolbars an approx height to reduce flashing at startup 2017-06-22 16:56:29 +10:00
Damien Elmes
aeaf9df32f ensure only one copy of stats shown, and close with collection 2017-06-22 16:51:54 +10:00
Damien Elmes
34dcf64d76 another attempt at fixing key handling
we can't use an event filter on the top level webview, because it
ignores the return value of the filter and leads to Anki thinking
keys have been pressed twice

and if we use an event filter on the focusProxy(), the
keypress/release events are sent even when a text field is currently
focused, leading to shortcuts being triggered when typing in the answer

to solve this, we move away from handling the key press events
directly, and instead install shortcuts for the events we want to
trigger. in addition to the global shortcuts, each state can install
its own shortcuts, which we remove when transitioning to a new state

also remove the unused canFocus argument to ankiwebview, and accept a parent
argument as required by the code in forms/
2017-06-22 16:39:31 +10:00
Damien Elmes
22f2fdf7d6 fix esc key in type answer field
without the change, the selection disappears but typed characters
still go to the input area
2017-06-22 15:10:47 +10:00
Damien Elmes
ac81fefc14 add note about being an alpha 2017-06-14 11:59:58 +10:00
Damien Elmes
e93f4abcab fix deck expanded state being reset
the setExpanded() call was triggering the callback, turning off
expanded state

https://anki.tenderapp.com/discussions/ankidesktop/23841-bug-when-editing-card-fields-decks-automatically-collapse
2017-06-14 11:43:47 +10:00
Damien Elmes
25cc3eceb5 make sure stats window starts focused on osx 2017-06-07 11:50:29 +10:00
Damien Elmes
017984c15c fix crash when opening profile from profile manager 2017-06-06 16:09:15 +10:00
Damien Elmes
76e508e25d various key handling fixes
- key presses while a webview is focused no longer make it to the
main window's keyPressEvent() routine, so AnkiWebView now uses its
event filter to pass the key events to the main window
- move the shared key handling out of keyPressEvent into
globalKeyHandler()
- make sure all key handling routines return true or false to
indicate if an event was handled or not
- remove focus when esc hit in the main window, to retain old
behaviour of allowing esc to clear focus from the type answer box
2017-06-06 15:56:21 +10:00
Damien Elmes
c24f122d6e require qt 5.9 2017-06-06 14:33:53 +10:00
Damien Elmes
ca08b742fa Revert "work around https://bugreports.qt.io/browse/QTBUG-54755"
This reverts commit 0bd79abe11.
2017-06-05 16:52:22 +10:00
Damien Elmes
476aedbd6b fix issues with 'lots of decks' msg
https://anki.tenderapp.com/discussions/beta-testing/460-anki-210-alpha-13#comment_42641183
2017-05-28 11:13:16 +10:00
Damien Elmes
e9104de197 add Guillem to about 2017-05-09 12:40:34 +10:00
Damien Elmes
22ca4c24de Merge pull request #186 from wetriner/master
'QDialogButtonBox' object has no attribute 'finished'
2017-05-04 11:59:49 +10:00
wetriner
80418c0fb7 'QDialogButtonBox' object has no attribute 'finished' 2017-05-02 23:22:01 -10:00
Dmitry Mikheev
50736ecf1d What about this one? 2017-05-03 13:55:24 +05:00
Damien Elmes
3991603bf4 Merge branch 'master' of github.com:dae/anki 2017-04-28 13:31:55 +10:00
Damien Elmes
8a2b1889aa suggest users start with add-ons disabled to diagnose problem 2017-04-28 13:31:40 +10:00
Dmitry Mikheev
b5fac33cc4 Otherwise showText never saves Geometry 2017-04-27 01:25:16 +05:00
Damien Elmes
5bf0040838 fix errors when closing the main window with browser still open
onClose() was calling closeAllWindows(), which sends a close signal
to dialogs without force=True, causing them to fire an asynchronous
save event that calls back after the collection has been closed

instead we just rely on the fact that unloadCollection() closes all
collection windows
2017-04-26 11:22:17 +10:00
Dmitry Mikheev
69fd37a5c4 2make top webview accessable
as well as main and bottom
2017-04-21 22:21:05 +05:00
Damien Elmes
43a662a250 hack around the browser not closing on sync
saveNow() must run asynchronously, but unloadCollection() was not
designed to. fix the issue by skipping the save, as it's unlikely
the user can move the cursor from the editor to the
main window and start a sync before the timer has automatically saved
the contents.
2017-04-12 18:40:37 +10:00
Damien Elmes
783767be0d Merge pull request #181 from Glutanimate/fix-previewer-navigation
Improve previewer navigation
2017-03-26 15:49:34 +10:00
Damien Elmes
bcdfeaa9c6 Merge pull request #180 from Glutanimate/preserve-tag-focus-in-browser
Preserve tag field focus when switching between cards in the browser
2017-03-26 15:49:03 +10:00
Glutanimate
a70e751238 Tweak previewer navigation behaviour 2017-03-24 17:09:16 +01:00
Glutanimate
0bcf60fea6 Tweak previewer navigation button display 2017-03-24 17:05:33 +01:00
Glutanimate
8f7f7db861 Preserve tag field focus when switching between cards 2017-03-24 16:23:48 +01:00
Damien Elmes
bb50976ce2 remove modeltest 2017-03-18 08:08:21 +09:00
Damien Elmes
17d68cc957 use a clearer name for fmtQA() 2017-03-14 15:48:40 +09:00
Henrik Enggaard Hansen
857733c8e9 Use the same formatting for the browser and card history 2017-03-13 15:52:27 +01:00
Henrik Enggaard Hansen
1dfc4466f1 Move card formatting to anki.utils 2017-03-13 15:52:02 +01:00
Damien Elmes
07f175cec8 add m4a to attachable media formats 2017-03-02 12:10:13 +10:00
Damien Elmes
b06133a2e4 Merge pull request #174 from henrikh/master
Add name to about screen
2017-02-27 14:32:35 +10:00
Damien Elmes
9009703f0e Merge branch 'master' of github.com:dae/anki 2017-02-27 14:29:54 +10:00
Henrik Enggaard Hansen
e7ecb9c6a9 Add name to about screen 2017-02-26 15:19:34 +01:00
Damien Elmes
c2f7b48a29 use QStandardPaths instead of the env var 2017-02-25 18:07:01 +10:00
Damien Elmes
97f280923c Merge pull request #172 from Glutanimate/master
Add another name to about screen
2017-02-25 13:48:21 +10:00
Damien Elmes
90167b139a Merge pull request #171 from luoliyan/master
Add name to about screen
2017-02-25 13:47:59 +10:00
Glutanimate
96a252bebb Add another name to about screen 2017-02-25 02:41:26 +01:00
luoliyan
bf8fddfabc Add name to about screen 2017-02-24 21:41:47 +09:30
Damien Elmes
bcaf5762ec fix errors when previewing 2017-02-23 16:21:00 +10:00
Damien Elmes
d1ebc8d805 add dmitry to about.py
Anyone else who's contributed anything to Anki - however small - is most
welcome to be listed in the about screen. Sending me a pull request that
adds your name or alias would be easiest, but if that is difficult
please let us know on the support site and we'll do it for you.
2017-02-23 14:41:07 +10:00
Damien Elmes
8085f8bc04 refuse to load on qt5.8.0 due to lack of IME support, etc 2017-02-22 18:36:46 +10:00
Damien Elmes
9c2c590de9 Merge pull request #170 from illia-v/super-no-arguments
Use `super()` without arguments
2017-02-22 18:34:08 +10:00
Damien Elmes
57c8e43327 change profile folder on windows and linux
onedrive seems to frequently screw up the permissions on the documents
folder. since we're stuck with more difficult to find folders on
mac/win, we may as well migrate linux as well, to a more
standards-compliant path.
2017-02-22 18:16:19 +10:00
Illia Volochii
ddc4c6a7e3 Use super() without arguments 2017-02-21 23:08:41 +02:00
Damien Elmes
0f04744f7e fix embedded fonts 2017-02-21 13:27:29 +10:00
Damien Elmes
745108bffd make sure we close all windows prior to unloading the collection 2017-02-19 15:13:58 +10:00
Damien Elmes
7ebd66a1c8 add modeltest to browser; fix an issue with rowCount()/columnCount() 2017-02-19 14:30:35 +10:00
Damien Elmes
6335dcb90e canonicalize to NFC form on edit/import 2017-02-19 12:49:52 +10:00
Glutanimate
d530d5fdef Remove temporary note when switching note model 2017-02-16 05:00:49 +01:00
Damien Elmes
082448744d Merge pull request #165 from luoliyan/fix-tooltip-import
Fix NameError caused by missing import
2017-02-16 12:57:19 +10:00
luoliyan
c7e5a618a5 Fix NameError caused by missing import 2017-02-15 23:08:37 +09:30
luoliyan
e892a30728 Fix error caused by converting delimiter to bytes 2017-02-15 18:45:04 +09:30
Damien Elmes
b58c082e29 tweaks to add-on downloading
- avoid opening and closing multiple progress dialogs
- report errors at the end; download what we can
- update dialog text
2017-02-15 15:55:31 +10:00
Damien Elmes
f483753b6c Merge pull request #163 from ankitest/patch-7
Install addons by spaced list; showInfo -> tooltip
2017-02-15 15:37:20 +10:00
Damien Elmes
41dc837712 Merge pull request #162 from luoliyan/master
Handle invalid delimiters more gracefully
2017-02-15 13:42:21 +10:00
Damien Elmes
6d39c8f0cb Merge branch 'master' of github.com:dae/anki 2017-02-15 13:41:40 +10:00
Damien Elmes
88d8be32d9 allow setting base via env var 2017-02-15 13:41:19 +10:00
Dmitry Mikheev
94894d3750 Install addons by spaced list; showInfo -> tooltip
Allow users to install multiple addons simultaneously listed by white spaces
without asking user to hit the key after installation.
2017-02-14 09:48:46 +05:00
luoliyan
7002a2a4f8 Handle invalid delimiters more gracefully 2017-02-13 21:42:19 +09:30
Simone Gaiarin
b52159edd0 Improve usability of increase new/review card limit dialog
*Show to the user the number of card left in the deck exceeding the ones under review
*Fix spin box max value accordingly
2017-02-11 20:11:31 +01:00
Simone Gaiarin
dfa183a461 Remove unuseful statement, it does nothing 2017-02-11 20:11:30 +01:00
Damien Elmes
e870468ad6 Merge pull request #159 from illia-v/stop-object-inheritance
Stop inheriting from `object`
2017-02-08 17:02:09 +10:00
Illia Volochii
13b7e01044 Stop inheriting from object
It is not needed in Python 3.
2017-02-07 00:21:33 +02:00
Henrik Enggaard Hansen
86c332e064 Typographic changes in history string 2017-02-05 09:13:14 +01:00
Henrik Enggaard Hansen
ce8ae436ea Insert ellipsis in history string 2017-02-05 08:45:08 +01:00
Damien Elmes
2fc47773b6 show error on invalid search 2017-02-02 21:00:58 +10:00
Damien Elmes
9ed315cbb7 fix progress window getting stuck on ubuntu 16.10
https://anki.tenderapp.com/discussions/beta-testing/231-anki-210-alpha-9#comment_41810358
2017-01-25 16:50:57 +10:00
Damien Elmes
6ae21e86af remove print statements that were causing unicode errors 2017-01-25 15:12:48 +10:00
Damien Elmes
b81998a374 stop logging gc 2017-01-20 15:12:48 +10:00
Damien Elmes
02975d43ad partial sync cancellation
each time we send or receive a chunk of data we check to see if the
user wants to cancel sync

in the case of a hung connection, it will still take a minute to time
out
2017-01-17 17:15:50 +10:00
Damien Elmes
fe8f6d518a embedded fonts should work on osx now; remove font-weight hack 2017-01-17 14:45:12 +10:00
Damien Elmes
9761e88ce5 ensure bottomWeb shown again when exiting resetRequired 2017-01-17 14:05:05 +10:00
Damien Elmes
c382a83395 stop forcing XP mode on windows
IIRC we were doing it to work around an issue in an older qt
2017-01-17 13:53:02 +10:00
Damien Elmes
a44dc7f174 prevent backspace key from going back a page 2017-01-17 13:39:38 +10:00
Damien Elmes
f68d5a4285 Merge pull request #154 from simgunz/editor-buttons
Editor buttons
2017-01-16 15:08:23 +10:00
Simone Gaiarin
b57ee28ae7 Add check on file existence 2017-01-14 21:16:50 +01:00
Damien Elmes
a76c6a1bcf use 'Library/Application Support' to match 2.0.x 2017-01-13 21:14:04 +10:00
Damien Elmes
864fbdf469 turn off buffering on crash log, and log gc start/finish 2017-01-13 20:56:24 +10:00
Damien Elmes
ed07a147f9 support for saving stats to a pdf 2017-01-13 17:36:26 +10:00
Damien Elmes
a05ebdbefb do GC on autosave
- ensures we're not called as part of the db progress callback
- minimises the chance of data loss if a gc causes a crash
2017-01-13 16:20:39 +10:00
Damien Elmes
7d1b894b45 add small bottom margin between "Fields"/"Cards" and field area 2017-01-10 19:02:29 +10:00
Damien Elmes
dd9acf0145 remove delete shortcut from More menu 2017-01-10 18:39:31 +10:00
Damien Elmes
6e933793f6 Merge branch 'master' of github.com:dae/anki 2017-01-10 18:35:31 +10:00
Damien Elmes
08747747bf prevent preview stealing focus in clayout
setHtml() steals focus due to webengine bug - fixes
https://anki.tenderapp.com/discussions/beta-testing/206-anki-210-alpha-7#comment_41700440
2017-01-10 18:32:48 +10:00
David Bailey
620db69544 Fix bug caused when deleting a card just added and clicking History 2017-01-09 10:55:30 +00:00
Damien Elmes
75c22c999b Merge branch 'master' of github.com:dae/anki 2017-01-09 14:35:15 +10:00
Damien Elmes
fb349a0a16 Merge pull request #150 from techdavid/fix-history
Show latest data under History in the Add dialog
2017-01-09 14:35:02 +10:00
David Bailey
4b83ba50f5 Show latest data under History in the Add dialog 2017-01-08 13:48:58 +00:00
Simone Gaiarin
a5c24aaca0 Add option to make button toggleable 2017-01-08 14:34:18 +01:00
Simone Gaiarin
67246f8c80 Add method to convert resource to data uri, add button image with this 2017-01-08 13:52:47 +01:00
Simone Gaiarin
81ed10faee Add id param name and fix typo on duperscript id 2017-01-08 13:52:47 +01:00
Damien Elmes
fe0954beba make it clear to use why anki's suggesting a download
avoid showing the upload button to prevent accidental data loss; user
can add a card if they want to upload
2017-01-08 22:21:58 +10:00
Damien Elmes
0dc08bbacc fix error appearing when undo shortcut pressed when nothing to undo 2017-01-08 20:47:26 +10:00
Damien Elmes
70e751f6ec disable the delete card shortcut
is being triggered when user has focus in text input due to webengine
 bug
2017-01-08 20:45:27 +10:00
Damien Elmes
e2573d6a1a fix error when writing to deleted.txt 2017-01-08 20:44:52 +10:00
Damien Elmes
9fbdca26a4 hack to preload images
this doesn't always work, presumably due to sibling burying
2017-01-08 20:37:20 +10:00
Damien Elmes
7ac1f6d3fe fix DEBUG=1
the errors.py code was overwriting the excepthook installed in qt.py
2017-01-08 20:30:34 +10:00
Damien Elmes
a172af11a1 use in-memory cache for webengine
no need to persist things to disk, as we have a local copy in most
cases anyway
2017-01-08 20:02:49 +10:00
Damien Elmes
1405cddc6e require qt5.7.1+ 2017-01-08 19:34:31 +10:00
Damien Elmes
259023f369 write backups in thread; remove strip html & compress options
we do the backup compression/writing in a separate thread so it
doesn't slow down profile switching/syncing, and remove the option
to write uncompressed backups

the strip html option is no longer used, so remove it from preferences
2017-01-08 19:29:57 +10:00
Damien Elmes
f6245cdfd1 use requests for http; add progress info back
- wrap request in AnkiRequestsClient so we can keep track of
upload/download bytes without having to monkey patch anything
- force a 64kB buffer size instead of the default 8kB
- show one decimal point in up/down so small requests still give
visual feedback
- update add-on downloading and update check to use requests
- remove the update throttling in aqt/sync.py, as it's not really
necessary anymore
2017-01-08 19:06:32 +10:00
Damien Elmes
147e09a6cb run the gc only in the main thread
if it fires in the mediasrv/sync thread it could cause a crash
2017-01-08 14:42:50 +10:00
Damien Elmes
9f28d5a638 set up fault handler 2017-01-08 13:39:57 +10:00
Simone Gaiarin
42ea7c53dd Add optional id in parameters 2017-01-06 16:43:05 +01:00
Simone Gaiarin
1c8c34b443 Add padding among buttons
For some reason after using the new _addButton method the padding among the buttons is not there any more. So I add it manually.
2017-01-06 16:43:05 +01:00
Simone Gaiarin
abc3224fe3 Remove old tooltips 2017-01-06 16:43:05 +01:00
Simone Gaiarin
4e4947bd92 Run filter on right buttons list 2017-01-06 16:43:05 +01:00
Simone Gaiarin
5051dcedb6 Add anki buttons using the new method
The html of each anki button is stored in a list that is joined in a string at the end. This make it easier to run the filter.

Drawback: Only buttons on the right side of the editor can be added using the filter.
2017-01-06 15:57:02 +01:00
Simone Gaiarin
37e345ffe8 Replace _addButton method with HTML based one
Support loading icon from anki qrc resource file or using the absolute path
2017-01-06 15:57:02 +01:00
Simone Gaiarin
5775c3f92e Add filter on topbuts to allow addons to add buttons 2017-01-05 12:42:19 +01:00
Simone Gaiarin
81b60c6dc4 Add css id to editor buttons div
This facilitate the processing with beutifulsoup or similar parser
2017-01-05 12:42:19 +01:00
Damien Elmes
5b71b720c2 Merge branch 'master' of github.com:dae/anki 2016-12-26 13:04:32 +10:00
Marcio Mazza
a1f29c2bd2 Remove editor dependency on ECMAScript 6
It seems that ES6 is not available on Qt 5.5.
2016-12-19 12:59:20 -02:00
Damien Elmes
7871949a6a fix window not resizing properly
#12 of https://anki.tenderapp.com/discussions/beta-testing/203-anki-210-alpha-5#comment_41542208
2016-12-19 10:18:47 +10:00
Damien Elmes
9c04ac6a8e fix opening of explorer folders on windows 2016-12-17 13:23:05 +10:00
Damien Elmes
b56ca60d2f remove mac setLibraryPaths() call 2016-12-16 21:20:08 +10:00
Damien Elmes
0bd79abe11 work around https://bugreports.qt.io/browse/QTBUG-54755 2016-12-15 21:12:51 +10:00
Damien Elmes
fb81f63fe3 work around broken debug console shortcut
this will likely break the shortcut on keyboards where : is not a
shifted ;. can revert when qt fixes the issue
2016-12-15 21:00:59 +10:00
Damien Elmes
9b6a21126d drag&drop support, and paste refactor
- insert resulting html directly into fields instead of relying on
fragile clipboard rewriting
- catch paste events in js and send them back to python so we cover
all possible ways of pasting
- use checksum in pasted image filenames instead of .cacheKey(),
which was not unique across runs
- try each _processX() in turn instead of having special cases inside
them
- rewrite the HTML filtering:
 - img rewriting and stripping of certain tags handled in bs4; other
 processing handled in js for easier sharing with other clients
 - use a whitelist of HTML tags and properties instead of focusing
 mainly on webkit cruft
 - don't run filter when focus lost, as it no longer seems to
 be necessary
 - the "strip html" option is currently ignored
2016-12-15 18:14:47 +10:00
Marcio Mazza
e7eaf5f378 Fix open addon folder
The open folder operation would break if the environment variable
LD_LIBRARY_PATH was not set
2016-11-28 18:02:30 -02:00
Damien Elmes
6131b149da Merge pull request #142 from goapunk/master
Fix the lambda function for changing the mapping of the fields
2016-10-20 17:16:09 +10:00
noobie
1a665cc185 Suppress the BeautifulSoup filename warning
Bs4 will raise a warning if the markup (field input) starts with '/'. Suppressing the warning is probably the easiest solution, as Bs4 will still process it (no disadvantages?).
2016-10-20 04:00:34 +02:00
noobie
90128cf2d5 Fix the lambda function for changing the mapping of the fields
The connect signal passes a bool to the given function by default, we need to ignore it.

use underscore for the sake of idiomology
2016-10-19 22:45:46 +02:00
Damien Elmes
54ea891564 another fix for add-on downloading 2016-08-02 11:51:44 +10:00
Damien Elmes
6377dd161f fix mesa driver being loaded on nvidia driver machines 2016-08-01 12:16:06 +10:00
Damien Elmes
f465dbd8ad use helvetica on mac 2016-07-26 10:34:16 +10:00
Damien Elmes
adda80fc33 refuse to run on qt5.7.0 2016-07-18 13:59:45 +10:00
Damien Elmes
6a109caa7c dialogs.open() needs to un-minimize as well 2016-07-18 13:02:21 +10:00
Damien Elmes
7c76a23cce we can revert to fix#1 for the modSchema issue now
as we save at start of change note type screen, instead of in
beginReset()
2016-07-14 21:49:40 +10:00
Damien Elmes
3be25cf900 fix nautilus failing to load in linux build 2016-07-14 21:06:33 +10:00
Damien Elmes
8e71554ac4 saveNow() now requires a callback
the current code was freezing when clicking on 'cards' in the
browser - it looks like like the javascript callback was never
being called despite calling processEvents(). so we need to
refactor the code to call saveNow() with a callback that does the
subsequent processing.

a lot of the browser code was implicitly calling saveNow() via
beginReset(), so we've had to change all that code to save
immediately before it begins any processing. found a probable bug in
the process - it doesn't look like onRowChange() was saving before
overwriting the note, so theoretically edits could be lost if the
user switched to another card very quickly after typing something.

onSearch() has been split into a GUI-activated onSearchActivated()
that takes care of saving, and a lower level search() that refreshes
the current search. it keeps track of the last search via an instance
variable so that it refreshes properly if a user accidentally adds
some characters to their search without activating the search, then
does something like reverse the sort order.
2016-07-14 20:23:44 +10:00
Damien Elmes
37bac3979c select all shortcut in fields 2016-07-14 11:56:18 +10:00
Damien Elmes
8fdda2bb9c tweak win button size 2016-07-12 16:40:13 +10:00
Damien Elmes
74de1face7 specify font size again on osx
we lose the native button appearance, but the text is too small to
read on OSX otherwise
2016-07-12 16:28:14 +10:00
Damien Elmes
85215018a5 another approach to fixing modSchema bug
start the progress dialog immediately so that askUser()
becomes part of the progress dialog's modality

the problem with the previous approach was that beginReset() attempts
to save the note again, leading to schema mismatches
2016-07-12 13:53:59 +10:00
Damien Elmes
166c6f4b3c remove debug statement 2016-07-12 13:43:21 +10:00
Damien Elmes
3fa597ed1a wait until saveNow() is done
fixes content missing if typed right before save, and add window
complaining that fields aren't empty when they appear so
2016-07-12 13:30:10 +10:00
Damien Elmes
44457e78d2 fix import of media 2016-07-11 14:56:58 +10:00
Damien Elmes
5b10d7c45b fix change note type getting stuck
thanks to stvad for the report
2016-07-11 11:34:12 +10:00
Damien Elmes
46dae2507b tweaks to UI font on win/lin 2016-07-08 16:17:06 +10:00
Damien Elmes
53f7457d4c swallow http server errors 2016-07-08 13:22:36 +10:00
Damien Elmes
00111e4182 re-enable add-on downloading 2016-07-08 13:17:33 +10:00
Damien Elmes
3afef3edb0 fix edit & delete bugs in add-ons section 2016-07-08 13:10:19 +10:00
Damien Elmes
807b7382cb add missing runHook to deck options 2016-07-08 12:59:10 +10:00
Damien Elmes
d0fcf6a2ff debug webengine dll problems 2016-07-08 12:34:30 +10:00
Damien Elmes
a8e2f992c8 image support 2016-07-07 23:39:48 +10:00
Damien Elmes
7d0eb6dd39 ignore copy/paste shortcuts except on mac 2016-07-07 23:34:19 +10:00
Damien Elmes
eddef71f75 prevent field from collapsing 2016-07-07 17:41:47 +10:00
Damien Elmes
9c569ac35c fix onHeight error by not reloading toolbar each note 2016-07-07 17:29:53 +10:00
Damien Elmes
258a10edc7 add titles to various webviews to make them easy to locate 2016-07-07 17:23:13 +10:00
Damien Elmes
d94c011c88 fix clayout preview, js errors
.exec_() and webengineview don't seem to play nicely together
2016-07-07 12:32:27 +10:00
Damien Elmes
39a2ddac51 fix 'loading' message by removing old type answer code 2016-07-07 11:08:32 +10:00
Damien Elmes
d831bbee5f fix exporting & one bug in stats image export 2016-07-05 19:52:26 +10:00
Damien Elmes
06169de6cd fix type answer 2016-07-05 13:14:45 +10:00
Damien Elmes
2d5affd3f2 Revert "hack around broken qwebchannel behaviour"
This reverts commit 447718c605.
2016-07-05 12:26:08 +10:00
Damien Elmes
44bf02d872 quieten beautifulsoup warning 2016-07-04 18:06:08 +10:00
Damien Elmes
d025fddfb4 Merge pull request #109 from subfusc/master
[Addons] Make it possible to distribute addons in a directory.
2016-07-04 16:35:49 +10:00
Damien Elmes
058fc373bd Merge branch 'master' of github.com:dae/anki 2016-07-04 16:33:03 +10:00
Damien Elmes
dfa479607c hook for showDeckOptions 2016-07-04 16:32:30 +10:00
Damien Elmes
d824f178cc Merge pull request #133 from hssm/browser-recenter
Fix automatic horizontal scrolling in browser
2016-07-04 16:29:45 +10:00
Damien Elmes
447718c605 hack around broken qwebchannel behaviour
https://bugreports.qt.io/browse/QTBUG-53411
2016-07-04 16:25:24 +10:00
Damien Elmes
704610ef8f remove button styling
qt5.7 loses system styling when zoom applied
2016-07-04 16:24:43 +10:00
Damien Elmes
94463991bc basic sync support
currently no progress shown on large uploads/downloads
2016-07-04 15:45:53 +10:00
Damien Elmes
a1caa93054 fix mem leaks in dialogs
- ensure we're cleaning them up after they're rejected
- run the garbage collector afterwards so the qwebengineprocess
  instances get cleaned up
2016-07-04 13:22:35 +10:00
Damien Elmes
eb3208e1e7 QKeySequence.Cancel is not in 5.5 2016-06-28 15:52:13 +10:00
Damien Elmes
a4cab1d8f2 remove setupFonts(), disable syncing 2016-06-23 12:06:16 +10:00
Damien Elmes
a001553f66 move the editor buttons into the webview
use new icons, which scale with dpi changes
2016-06-22 14:52:17 +10:00
Damien Elmes
8a7107ad8e tweak button appearance on osx 2016-06-22 14:43:59 +10:00
Damien Elmes
34b95514b5 import anki earlier so we can catch invalid python version 2016-06-22 14:42:41 +10:00
Houssam Salem
7a60482269 Fix automatic horizontal scrolling in browser 2016-06-07 16:32:19 +10:00
Damien Elmes
4e2bd3f739 resize toolbars to fit content 2016-06-07 14:27:33 +10:00
Damien Elmes
d7339d9a27 update editor, key handling in webview
keyPressEvent/etc no longer work with qwebengineview, so we need to
install an event filter to catch things like ctrl+c. drag & drop
doesn't seem to be supported until 5.7
2016-06-06 17:54:39 +10:00
Damien Elmes
9abc9fde9f use a channel for bridge
acceptNavRequest was not being called for rapid updates, so it's not
usable
2016-06-06 15:50:03 +10:00
Damien Elmes
de7e40537d port majority of code to qt5.5+
- a few issues to work out still, and editor changes not done yet
- for communication between webengine and python code, we set window
.location to 'http://anki/<something>' - the leading http is
necessary for qt to call the link handler, which was introduced
in qt5.5
- the designer files now use a promoted qobject to create instances
of AnkiWebView
- we use the css zoom property to alter webengine font size based on
system dpi
- prefs and addons folder stored in new location (at least for now)
2016-05-31 18:51:40 +10:00
Damien Elmes
15b349e3a8 start port to python 3
unit tests pass and main screens of GUI load
2016-05-12 14:45:35 +10:00
Damien Elmes
1dce3eaaff drop anki1 upgrade code 2016-05-12 14:20:59 +10:00
Damien Elmes
89a5777585 store profiles as blobs
the cPickle data may not be valid utf8, and even with
text_factory=str this seems to cause problems sometimes
2016-05-12 14:19:16 +10:00
Dmitry Mikheev
74e28058f7 sorry, a typo crept in 2016-05-05 03:26:13 +05:00
Dmitry Mikheev
692dcfd4e7 2 tooltips in Preview window and support Enter
Let's give the users tips over the arrow buttons
and provide passing Back Side / Next Card 
by pressing Enter key.
2016-05-05 03:21:04 +05:00
Damien Elmes
640d906230 fix bug in contributed patch 2016-05-01 13:32:17 +10:00
Dmitry Mikheev
75e574cb9f parameters to specify a desired title and size
Let's give authors of add-ons the ability to specify a desired title and minimum width and height of the message window.
2016-04-30 10:44:41 +05:00
Damien Elmes
80e45fee85 Revert "Deal with Internationalized Domain Name in URI"
This reverts commit a68af5f199.

Patch does not fix the issue on my machine, so reverting for now.
2016-04-27 20:43:11 +10:00
Roman Franchuk
a68af5f199 Deal with Internationalized Domain Name in URI
This fixes https://anki.tenderapp.com/discussions/ankidesktop/17132-anki-reports-an-error-when-pasting-an-image-from-non-ascii-url

The problem is that urllib2 can't work with IDN. However, it's perfectly valid
to have such URIs in HTML, and Firefox, when copying image, generates exactly
this kind of HTML.
2016-04-17 15:49:28 +03:00
Glutanimate
df4b74f7bb Preserve identical fields when switching note types 2016-04-10 13:11:25 +02:00
Damien Elmes
864a9135dc allow language changing in prefs
avoided adding this in the past as on a multi user system it allows
one profile user to annoys others by changing the interface language,
but it comes at the expense of easily changing the language for users
who choose the wrong one on first startup
2016-04-05 11:02:01 +10:00
Damien Elmes
9baccec002 update credits 2016-03-23 09:07:33 +10:00
Damien Elmes
781e592339 don't set current dir in file selector if it doesn't exist
some users were reporting hangs
2016-03-21 09:57:45 +10:00
Glutanimate
ec401a6c23 Add keyboard shortcut for 'Add Note' action in Browser (Ctrl+E) 2016-03-04 20:21:58 +01:00
Damien Elmes
3bbd0bca7e zip64 support, and import/export improvements
- we now allow exports over 2gb/64k files - AnkiMobile and AnkiDroid
will need to be updated to support this
- avoid compressing media files in export, as in the common case of
jpg/mp3 it's much faster with no increase in size
- exports and imports now show # of files processed
- mw.progress.update() now limits # of updates per sec
2016-02-26 10:01:46 +10:00
Damien Elmes
216a68f656 add missing comma in received patch 2016-02-22 10:42:27 +10:00
Damien Elmes
97311e33d9 suspend note -> suspend card 2016-02-22 09:31:00 +10:00
Damien Elmes
d15aafa940 Merge pull request #118 from Glutanimate/master
Add keyboard shortcut for 'Suspend Note' in Browser
2016-02-22 09:30:20 +10:00
Glutanimate
4c9d176272 Add keyboard shortcut for 'Suspend Note' in Browser 2016-02-21 12:10:02 +01:00
Damien Elmes
ed04b4ce3d BadZipFile -> BadZipfile 2016-02-18 18:49:44 +10:00
bogdanteleaga
1f1220cf7c Limit tags in custom study dialog to those in the selected deck 2015-11-21 14:38:21 +02:00