Commits
- abf946c Update ukrainian translation (#3762)
- c80552f Ukrainian translation v2 (#3764)
- ab30d1d FileSystem: Make CopyFilePath() atomic
- acfd60e Deps: Update to 20260702
- 7be44a4 FullscreenUI: Fix incorrect effect in save state selector
- 4c39eac FullscreenUI: Fix incorrect layout in ProgressDialog
- 3441574 CDImage: Add some more helper functions
- c3af062 Qt: Move image verification logic to GameDatabase
- c05726a FullscreenUI: Add image verification
- 685b2f7 FullscreenUI: Add easing to ProgressDialog bar
- 4bc8ace Qt: Add CardRadioButton
- 866d230 Qt: Add interface and view types to setup wizard
- f31d99e Qt: Add animation to setup wizard
- 7316cce Qt: Fix path in update-and-edit-english.bat script
- bb3fede Qt: Update English plural translations
- 9c1500f Qt: Add pause menu hotkey to setup wizard
- 6d7163c Qt: Remove note about renderer from setup wizard
- d910657 Qt: Don't save window position when hidden
- 5dd559c FullscreenUI: Fix transition glitch when loading with no states
- fce1b1e Cheats: Use .org as insertion point in assembly codes
- 7bed00d Cheats: Support branch labels in assembly codes
- 36a85ff Cheats: Expand test coverage
- 7c93512 Cheats: Fix incorrect nullopt return
- e79eb42 Cheats: Fix incorrect bitmask for 32-bit option values
- 46efde0 Qt: Respect SH_Widget_Animation_Duration style hint
- bf1801c Qt: Add missing singular forms to English "translation"
- f9cf0db FullscreenUI: Fix styling of input string dialogs
- 4616c85 FullscreenUI: Add custom title/disc set title/serial editing
- a6d2417 FullscreenUI: Make game summary more compact
- a0a4159 FullscreenUI: Fix overlap in modal progress with empty status text
- 3968606 GameDatabase: Don't leave verify status text empty
- e2a6547 FullscreenUI: Switch to list page on settings open from game list
- 4f51c2d Qt: Warn when upscaling is enabled without PGXP
- 0c87b07 Cheats: Accept ".org 0x12345678" and "0x12345678:" to set pc
- c8e6dc5 Qt: Add settings-window class to setup wizard
- c0074b9 Qt: Use item view for game list directories
- 82518c5 Scripts: Extend translation validation/linters
- 0835924 Qt: Update ja and zh-CN translations
- d794641 Qt: Slightly increase settings category size
- 584999e Qt: Give proper names to widgets in setup wizard
- 79c08b6 Qt: Remove multiple sources of truth for supported formats
- 5d46613 Achievements: Centralize profile URL building
- fb99467 Qt: Match achievements login between settings/setup wizard
- 674af51 Scripts: Relax rich-text checks in the translation validator
- 90c96dc Qt: Fix a decent number of strings missing from lupdate
- c46a1dc CI: Only validate changed translation files on PR
- 3d544d4 Qt: Fix upscaling warning always showing in setup wizard
- 7d4b97d Qt: Fix missing translation of default update channel
- 12df0cd Qt: Fix duplicate message context in debugger error
- c2f8d32 MediaCapture: Mark missing translatable strings
- dd63541 AudioStream: Fix backend name not translating
- 2cf04c9 Qt: Remove duplicate translation strings
- 982a35e Qt: Cancel search when pressing Esc (#3767)
- 7dde479 Update Spain translation (#3768)
- bc057d9 Qt: Restore focus frame on QLineEdit with macOS native theme (#3771)
- fa19df3 Update qttranslations.inl (#3772)
- 2b1de62 Qt: Fix empty gamesettings ini being saved on close
- 7651d28 Qt: Use simpler text widgets in cover downloader and game summary (#3773)
- 6194f08 Achievements: Always identify game on startup
- 59247c8 Achievements: Move game hash calculation to system
- eeda898 Achievements: Separate login and progress requests
- 43294ac FullscreenUI: Avoid unnecessary mutex lock
- aa6b377 GameDatabase: Make track hashes private
- 6931f89 GameDatabase: Fix revision not showing after verification
- e7f2f10 Qt: Fix inverted delayed show condition in QtAsyncTaskWithProgressDialog