56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include "CSUnrealSharpSettings.h"
 | 
						|
 | 
						|
UCSUnrealSharpSettings::UCSUnrealSharpSettings()
 | 
						|
{
 | 
						|
	CategoryName = "Plugins";
 | 
						|
}
 | 
						|
 | 
						|
#if WITH_EDITOR
 | 
						|
void UCSUnrealSharpSettings::PreEditChange(FProperty* PropertyAboutToChange)
 | 
						|
{
 | 
						|
	Super::PreEditChange(PropertyAboutToChange);
 | 
						|
 | 
						|
	if (PropertyAboutToChange->GetFName() == GET_MEMBER_NAME_CHECKED(UCSUnrealSharpSettings, bEnableNamespaceSupport))
 | 
						|
	{
 | 
						|
		OldValueOfNamespaceSupport = bEnableNamespaceSupport;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
void UCSUnrealSharpSettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
 | 
						|
{
 | 
						|
	Super::PostEditChangeProperty(PropertyChangedEvent);
 | 
						|
 | 
						|
	if (PropertyChangedEvent.Property)
 | 
						|
	{
 | 
						|
		const FName PropertyName = PropertyChangedEvent.Property->GetFName();
 | 
						|
		if (PropertyName == GET_MEMBER_NAME_CHECKED(UCSUnrealSharpSettings, bEnableNamespaceSupport))
 | 
						|
		{
 | 
						|
			bRecentlyChangedNamespaceSupport = true;
 | 
						|
 | 
						|
			FText Message = FText::FromString(
 | 
						|
				TEXT("Namespace support settings have been updated. A restart is required for the changes to take effect.\n\n"
 | 
						|
					 "WARNING: This experimental feature will break existing Blueprints derived from C# classes due to changes in the outermost package when restarting the engine.\n\n"
 | 
						|
					 "Press 'Cancel' to revert these changes.")
 | 
						|
			);
 | 
						|
			
 | 
						|
			if (FMessageDialog::Open(EAppMsgType::OkCancel, Message) == EAppReturnType::Cancel)
 | 
						|
			{
 | 
						|
				bEnableNamespaceSupport = OldValueOfNamespaceSupport;
 | 
						|
				bRecentlyChangedNamespaceSupport = false;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
bool UCSUnrealSharpSettings::HasNamespaceSupport() const
 | 
						|
{
 | 
						|
	if (bRecentlyChangedNamespaceSupport)
 | 
						|
	{
 | 
						|
		// Keep returning the old value until we have restarted the editor
 | 
						|
		return OldValueOfNamespaceSupport;
 | 
						|
	}
 | 
						|
	
 | 
						|
	return bEnableNamespaceSupport;
 | 
						|
}
 |