74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								// Copyright (c) 2022 Sentry. All Rights Reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "IDetailCustomization.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FSentrySymToolsDownloader;
							 | 
						||
| 
								 | 
							
								class IPropertyHandle;
							 | 
						||
| 
								 | 
							
								class FSlateHyperlinkRun;
							 | 
						||
| 
								 | 
							
								class SWidget;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum class ESentrySettingsStatus : uint8
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									DsnMissing = 0,
							 | 
						||
| 
								 | 
							
									Modified,
							 | 
						||
| 
								 | 
							
									Configured
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum class ESentryLinuxBinariesStatus : uint8
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									Missing = 0,
							 | 
						||
| 
								 | 
							
									Compiling,
							 | 
						||
| 
								 | 
							
									Configured
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FSentrySettingsCustomization : public IDetailCustomization
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
									FSentrySettingsCustomization();
							 | 
						||
| 
								 | 
							
									virtual ~FSentrySettingsCustomization();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static TSharedRef<IDetailCustomization> MakeInstance();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/** IDetailCustomization implementation */
							 | 
						||
| 
								 | 
							
									virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
									void DrawGeneralNotice(IDetailLayoutBuilder& DetailBuilder);
							 | 
						||
| 
								 | 
							
									void DrawCrashReporterNotice(IDetailLayoutBuilder& DetailBuilder);
							 | 
						||
| 
								 | 
							
									void DrawDebugSymbolsNotice(IDetailLayoutBuilder& DetailBuilder);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void SetPropertiesUpdateHandler(IDetailLayoutBuilder& DetailBuilder);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									TSharedRef<SWidget> MakeGeneralSettingsStatusRow(FName IconName, FText Message, FText ButtonMessage);
							 | 
						||
| 
								 | 
							
									TSharedRef<SWidget> MakeLinuxBinariesStatusRow(FName IconName, FText Message, FText ButtonMessage);
							 | 
						||
| 
								 | 
							
									TSharedRef<SWidget> MakeSentryCliStatusRow(FName IconName, FText Message, FText ButtonMessage);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void UpdateProjectName();
							 | 
						||
| 
								 | 
							
									void UpdateOrganizationName();
							 | 
						||
| 
								 | 
							
									void UpdateAuthToken();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void UpdatePropertiesFile(const FString& PropertyName, const FString& PropertyValue);
							 | 
						||
| 
								 | 
							
									void UpdateCrcConfig(const FString& Url);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// Gets path to CRC's DefaultEngine.ini in engine directory
							 | 
						||
| 
								 | 
							
									FString GetCrcConfigPath() const;
							 | 
						||
| 
								 | 
							
									// Gets path to plugin's Linux pre-compiled binaries directory
							 | 
						||
| 
								 | 
							
									FString GetLinuxBinariesDirPath() const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									int32 GetGeneralSettingsStatusAsInt() const;
							 | 
						||
| 
								 | 
							
									int32 GetLinuxBinariesStatusAsInt() const;
							 | 
						||
| 
								 | 
							
									int32 GetSentryCliStatusAsInt() const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									TSharedPtr<IPropertyHandle> ProjectNameHandle;
							 | 
						||
| 
								 | 
							
									TSharedPtr<IPropertyHandle> OrganizationNameHandle;
							 | 
						||
| 
								 | 
							
									TSharedPtr<IPropertyHandle> AuthTokenHandle;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									TSharedPtr<FSentrySymToolsDownloader> CliDownloader;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static const FString DefaultCrcEndpoint;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									bool IsCompilingLinuxBinaries;
							 | 
						||
| 
								 | 
							
								};
							 |