Commit graph

3303 commits

Author SHA1 Message Date
Damien Elmes
04428dea85 Revert "Preserve HTML formatting inside clozes (#3038)"
This reverts commit d6857f4ccd.

Rolling this back for now, as it may cause regressions. We can give it
another try at the start of the next beta-testing period.
2024-03-25 16:47:54 +07:00
Abdo
d6857f4ccd Preserve HTML formatting inside clozes (#3038)
* Preserve HTML formatting inside clozes

* Place caret after/inside cloze

To match the old behavior

* Fix clozing in mathjax

* Formatting

* Avoid .extractContents() and handle partially covered tags

* Exclude range end if endOffset == 0

* Remove unnecessary branches

* Use nodeIsElement

* Let extractContents() handle partially selected nodes
2024-03-18 13:44:19 +00:00
Pedro Schreiber
3011e4e947 Display deck names when deleting (#3058)
* -  update remove decks function to return names of all deleted decks
- update protobuf message to display deck names
- update python files to receive message in the frontend.
- add message template to ftl

* update CONTRIBUTORS

* format

* refactor: move up deck names concatenation to tooltip api call
to fix type expectations

* restore core behavior and get deck name from view

* fix type specs

* remove new type and use str instead
restore incorrectly removed lines
2024-03-13 12:29:06 +07:00
Kai Knoblich
1165b97191 qt/aqt/__init__.py: Skip GL library workaround for FreeBSD (#3071)
* qt/aqt/__init__.py: Skip GL library workaround for FreeBSD

The workaround to load explicitly "libGL.so.1" isn't required for
FreeBSD and leads to segmentation faults if used in environments that
have nVidia drivers loaded.

See also FreeBSD bug 270778 for further details. [1]

[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270778

* Update CONTRIBUTORS
2024-03-12 15:50:21 +07:00
Damien Elmes
16380385cb Fix full sync dialog failing to appear
The changed timing in 201adcb1f4 caused
the question dialog to use the progress window as the parent, which
meant it got closed when the progress window closes moments afterwards.

https://forums.ankiweb.net/t/anki-24-04-beta-rc/41792/69
2024-03-12 14:39:46 +07:00
Foxy_null
53b1748c7b Added new translator name (#3060)
* Add my name to about.py

* Add my name to CONTRIBUTORS
2024-03-08 12:55:16 +00:00
Brayan Oliveira
7a8e8823da Use Card %d for Cloze and IO template names (#3049) 2024-03-06 08:03:31 +00:00
Abdo
191dd7dc64 Adjust HTML editor / add-on config editor font (#3054)
* Reduce font size of add-on config editor

* Change HTML editor font to Consolas

* Remove unused form
2024-03-05 07:29:05 +00:00
Abdo
83d6e60970 Use system certificate store (#3050) 2024-03-04 05:48:16 +00:00
Damien Elmes
8de30f7c35 When cards become due, show overview instead of study screen
https://forums.ankiweb.net/t/anki-automatically-switches-from-decks-view-to-card-when-it-is-left-open-overnight/41853/3
2024-03-03 11:58:15 +07:00
Damien Elmes
4cafd92c6d Dependency updates (#3040)
* Update JS deps

* Update semver-compat Rust deps

* Update some semver-incompat Rust deps

- hyper/axum held back because reqwests is not ready
- rusqlite held back due to burn-rs incompat version
- wiremock held back due to compile issue

* pylint wants changes to our _rsbridge.pyi

* Update Python deps

Also solves a security warning in orjson

Reformat with latest black
2024-02-28 16:28:04 +07:00
Kieran Black
201adcb1f4 fix processEvents() reentrancy bug in progress manager window handling (#3030)
* fix progress manager close window race condition

* use monotonic clock for time deltas in progress manager

* restructure progress manager finish logic
2024-02-27 12:25:53 +07:00
Abdo
6427f01339 Show total review count when optimizing FSRS parameters (#3027)
* Show total review count when optimizing FSRS parameters

* Do not expose items
2024-02-26 13:27:22 +07:00
Damien Elmes
20760f6dc9 Use smaller default height
https://forums.ankiweb.net/t/import-dialog-is-too-big/41549/10
2024-02-26 12:13:38 +07:00
Kieran Black
172c5fef1b fix progress manager window race condition (#3029)
The progress manager was indicating windows were in a clean state before actually ensuring they were in a clean state. The update to mark things as clean now occurs after cleanup has occurred.
2024-02-25 13:17:04 +07:00
Lucas Scharenbroch
b237390f55 Make a deep copy in reviewer/create-copy (#3013) 2024-02-18 13:09:53 +07:00
Lucas Scharenbroch
5c030dbc33 Add edge-case to type-in-answer filter in reviewer (#3010) 2024-02-14 20:38:10 +10:00
Lucas Scharenbroch
57c3726650 Add log-in button to preferences screen (#2994)
* Add log-in button to preferences screen

* Fix to python to conform to linter

* Add translations for log in/out

* Clean up whitespace/naming

* Move translations from python to qt forms

* Remove sync-not-enabled text on prefs screen

* Add my name to about.py

* Add "sync now?" dialog upon successful login

* Close preferences dialog before syncing

* Yet another Qt 6.6.1 focus fix (dae)

Like 07017a4a8e
2024-02-12 16:29:16 +10:00
Abdo
c43ab1ae42 Add View Files button to Check Media screen (#3006)
* Add View Files button

* Remove Close button
2024-02-12 16:17:47 +10:00
cav71
f07c056058 Add support for python logging (#2969)
* adds log module

* enable logging in the app

* adds a getLogger method to AddonManager

* change log level depending on ANKIDEV

* fix undefined module variable

* - fix addons log file path
- remove a breakpoint leftover

set the addons log files under pm.addonFolder()/NNNNNN/user_files/logs/NNNNNN.log

* fix path bug

* move log closing handling into AddonManager deleteAddon/backupUserFiles methods

* logging module level import
fix undefined variable in backupUserFiles

* pretty format log records

* move MediaServer log into logging

* update CONTRIBUTORS

* documentation cleanup

* capture warnings into log messages
fix waitress verbosity

* remove record_factory function

* add get_logger method alias to getLogger in AddonManager
switch to TimedRotatingFileHandler handler
fix minor typo

* set main log level to DEBUG if ANKIDEV is not 0 (or unset)
added two new methods to AddonManager addon_get_logger/addon_toggle_log_level

* add new find_logger_output to AddonManager

* move logs under pm.base

* change log output

* update addonmanager getlogger

* Format imports

* Refactor logging set-up slightly and tweak docstring

* Remove obsolete log closing statements

As logs are no longer stored in user_files, we do not need to close their handlers

* Refactor and try to simplify log module

* Remove demo code

* Refactor and update add-on manager logging API

* Simplify writing unit tests for add-ons that use logging

Loggers are likely to be also employed in non UI code, so it seems like a good idea to decouple them from requiring a running Anki instance to work (thus freeing add-on authors from the need to mock Anki APIs in their tests).

* Fix arguments and drop obsolete inline instructions

Lets add a section on logging to the add-on docs instead

* Drop unnecessary import

* Supply logging basicConfig force option by default

Until we change the module import order and thus ensure that `log` is always evaluated before third-party dependencies have a chance to initialize the root logger, `force` is non-optional.

* Fix formatting and type errors

* Restore mediasrv type ignore comments

* Add note on prefix API stability

* Consistently use addon_from_module in new code

* Use logFolder rather than profileFolder

* Adjust method name for PEP8

* Change loggerDict access path, satisfying pylint

* Drop unused import and use lazy % formatting

* lint fix

* refactor .log_folder -> .addon_logs
store anki.log under logdir

* Fix method name (dae)

* Disable file-based logging in the backend (dae)

I have never found this useful, and it logs nothing by default, so
creating/opening the file is a waste. Removing it also ensures that
addon_logs() is solely used for add-ons.

---------

Co-authored-by: Glutanimate <5459332+glutanimate@users.noreply.github.com>
2024-02-11 16:41:50 +10:00
Abdo
adbeb95291 Make sure editor note is saved before triggering buttons (#2995) 2024-02-11 16:07:49 +10:00
Abdo
ab7c12bf48 Fix code completion in Qt forms (#2993) 2024-02-08 15:24:12 +10:00
Abdo
6ca5a8db77 Change default font in code editors (#2985)
* Change default font in code editors

* Fall back to system font
2024-02-02 17:03:29 +10:00
Abdo
0f72287b7d Fix Image field not hidden until user selects an image (#2960) 2024-01-23 14:24:12 +10:00
Abdo
f4ab4ec7aa Fix flicker when hovering over deck list (#2958)
* Remove backdrop-filter from deck browser

* Remove transition
2024-01-23 14:20:32 +10:00
Viktor Ricci
d19a535309 Don't urllib.unquote when using requests (#2943) 2024-01-19 16:09:13 +10:00
Abdo
c183b758bd Default to 'Bury Card' action consistently (#2950) 2024-01-19 15:49:16 +10:00
mjuhanne
9a72411516 Fix crash in Reviewer (#2945) 2024-01-19 15:36:11 +10:00
Damien Elmes
c6af3f0020 Update Python
Closes #2923
2024-01-19 15:11:17 +10:00
Damien Elmes
d744e1ede7 Apply workaround for wasyncore error 2024-01-16 16:01:40 +10:00
Damien Elmes
e2e4cfaabd Shift the default network timeout back to 60 seconds
There have been a number of reports from people that were having trouble
with 30 seconds
2024-01-11 14:31:30 +10:00
Damien Elmes
eb45f8a76c Fix update suppression
The check got lost in the recent refactor.

https://forums.ankiweb.net/t/bug-report-anki-23-10-1-linux-flatpak-ignore-this-update-does-not-work/39408
2024-01-09 14:12:26 +10:00
BlueGreenMagick
69f201d43c Fix toolbar button shifting on hover (#2928) 2024-01-03 16:53:37 +10:00
Abdo
6cbb50659e Initialize Browser.aspect_ratio earlier to fix AttributeError (#2924) 2024-01-03 15:59:16 +10:00
Abdo
f807ac2a81 Use our translation of 'Discard' (#2920)
* Use our translation of 'Discard'

* Update qt/aqt/utils.py (dae)
2024-01-01 14:20:31 +10:00
Damien Elmes
c4115bdff2 Select cancel button by default
Consistent with 'keep editing' in add screen
2023-12-25 09:40:24 +10:00
Abdo
549f6f55a9 Improve confirmation message in Add screen (#2903) 2023-12-24 15:22:59 +10:00
msisovic
e852372c20 Fix macOS clipboard issues (#2900)
* Added double-check of clipboard change when pasting.

* Added comment explaining changes, updated CONTRIBUTORS and about.py
2023-12-22 14:18:19 +10:00
Abdo
bfac98d622 Offer to save changes when card layouts screen is closed (#2899) 2023-12-22 14:12:33 +10:00
Abdo
f4cc9c0308 Do not close web pages when Esc is pressed and a modal is open (#2894)
* Prefer key over keyCode

* Do not close TS pages on Esc when floating elements are open

* Close pop-up when Escape is pressed regardless of keepOnKeyup

* Close help modals when Escape is pressed

* Avoid duplicate handling of Esc in WithFloating

* Formatting

* Handle closing of preset management modals

* Reset text input modal to initial value
2023-12-21 13:59:52 +10:00
Akash Reddy
37d0165fcc Fix opening card info window closes it when already open (#2896) 2023-12-21 13:57:32 +10:00
Damien Elmes
e5fa4791a7 Use seconds instead of minutes for preview delay
Since this is not compatible with older clients, preview_delay has been
brought back so the configured value will still sync.
2023-12-21 11:02:29 +10:00
Damien Elmes
f7a653a76c Defer page cleanup to prevent API access warning 2023-12-16 09:45:58 +10:00
Damien Elmes
ec8415f8f7 Preserve _renderStats() signature to avoid add-on breakage 2023-12-14 10:57:50 +10:00
Abdo
87f29c335e More fixes for auto advance state (#2879)
* Disable auto advance on review cleanup

* Fix auto advance state resetting on card flip when bottom bar is focused

* Move focus handling to reviewer

* Simplify destruction of previous timers

* Fix auto advance firing early

* Fix handling of 'wait for audio'

* Remove unused import

* When focus is lost, disable auto advance (dae)

Otherwise it will resume when the user answers a card, which is
surprising.
2023-12-13 09:23:11 +10:00
Gustaf-C
507f2c8ccf Add hint for zero minutes in filtered deck (#2887) 2023-12-13 09:07:09 +10:00
Damien Elmes
60f2b23ae7 Show tooltip when auto-advance enabled/disabled 2023-12-11 14:43:12 +10:00
Damien Elmes
7e27f8a72a Invert seconds to show question/answer; tweak wording
The previous wording could be interpreted as 'time until showing question'
or 'time that question should be shown'. I'd intended the latter, and
I didn't notice that the original implementation was doing the former.
2023-12-11 13:40:44 +10:00
Damien Elmes
9107084f4a Catch another invalid-timestamp error
https://forums.ankiweb.net/t/anki-23-12-beta/37771/88
2023-12-11 12:39:20 +10:00
Damien Elmes
dbf9460e06 Revert "Prefer image pastes over HTML in the editor (#2856)"
This reverts commit 6e6dab3993.

Rolling this back for now, as it's caused a couple of regressions:

- In the old path, we returned (html, internal=False); in the new path,
it's returned as internal=True, which prevents formatting from being
stripped. This requires night mode to reproduce, as we don't strip text
colors in day mode.
- It can result in lost alt tags and filenames, as after right clicking on an
image in Chrome and choosing 'copy image', Chrome puts both the HTML and
the image on the clipboard

Related discussion: https://forums.ankiweb.net/t/anki-23-12-beta/37771/90
2023-12-11 12:27:41 +10:00