.NET 8.0 upgrade, UI theming, and improved Git integration - #38
Merged
Conversation
Added new methods for branch menu interactions and Git checkout functionality. Improved code organization.
Added new Git menu items and separators in MainDialog. Updated SetupBranchMenu to use the new gitToolStripMenuItem. Introduced event handlers for fetch and pull functionality. Updated resource files to reflect UI changes and maintain consistency.
Added a check in `GitTimer_Tick` to prevent execution when the main window is not focused, improving user experience. Updated `TaskScheduler` package from version `2.10.1` to `2.12.1` for potential bug fixes and enhancements.
Modified the `UpdateList` method in `MainDialog.Utilities.cs` to accept a boolean parameter `updateGitStatus`, enabling conditional fetching of Git status. Updated multiple calls to `UpdateList()` in `MainDialog.cs` to pass the appropriate boolean value, improving control over Git status updates during solution loading and item merging.
Introduced `FetchGitStatusAsync` to retrieve git status without blocking the UI. Replaced synchronous calls to `FetchGitStatus` with the new async method, enhancing application responsiveness. Refactored the original method into `FetchGitStatusBackground` for background processing and UI thread updates.
…/Hefaistos68/VSLauncherX into feature/add-git-branch-selection
Modified the `GitTimer_Tick` method to check if the application is the foreground window instead of checking for focus on specific controls.
Changed the target framework in VSLXshared.csproj from net6.0-windows to net8.0, upgrading the project to use .NET 8.0. No other project settings were modified.
Upgraded dependencies in VSLXshared.csproj: Newtonsoft.Json to 13.0.4, System.Drawing.Common to 8.0.21, and System.Management to 8.0.0. This ensures the project uses the latest compatible versions of these packages.
…olve the MessageBox, MessageBoxButtons, and MessageBoxIcon types.' in file 'VSLXshared\DataModel\VisualStudioInstance.cs'
Updated the target framework for BackgroundLaunch.csproj from net6.0-windows10.0.17763.0 to net8.0-windows10.0.17763.0, and for ObjectListView2022.csproj from net6.0-windows7.0 to net8.0, modernizing both projects to use .NET 8.0. No other changes were made.
…ows.Forms.MethodInvoker' to resolve CS0104 ambiguity between 'System.Windows.Forms.MethodInvoker' and 'System.Reflection.MethodInvoker'.' in file 'ObjectListView\VirtualObjectListView.cs'
…oker' for consistency and clarity, resolving ambiguity. Line 579: Disambiguated 'MethodInvoker' by specifying 'System.Windows.Forms.MethodInvoker' to resolve CS0104 ambiguity. Line 701: Disambiguated 'MethodInvoker' by specifying 'System.Windows.Forms.MethodInvoker' to resolve CS0104 ambiguity. Line 79: Removed 'using System.Reflection;' to resolve ambiguity between 'System.Windows.Forms.MethodInvoker' and 'System.Reflection.MethodInvoker'. The file only uses reflection types with fully qualified names, so this using is not necessary.' in file 'ObjectListView\VirtualObjectListView.cs'
Replaced BinaryFormatter with System.Text.Json for serializing and deserializing ObjectListView state, improving security and modernizing the codebase. Updated using directives accordingly. Also changed the project target framework from net8.0 to net8.0-windows in ObjectListView2022.csproj, and added a missing System.Reflection using directive in VirtualObjectListView.cs.
Changed the target framework in BackgroundLaunch.csproj from 'net8.0-windows10.0.17763.0' to 'net8.0', removing the explicit Windows version requirement. This may improve compatibility across different Windows versions.
Changed the target framework in BackgroundLaunch.csproj from net8.0 to net8.0-windows7.0 to specify compatibility with Windows 7. No other project settings were modified.
- Introduced a Git credentials provider using environment variable VSLX_GIT_PAT or Windows integrated authentication for LibGit2Sharp operations. - Enhanced branch checkout, fetch, and pull actions to support credential-aware remote operations, improving error handling for authentication issues. - Updated .NET target framework to net8.0 and upgraded several NuGet package dependencies, including LibGit2Sharp, Newtonsoft.Json, System.Management, TaskScheduler, and WindowsAPICodePack. - Removed GoogleDriveStorage.cs and its related Google.Apis.Drive.v3 package, eliminating experimental Google Drive settings sync. - Improved VisualStudioCombobox and dlgExecuteVisualStudio.cs to handle selected index logic more robustly. - Simplified VirtualObjectListView.cs by replacing reflection-based virtual list size setting with direct base property assignment.
The System.Management NuGet package version was changed from 9.0.10 to 8.0.0 in the VSLauncherX.csproj file. All other package references remain unchanged.
Changed the target framework in VSLauncherX.csproj from net8.0 to net8.0-windows7.0 to specify compatibility with Windows 7. No other project settings were modified.
Introduce a feature in `MainDialog.Utilities.cs` to load and cache Personal Access Tokens (PATs) from a configuration file, ensuring thread-safe access and prioritizing credential resolution. Add a sample configuration file `git-credentials.sample.json` to demonstrate the JSON structure for PATs. Update `dotnet-upgrade-report.md` to document the upgrade of projects to .NET 8.0, including framework changes, NuGet package updates, and a summary of related commits. Highlight project-specific upgrades, such as credential-aware Git operations and state serialization migration. Suggest next steps for further improvements.
Introduces a user-selectable dark mode, including a new ThemeHelper for applying light and dark palettes across the UI. Adds a DarkMode setting and checkbox in the settings dialog, with persistence. Updates main form, custom combobox, and dropdowns to use themed colors. Refactors UI code for consistent appearance in both light and dark modes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR Classification
Comprehensive modernization and feature enhancement, including .NET 8.0 upgrade, UI theming, and improved Git integration.
PR Summary
This pull request upgrades all projects to .NET 8.0, introduces a dark mode theme system, and significantly enhances Git integration with credential-aware operations. It also removes deprecated code and improves maintainability.