Commit graph

162 commits

Author SHA1 Message Date
Glutanimate
6e1bee96d1 Print-wrap current line rather than the entire field
Also: Avoid duplicate wraps, retain cursor position, and preserve
undo history.
2019-02-16 12:23:31 +01:00
Glutanimate
5df948a189 Add hotkeys to clear debug log and entry (Ctrl+L / Ctrl+Shift+L) 2019-02-16 12:21:52 +01:00
Glutanimate
b4e50ff66b Use system-default fixed font for debug entry and log 2019-02-16 10:26:49 +01:00
Damien Elmes
bff2c83fef avoid running timers after collection unload
fixes:
- onRefreshTimer() firing when collection is in the process of
unloading
- saveNow() in the no changes case, which fires a timer 10ms later
2019-02-06 12:03:14 +10:00
Damien Elmes
a7eb6bb357 update copyright and clarify licenses 2019-02-05 14:01:33 +10:00
Damien Elmes
aaaf8e12a5 skip the webview reload when undoing reviews 2019-01-29 09:35:46 +10:00
Damien Elmes
328c73d0bc 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
270e0b4271 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
zandimna
8fa4b53107 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
a2831ea843 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
5e4074af51 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
a36f504a87 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
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
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
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
a6007a54f3 add space to 'waiting for editing' screen 2018-05-01 13:35:28 +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
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
e131cb8e30 clarify 'delete unused' button, and don't show when n/a 2018-03-01 14:00:05 +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
e7607608c8 raise profile window on macos
otherwise profile manager opens without focus
2018-02-01 12:14:04 +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
83b220f931 more open() and regex strings 2017-12-11 17:25:51 +10:00
Damien Elmes
3447d4408d 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
0a95c39e65 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
66d701cfc4 catch errors caused by old mpv versions 2017-10-05 15:46:20 +10:00
Damien Elmes
445480b5df increase default number of backups; don't put in trash 2017-10-05 14:39:47 +10:00
Damien Elmes
e84c42e751 user-friendly warning when mpv missing 2017-10-05 13:48:24 +10:00
Damien Elmes
80f441fa6d pass opts to main window; force zoom factor to 1 on lodpi 2017-10-03 12:12:57 +10:00
Damien Elmes
7a3bcc62ae mpv support 2017-09-30 19:29:48 +10:00
Damien Elmes
9658fbb91e use separate .colpkg extension for collection exports
- allows translations of filename
- allows users to keep multiple collection exports in the same folder
- provides a clearer distinction between deck and collection packages
- the collection/backup .apkg special cases will continue to work in
future 2.1.x releases
2017-09-10 16:58:55 +10:00
Damien Elmes
67f9e9dd4e prefs and dialog tweaks
- manage prefs window so it only opens once, and gets closed properly
- provide silentlyClose shortcut to dialogmanager windows
2017-09-10 15:15:12 +10:00
Damien Elmes
faace5aa59 fix backups failing to complete
the behaviour of daemon=True was the opposite of what I expected
2017-09-10 13:17:56 +10:00
Damien Elmes
b80cb43645 fix backup rotation
add missing d and make pattern more specific
2017-09-10 12:56:27 +10:00
Damien Elmes
d0b969235d fix silentlyClose check 2017-09-08 18:42:26 +10:00
Damien Elmes
3faa82571c warn about subfolders 2017-08-28 22:01:13 +10:00
Damien Elmes
737a8d934e persistent add-on configuration
- add-ons can ship default config in a config.json file
- users can edit the config in the add-ons dialog, easily syntax-check
the json, and restore it to the defaults
- an optional config.md contains instructions to the user in markdown
format
- config will be preserved when add-on is updated, instead of being
overwritten as is the case when users are required to edit the source
files

A simple example: in config.json:

{"myvar": 5}

In your add-on's code:

from aqt import mw
config = mw.addonManager.getConfig(__name__)
print("var is", config['myvar'])

