Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ava UI: Settings UI Jank Fixes #6673

Draft
wants to merge 30 commits into
base: master
Choose a base branch
from

Conversation

IsaacMarovitz
Copy link
Member

@IsaacMarovitz IsaacMarovitz commented Apr 18, 2024

Changes:

  • Allows ContentDialogHelper to work on windows other than the main window. Previously, any dialogues triggered by settings would awkwardly springboard the user back to the main window, leaving the settings window open in the background. Now, these dialogues will appear on the settings window itself.
  • Changed settings window title to just "Settings". When the configuration is dirtied, it will be changed to display there are unsaved changes.
  • Apply button is only available if current configuration is dirty.
  • A confirmation dialogue will be shown if the user attempts to cancel with unsaved changes.
  • No changes will be made to ConfigurationState until the user saves, as opposed to the previous system that 'reverted' by reloading the config from disk.
  • Handheld will be removed from the players list in docked mode.
  • The Esc and Enter shortcuts for the window close buttons are now disabled when we are waiting for a new key to bind. This should allow users to bind Enter. Esc is still reserved and, therefore, unbindable.
  • The monolithic SettingsViewModel has been split into several smaller view models. This is more in line with MVVM architecture and makes the code clearer and easier to read at a glance.
    • SettingsViewModel depends on these sub-VMs.
    • It subscribes to modification events on each sub-VM, triggering a re-check for a dirty config.
    • Each sub-VM is responsible for implementing its dirty check, which will all be logically OR'd together.
    • Each sub-VM is responsible for saving its final config to the main Instance.
    • SettingsViewModel handles saving the updated config to disk.
  • Changes to Input UI save prompts
    • To better align with the behaviour expected from GTK, Ava will no longer prompt you to save when switching between Players with unsaved changes. This means you can more seamlessly set up a multiplayer configuration without constantly having dialogues thrown at you.

Closes #6395.

@github-actions github-actions bot added the gui Related to Ryujinx.Ui label Apr 18, 2024
@IsaacMarovitz IsaacMarovitz force-pushed the input-ui-fixes branch 5 times, most recently from 7c3bb92 to 6d6c179 Compare April 23, 2024 01:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gui Related to Ryujinx.Ui
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bugs] Avalonia UI.
1 participant