Files
UnrealEngine/Engine/Source/Programs/UnrealVS/UnrealVS.Shared/UnrealVSOptions.cs
2025-05-18 13:04:45 +08:00

78 lines
2.8 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using Microsoft.VisualStudio.Shell;
using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
namespace UnrealVS
{
[Guid(GuidList.UnrealVSOptionsString)]
public class UnrealVsOptions : DialogPage
{
public event EventHandler OnOptionsChanged;
[Category("General")]
[DisplayName("Hide Non-Game Startup Projects")]
[Description("Shows only game projects in the startup project and batch-builder lists")]
public bool HideNonGameStartupProjects { get; set; }
[Category("Unreal.P4")]
[DisplayName("Enable Auto Checkout on Save")]
[Description("Uses P4 ini / environment settings to automatically checkout files on save, use 'RunUAT P4WriteConfig' to initialize those settings")]
public bool AllowUnrealVSCheckoutOnEdit { get; set; }
[Category("Unreal.P4")]
[DisplayName("Override VS Compare Options")]
[Description("Unreal VS will override built in diff settings to the ideal for code, does not alter P4")]
public bool AllowUnrealVSOverrideDiffSettings { get; set; }
[Category("Unreal.P4")]
[DisplayName("Use P4V Diff")]
[Description("Uses P4V to diff files")]
public bool UseP4VDiff { get; set; }
[Category("Unreal.P4")]
[DisplayName("Allow Perforce operations")]
[Description("Uses P4 ini / environment settings to call P4 functionality, use 'RunUAT P4WriteConfig' to initialize those settings")]
public bool AllowUnrealVSP4 { get; set; }
[Category("Unreal.P4")]
[DisplayName("Allow Async Checkout")]
[Description("Switches checkout (on edit or manual) to an async method, note if the p4 operation fails the local file will still be writable")]
public bool AllowAsyncP4Checkout { get; set; }
[Category("Unreal.P4")]
[DisplayName("Force P4 Output Window to Active")]
[Description("When set, normal P4 operations will force the output window to the surface")]
public bool ForceOutputWindow { get; set; }
[Category("Unreal.P4")]
[DisplayName("Allow Reconcile to Mark for Edit")]
[Description("Switches Reconcile from preview mode to marking files for edit in the default CL")]
public bool AllowReconcileToMarkForEdit { get; set; }
[Category("Unreal.P4")]
[DisplayName("Reconcile Extensions")]
[Description("Reconcile will attempt to resolve these extensions (including wildcards)")]
public string ReconcileExtensions { get; set; } = "c*;h*;ini;uproject;uplugin";
[Category("General")]
[DisplayName("Prefix UE5 Solution Name with Folder")]
[Description("Will include name of folder that UE5.sln is located in to Visual Studio window title.")]
public bool IncludeFolderInUE5SolutionName { get; set; } = true;
protected override void OnApply(PageApplyEventArgs e)
{
base.OnApply(e);
if (e.ApplyBehavior == ApplyKind.Apply && OnOptionsChanged != null)
{
OnOptionsChanged(this, EventArgs.Empty);
}
}
}
}