Commit graph

3694 commits

Author SHA1 Message Date
llama
179968d0dc
update tr store in +page.svelte 2025-10-18 17:35:17 +08:00
llama
6f06f81f06
./check 2025-10-18 10:52:00 +08:00
llama
cd78dd9c95
add favicon 2025-10-18 10:08:44 +08:00
llama
49e850c7da
refactor Start.svelte 2025-10-18 10:08:29 +08:00
llama
3bb77f964d
add components 2025-10-18 10:07:18 +08:00
llama
1f7fe021df
modify Warning to take icon 2025-10-18 10:03:41 +08:00
llama
167551839d
provide tr as store to avoid using {#key ...} 2025-10-18 10:02:28 +08:00
llama
b97b8462d9
remove getVersions call 2025-10-18 10:01:38 +08:00
llama
9434499e7a
add font fallback 2025-10-18 10:00:53 +08:00
llama
a379e20ddd
update tauri.conf.json 2025-10-18 10:00:11 +08:00
llama
b04520a352
refactor and implement rpc commands 2025-10-18 09:58:58 +08:00
llama
572cbf1043
remove unneeded rpc error message 2025-10-18 09:58:07 +08:00
llama
eaa514fb7a
refactor app 2025-10-18 09:56:47 +08:00
llama
6d6df1c91d
refactor state and uv code 2025-10-18 09:55:07 +08:00
llama
920fbdba7a
update capabilities 2025-10-18 09:52:19 +08:00
llama
778955beb0
add tauri-plugin-dialog crate
to make alert() work
2025-10-18 09:42:26 +08:00
llama
d4565742d8
qt/launcher-gui 2025-10-14 09:22:33 +08:00
nav1s
ab2fe98c54
feat: add tooltips for sidebar items in the browse cards window (#4385)
* feat: add tooltips for all of the sidabar items in the browse cards window

* fix: add name to CONTRIBUTORS
2025-10-13 09:27:40 +03:00
Arold0
d11b74fd38
Fix fatal error when double clicking Add button (#4377)
Prevent adding a note that has already been added by checking if
note.id is set before attempting to add it. This fixes a race
condition when the Add button is clicked multiple times quickly.

Fixes #4376
2025-10-05 15:58:16 +03:00
user1823
1ba4512011
Fix launcher strings (#4375)
* Fix launcher strings

* Add prompt to press enter for installation

* Prompt should appear after ensuring that the OS is supported
2025-10-02 21:50:44 +07:00
matbe766
b2bb85b1a2
Avoid QProgressBar overflow by normalizing to kilobytes (fixes #4341) (#4354)
* qt: normalize large progress totals to kilobytes to avoid QProgressBar overflow (#4341); docs: update CONTRIBUTORS

* update

* revert: keep ProgressManager generic; no autoscaling in progress.py

* revert: keep ProgressManager generic; do scaling only in full sync

* Simplify sync progress update by scaling to KB, fix CONTRIBUTORS
2025-10-02 16:59:09 +07:00
llama
a842ba1498
replace more hardcoded strings in the launcher with translations (#4368) 2025-09-30 00:13:09 +10:00
Elias
f5f60548db
Fix browser search newlines and update CONTRIBUTORS (#4336) 2025-09-27 17:21:57 +10:00
llama
e0b0d0d19b
feat: add i18n to launcher (#4361)
* add anki_i18n and locale_config crates to launcher

* add launcher.ftl

* add tr to state

* replace most hardcoded strings with translations

* add support for `launcher` rustcfg to trim translations

* use marker structs to denote type of translations

* move underscores into generated code

* Update cargo-license, which may fix the license order issue (dae)
2025-09-27 16:58:46 +10:00
llama
c56e6e55ec
feat: show saved custom colours as options in fill tool colour picker on mobile (#4348)
* add GetCustomColours rpc method

* save colours as rgb instead of argb

* show saved custom colours as possible options in colour picker

this is primarily for mobile clients, as qt currently ignores this

* save custom colours on colour picker change (for desktop)
2025-09-25 06:34:27 +03:00
Damien Elmes
04a0b10a15 Launcher now checks Windows version
https://forums.ankiweb.net/t/issue-with-installing-anki-launcher-into-custom-folder/66355
2025-09-23 19:50:40 +10:00
Damien Elmes
0d31c6de4a Hard-code more mime types
If I had a dollar for all the weird and wonderful ways Windows systems
can be broken, I'd be a very rich man.

https://forums.ankiweb.net/t/the-gear-icon-in-the-anki-interface-is-not-displaying-properly/66274
2025-09-23 18:00:55 +10:00
Damien Elmes
48f774c711 Add Kazakh to language list 2025-09-21 22:45:11 +10:00
llama
80cff16250
fix: persist colour picker's custom palette in profile (#4326)
* add SaveCustomColours rpc method

* restore custom colour palette on editor init

* save custom colour palette on colour picker open and input

there doesn't seem to be an event fired when the picker is
cancelled/closed, so it's still possible for work to be lost

* save colours on `change` instead of `input`

`input` is supposed to be fired on every adjustment to the picker
whereas `change` is only fired when the picker is accepted, but qt
seems to treat both as the latter, so this is currently a no-op

* Store colors in the collection

One minor tweak to the logic while I was there: an invalid color no
longer invalidates all the rest.

---------

Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2025-09-17 16:46:53 +10:00
jcznk
ec6f09958a
(UI polish) Improved margins in Card Browser's "Previewer" (#4337)
* Improved margins in Card Browser's "Preview" pane

* Alternate approach that looks good on Mac too

---------

Co-authored-by: Damien Elmes <gpg@ankiweb.net>
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2025-09-17 15:30:22 +10:00
snowtimeglass
c2957746f4
Make timebox message translatable with flexible variable order (#4338)
* Make timebox message translatable with flexible variable order

Currently, the timebox dialog message is built from two separate strings,
each containing one variable:
"{ $count } cards studied in" + "{ $count } minutes."

As a result, translators cannot freely reorder the variables in their translations.

This change introduces a single string with both variables, allowing translators
to adjust the order for more natural expressions in their languages.

* Preserve old string for now

* Ensure message doesn't display over two lines

---------

Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2025-09-17 15:13:59 +10:00
jcznk
4506ad0c97
Prevent clipping for QPushButton:default (#4323) 2025-09-14 20:44:16 +03:00
Damien Elmes
58deb14028 Ensure the newly-spawned terminal doesn't inherit the env var
It seems like the open call was leaking it into the newly spawned
process.

Follow-up fix to 2491eb0316
2025-09-04 16:18:11 +10:00
Damien Elmes
08431106da Exclude SSLKEYLOGFILE from Python
Closes #4308
2025-09-04 13:20:12 +10:00
Damien Elmes
b4b1c2013f Use the audio input device's preferred format
19f9afba64 broke recording for devices that
only support a single channel. Instead of hard-coding the values, we should
be using what the device prefers.

Apparently some devices may only support float formats, so conversion code
has been added to handle that case as well.

https://forums.ankiweb.net/t/cant-record-my-voice-after-upgrading-to-25-7-3/64453
2025-09-04 12:55:36 +10:00
Damien Elmes
b2ab0c0830 Add an experimental new system Qt mode to the launcher
Goal is to allow users to use their system Qt libraries that have
things like fcitx support available.

For #4313
2025-09-03 23:54:27 +10:00
Damien Elmes
6a985c9fb0 Add support for custom launcher venv locations
Closes #4305 when https://github.com/ankitects/anki-manual/pull/444 is
merged, and makes it easier to maintain multiple Anki versions at once.
2025-09-03 20:54:16 +10:00
Damien Elmes
db1d04f622 Centralize uv command setup
Closes #4306
2025-09-03 19:58:45 +10:00
Damien Elmes
2491eb0316 Don't reuse existing terminal process
May possibly help with #4304
2025-09-03 17:32:30 +10:00
Damien Elmes
06f9d41a96 Bypass install_name_tool invocation on macOS
Not sure when https://github.com/astral-sh/uv/issues/14893 will be
ready, and this seems to solve the problem for now.

Closes #4227
2025-09-03 17:32:30 +10:00
llama
8d5c385c76
use existing translation instead of adding new one (#4310) (#4316)
Co-authored-by: Abdo <abdo@abdnh.net>
2025-09-02 23:54:17 +03:00
llama
153b972dfd
Show the number of cards added when adding (#4310)
* modify `generate_cards_for_note` to return count

* modify `add_note` to return count

* show the number of cards added when adding
2025-09-02 18:06:49 +10:00
Damien Elmes
01b825f7c6 Fix theme/checkboxes when path contains an apostrophe
I couldn't find a list of other characters we might need to handle too.
I tested with ", but Qt failed to start then.

https://forums.ankiweb.net/t/qt-rendering-bug-in-check-boxes/66196
2025-09-02 15:55:37 +10:00
洩氏诹诹子
157da4c7a7
Fix mirror configuration not working during launcher download (#4280)
Use environment variable instead of configuration file
2025-09-02 14:58:34 +10:00
Lee Doughty
65ea013270
Update microphone icon to respect dark mode (#4297) 2025-09-01 17:56:48 +10:00
Abdo
79932aad41
Fix sync errors not being reported in some cases (#4281)
* Set parent of sync error dialog

* Explicitly mention parent arg in show_info() functions
2025-08-20 03:02:51 +10:00
Abdo
b92eabf4ae
Replace activeWindow() with activeModalWidget() (#4267) 2025-08-20 02:32:54 +10:00
Siyuan Yan
a3b3b0850d
Hi res microhpone icon for the recording dialog (#4262)
* Replace media-record.png with SVG icon

- Added SVG version of the microphone icon (from Font Awesome Free v7.0.0)
- Updated sound.py to use QIcon for proper SVG support
- Icon now displays at 60x60 pixels

* Remove obsolete media-record.png icon

The PNG icon has been replaced with an SVG version

* Update CONTRIBUTORS

* Replace icon with AnkiMobile's record icon

CC-BY requires attribution, and we don't currently have a way to describe
those attributions in a way the mobile clients can also include automatically.
For now, I've switched it to an icon I authored myself to avoid the issue.

---------

Co-authored-by: Damien Elmes <gpg@ankiweb.net>
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2025-08-20 02:31:31 +10:00
Damien Elmes
78a3b3ef7b Expose control over AppNap for AnkiConnect
https://forums.ankiweb.net/t/recent-anki-updates-bundle-id-change-disabling-app-nap-macos-anki-connect/65550
2025-08-19 19:46:11 +10:00
Damien Elmes
8c7cd80245 Support socks proxies when fetching versions 2025-08-08 20:30:51 +10:00