Commit Graph

21 Commits

Author SHA1 Message Date
Collecting
02e7a689bd feat(compatibility): Overhaul Compatibility Logic for GitHub Parsing
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-21 08:41:13 +01:00
Collecting
3136d2b782 fix(fs): race condition in save mirroring during config changes
Signed-off-by: Collecting <collecting@noreply.localhost>
2026-01-03 04:38:12 +00:00
Collecting
8fbd4661a2 feat(fs): Cross-Compatible Emulator Save Pathing w/ Custom Save Paths
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-31 03:49:14 +00:00
Collecting
de02349e67 feat(fs): Implement Global Custom Save Path
Added a "Global Custom Save Path" configuration option in the Filesystem settings.

Implemented a prioritized save-loading hierarchy: Global Path (if enabled) > Per-Game Custom Path > Default NAND.

Introduced a non-destructive migration tool that allows users to consolidate their existing saves into the new global location.

The migration tool specifically prioritizes per-game custom saves over NAND saves to ensure the most up-to-date data is preserved during consolidation.

The migration process is copy-only; no data is deleted from the source directories, ensuring absolute user data safety.

Maintained compatibility with the existing "Backup Saves to NAND" feature, ensuring saves continue to be mirrored internally if configured.

Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-29 01:27:19 +00:00
Collecting
e1a879489b feat: Add Accent Color to Gamelist Progress Bar
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 01:21:01 +00:00
Collecting
fea9455ee7 fix: Show Gamelist Repopulation when Entering Main Citron Menu
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-21 00:38:09 +00:00
Collecting
68328293bb fs(ui): Include Progress Bar
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-19 20:54:00 +00:00
Collecting
c4cf225d12 fix: NTFS Directory Scanning w/ Linux
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-19 18:45:28 +00:00
Collecting
8ea0d6487a feat(ui): Toggle Online Column
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-16 05:44:34 +00:00
Collecting
775b26775e feat: New Autoloader & Rebrand Current to "Update Manager"
Signed-off-by: Collecting <collecting@noreply.localhost>
2025-12-10 01:28:49 +00:00
Zephyron
32c4a9060d chore(ui): improve setup wizard and boot manager
- Change setup wizard to non-modal for better user interaction

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-11-28 16:12:23 +10:00
Zephyron
188e2a8489 Add configuration change debouncing to game list online status updates
- Add OnConfigurationChanged() slot to debounce rapid configuration changes
- Implement 500ms timer to batch configuration update requests
- Prevents excessive network requests when multiple config changes occur
  in quick succession
- Improves performance and reduces server load

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-11-21 17:32:19 +10:00
Zephyron
d78c598927 ui: Add modern toolbar to game list with view controls and sorting
Add a toolbar to the game list with:
- List/Grid view toggle buttons with icons and rounded corners
- Icon size slider for adjusting game icon sizes in real-time
- A-Z sort button that toggles between ascending/descending order
- Rounded corners styling throughout for a modern appearance

Key improvements:
- Fix games vanishing when adjusting slider during filtered search by
  updating icons in-place instead of recreating the model
- Preserve scroll position and selection when updating icon sizes
- Reuse filtered model instead of deleting/recreating to prevent view flicker
- Ensure consistent rounded icon rendering at exact target sizes
- Sync sort button state with Name column header sort order
- Preserve active filters when repopulating the game list

The toolbar uses themed icons with Qt standard icon fallbacks for
cross-platform compatibility.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-11-10 19:54:57 +10:00
collecting
0f22691084 Edit game_list.cpp 2025-10-04 05:43:49 +00:00
collecting
6c519e922d Edit game_list.cpp 2025-10-04 04:13:58 +00:00
Zephyron
4e377dde5a feat: Implement Qt6 migration with aqtinstall 3.3.0
- Migrate from Qt5 to Qt6.7.3 using aqtinstall v3.3.0
- Add comprehensive Qt6 API compatibility updates
- Implement responsive UI with High DPI scaling support
- Add MSVC runtime library configuration for consistency
- Update touch/mouse event handling for Qt6 APIs
- Fix locale handling (countryToString → territoryToString)
- Update string size methods (count() → size())
- Remove deprecated Qt5 high DPI attributes
- Add new CopyCitronQt6Deps.cmake for Qt6 dependency management
- Update CMake configuration for Qt6-only approach
- Add aqt_config.ini with mirror configuration for reliable downloads

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-26 19:42:30 +10:00
Zephyron
12c3e4b92c Revert "fix: resolve X11 macro conflicts with enum values and Qt constants"
This reverts commit c32ac3b3c1.
2025-09-14 20:15:29 +10:00
Zephyron
c32ac3b3c1 fix: resolve X11 macro conflicts with enum values and Qt constants
Rename Success enums and fix Qt event types to avoid X11 macro conflicts.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-09-14 20:09:09 +10:00
Zephyron
0d05f64e79 fix: Prevent controller crashes and memory leaks in game list grid view
- Fix memory leak in PopulateGridView() and FilterGridView() by properly
  deleting old QStandardItemModel instances before creating new ones
- Add safety checks in controller navigation to prevent crashes when
  accessing uninitialized controller data
- Improve controller input handling to only send events to visible and
  properly initialized views
- Add null pointer checks in SetViewMode() to prevent crashes when
  setting current index on empty models
- Add proper cleanup in GameList destructor to prevent memory leaks
  on application shutdown

The main issue was that switching between list and grid views created
new models without properly cleaning up old ones, leading to memory
leaks. Additionally, controller navigation would send keyboard events
to both views simultaneously, causing crashes when one view was not
properly initialized or visible.

Fixes crashes when using controller navigation in grid view mode.

Thanks to Beta Testers acarajé & Hayate Yoshida (吉田 疾風) for finding the bug.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-07-21 21:23:51 +10:00
Zephyron
8671e067ae feat: Add grid view with round icons for game list
- Implement toggle between list and grid view modes (Ctrl+G)
- Add round icon rendering with anti-aliased circular clipping
- Display game titles below icons in grid layout
- Create flat model for grid view showing only games
- Add View menu option and Ctrl+G hotkey for toggling
- Implement separate filtering logic for both view modes
- Update grid layout with proper spacing and text alignment
- Maintain existing tree view functionality and features
- Support double-click to launch and right-click context menus in both modes

The grid view provides a more visual game browsing experience while
preserving all existing functionality of the original list view.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-30 16:45:02 +10:00
Zephyron
bfb82e577c chore: update project branding to citron
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-05-06 16:06:48 +10:00