* Fix (UI) / Increase width of "Limit to" QSpinBox (Filtered Decks)
Increased the width from 60 px to 75 px, so that there is always enough space, even in the case of large numbers (e.g., 99999).
* Update filtered_deck.ui (replace maximumSize with sizePolicy)
The current main produces a list like "25.09.2, 25.08b5, 25.07.5, 25.06b7, 25.02.7"
Here, 25.08b5 and 25.06b7 should be filtered out for the same reason this code filters out the older patch releases.
* Fix sync login with custom server URL
Call update_network() before showing login dialog to ensure
the custom sync server URL is saved before attempting login.
Previously, the custom URL was only saved when closing the
preferences dialog, causing login to fail on first attempt.
Fixes#4395
* Add contributor info
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
* 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
* 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)