Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
FinalEngine.Editor.Common
- Contains services that connect views and view models.FinalEngine.Editor.Desktop
- Contains the views for the editor, this is the main WPF application.FinalEngine.Editor.ViewModels
- Contains view models and interaction interfaces to make it easier to manipulate views.MainView
and met the requirements of [FEATURE REQUEST] Create WPF Main Window #222 by styling and adding a File > ExitMenuItem
andKeyBinding
.MainViewModel
and corresponding interface to handle updating theMainView
title andExitCommand
.Dependencies
FinalEngine.Editor.Desktop
FinalEngine.Editor.ViewModels
Type of change
How Has This Been Tested?
Unit tests have been provided for all testable changes. All unit tests are passing locally on my machine. I also ran the application and was able to manually test the
ExitCommand
to ensure the application closed both by clicking the button and using the Alt+F4KeyBinding
.Test Configuration:
Proposed Design
Interactions
The PR introduces a new concept to the editor called interactions. Interactions are simple interfaces that provide functionality to the view model from the view. For example, an
ICloseable
interface can be passed from the view to the view model via a command parameter in order to close the corresponding view once an operation is complete:Screenshots
Checklist: