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;
							 | 
						||
| 
								 | 
							
								}
							 |