* add `Shift+Ctrl+Tab` (`⌘+⌥+←` on macOS) to go to previous page
* use `ESC` to cancel commit searching
* enable `AutoFocusBehaviour` on `CommitChanges` and `RevisionFiles` tab
* remove the `Leave` option (it may lead to an undefined behaviour), so user can only choose `Stash & reapply` or `Discard`.
* re-design the UI
* remove unused resources
This commit adds the local changes handling behavior for branch checkout.
One of three can be selected: stash and reapply after checkout, discard changes or leave them as is (previous behaviour)
code_review:
* use JsonSerializerContext to avoid AOT warnnings
* since we call TryAdd by interating the installed tools, so detecting by environment variable becomes meaningless (it can not detect tools not installed by Toolbox). Just add it into founded directly
* remove unnecessary type defines
* determine the Icon used by tool while adding it to the founded list.
# Conflicts:
# src/Native/Linux.cs
# src/Native/MacOS.cs
# src/Native/Windows.cs
* remove dotnet-tool.json because the project does not rely on any dotnet tools.
* remove Directory.Build.props because the solution has only one project.
* move src/SourceGit to src. It's not needed to put all sources into a subfolder of src since there's only one project.
* fix Locales.Designer.cs NOT updated when compile after Locale.*.resx changed in Visual Studio 2022.
* use PublicResXFileCodeGenerator instead of ResXFileCodeGenerator to make sure access modifier is 'public' in Visual Studio 2022.
* use ResourceManager.GetResourceSet instead of collecting properties by reflection.
* remove translation warnings in Visual Studio's ResXManager extension.