Add-ons that manage options in their own GUI can have that GUI
displayed when the config button is clicked:

mw.addonManager.setConfigAction(__name__, myOptionsFunc)
2017-08-28 20:51:43 +10:00
Damien Elmes
7b1747d650 don't throw an error when closing with tooltip or debug window open 2017-08-25 12:14:59 +10:00
Damien Elmes
194c02ed16 make sure we swallow the exception when closing
otherwise the main window sticks around with no collection
2017-08-16 21:06:50 +10:00
Damien Elmes
a66c5f555f revamp profile manager
- use a main window instead of a dialog, so the menu items of the main
window don't appear while the profile window is active on OS X
- the profile manager now has a button to automatic restoring from
backup, which will prevent old backups from being clobbered
- drop support for profile passwords
- do the right thing when user quits from the menu in profile manager
mode
2017-08-16 19:45:39 +10:00
Damien Elmes
489d16ed14 refactor profile and collection loading/unloading
- unloadCollection() now waits for all collection windows to
indicate they've closed, and calls a callback when it's done
- autosync runs when the collection is unloaded, and is no longer
responsible for reloading it
- make sure backup thread runs until completion
- ensure we return to profile manager when collection can't be loaded
- don't run the profile manager with exec_(), or opening+closing a
broken profile ends up nesting runloops
- warn if a window wasn't cleaned up as part of collection unloading
2017-08-16 17:39:37 +10:00
Damien Elmes
8ab5a3a176 use callback when closing windows
remove the old forceClose hack in favour of a callback when closing, so
all windows have a chance to save properly before the collection is
unloaded

also:

- fix a warning shown when opening about screen
- require a call to editor.cleanup() when closing a window, to make sure
 any pending js callbacks don't try to fire on a deleted object
- make sure we gc webview when closing editcurrent
- main.py still needs refactoring to make use of the change
2017-08-16 12:48:15 +10:00
Damien Elmes
8e2154dfbf change backup filename
- embed date in name to make it easier for people to locate correct
backup
- move old backups to the trash instead of deleting outright
- backups in the old format will not be rotated, and will need to be
deleted by the user - if we just deleted them at the start of  the
rotation it could lead to data loss for users moving back and forth
between 2.1 and 2.0
2017-08-14 18:53:39 +10:00
Damien Elmes
3be43c2309 use ip for loopback, as localhost is wrong on some machines 2017-08-11 20:37:04 +10:00
Damien Elmes
f3f90842dc move the inline css and some more js into separate files
- stdHtml() css= arg now takes a list of files like js=
- the files are loaded in the head of the document so that styling
that comes later in the document can easily override it

fixes:
https://anki.tenderapp.com/discussions/beta-testing/661-anki-210-beta-7/page/1#comment_43164447
https://anki.tenderapp.com/discussions/beta-testing/661-anki-210-beta-7#comment_43177130
2017-08-10 19:02:32 +10:00
Damien Elmes
c74cbf6108 fix media server port allocation
the old code was allowing the main thread to read .port before it had
been updated, and was binding to sockets that were already in use on
Windows. instead, we use a system-assigned free port and block the main
thread until it's been allocated
2017-08-08 14:56:34 +10:00
Damien Elmes
bee6931dc9 fix issues with media server not going away
- use a non-daemonized python thread
- shut the server down on exit, including from profile manager
- use a timeout on requests, or the connection that webengine holds open
will block the thread and prevent it from exiting when anki closes
2017-08-08 12:55:30 +10:00
Damien Elmes
cfb50fa03c add hook for overriding state shortcuts 2017-08-08 10:09:12 +10:00
Damien Elmes
21b770cb10 explictly exit
let's see if this helps with https://anki.tenderapp.com/discussions/beta-testing/631-anki-210-beta-4/page/2#comment_43137707
2017-08-06 14:10:51 +10:00