frontend: Implement settings profile sharing for per-game configuration #98

Merged
Collecting merged 4 commits from feat/share-settings into main 2026-01-15 01:17:13 -05:00
Collaborator

This commit introduces a new system to export and import game-specific performance profiles via JSON files, streamlining the process of sharing "best settings" within the community.

Key changes include:

  1. Added "Share Settings" and "Use Settings" buttons to the Per-Game Configuration (Properties) dialog.

  2. Implementation of an export routine that captures current UI states for CPU, Graphics, and Advanced Graphics settings, alongside metadata about the creator's hardware.

  3. Implementation of an import routine that performs a hardware mismatch check. If a user tries to import a profile created on a different GPU vendor (e.g., NVIDIA settings being applied to an AMD system), a warning is displayed to prevent potential stability issues or crashes.

  4. Automatic unlinking of global settings: When a profile is imported, the "Use Global" status for relevant settings is automatically toggled off to ensure the new values are applied locally to the specific game.

  5. Updated SharedWidget to expose the underlying Setting object, allowing for more robust data extraction during the sharing process.

  6. Integrated nlohmann/json for portable, human-readable configuration files.

This feature significantly improves user experience by removing the need to manually toggle dozens of checkboxes and dropdowns when following community optimization guides.

This commit introduces a new system to export and import game-specific performance profiles via JSON files, streamlining the process of sharing "best settings" within the community. Key changes include: 1. Added "Share Settings" and "Use Settings" buttons to the Per-Game Configuration (Properties) dialog. 2. Implementation of an export routine that captures current UI states for CPU, Graphics, and Advanced Graphics settings, alongside metadata about the creator's hardware. 3. Implementation of an import routine that performs a hardware mismatch check. If a user tries to import a profile created on a different GPU vendor (e.g., NVIDIA settings being applied to an AMD system), a warning is displayed to prevent potential stability issues or crashes. 4. Automatic unlinking of global settings: When a profile is imported, the "Use Global" status for relevant settings is automatically toggled off to ensure the new values are applied locally to the specific game. 5. Updated SharedWidget to expose the underlying Setting object, allowing for more robust data extraction during the sharing process. 6. Integrated nlohmann/json for portable, human-readable configuration files. This feature significantly improves user experience by removing the need to manually toggle dozens of checkboxes and dropdowns when following community optimization guides.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Kintoki/Emulator!98
No description provided.