Quartz UI ↗
Browse docs
On this page
Private preview · 0.57.0-devView Markdown

QuartzUIProjectValidation: declaration reference

0.57.0-dev · beta source documentation. Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See validation and limits.

Pinned source (source: Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h) · integration recipe · practical guide

EQuartzUIValidationTarget

Advanced type. Validation strictness shared by details UI, commandlets, automation, and cook hooks.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectValidation recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

Avoid: Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L13)

FQuartzUIValidationIssue

Advanced type. One deterministic, actionable configuration failure.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectValidation recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

Avoid: Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L23)

FQuartzUIProjectValidationOptions

Advanced type. Project Validation Options: a declared type in settings validation, target strictness and actionable issue records; use its exact fields/operations below.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectValidation recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

Avoid: Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L52)

FQuartzUIProjectValidationService

Advanced type. Single pure policy surface shared by every project-settings entry point.

Prerequisites / integration: Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the QuartzUIProjectValidation recipe in the host module QuartzUIRuntime.

Minimal example / lifecycle: Run QuartzUIValidate; inspect Code/Field/Correction per issue. Pure validation over current settings/assets.

Avoid: Ignoring individual errors because files exist. Match the exact declaration below; dependent DTOs/enums are values used by this owner, not independent systems.

Exact source line (source: Source/QuartzUIRuntime/Public/QuartzUIProjectValidation.h#L59)

Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

#pragma once

#include "CoreMinimal.h"

#include "QuartzUIProjectValidation.generated.h"

class UQuartzUIAppAsset;
class UQuartzUIProjectSettings;
struct FQuartzUIAppDefinition;

/** Validation strictness shared by details UI, commandlets, automation, and cook hooks. */
UENUM(BlueprintType)
enum class EQuartzUIValidationTarget : uint8
{
	Editor,
	CommandLine,
	Development,
	Shipping
};

/** One deterministic, actionable configuration failure. */
USTRUCT(BlueprintType)
struct QUARTZUIRUNTIME_API FQuartzUIValidationIssue
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Code;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FName AppId;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Field;

	/** Bounded path, endpoint, or value that violated policy. */
	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString OffendingValue;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Policy;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Message;

	UPROPERTY(BlueprintReadOnly, Category = "QuartzUI|Validation")
	FString Correction;

	FString ToString() const;
};

struct QUARTZUIRUNTIME_API FQuartzUIProjectValidationOptions
{
	EQuartzUIValidationTarget Target = EQuartzUIValidationTarget::Editor;
	bool bCheckAppFiles = true;
};

/** Single pure policy surface shared by every project-settings entry point. */
class QUARTZUIRUNTIME_API FQuartzUIProjectValidationService final
{
public:
	static bool ValidateProjectSettings(
		const UQuartzUIProjectSettings& Settings,
		const FQuartzUIProjectValidationOptions& Options,
		TArray<FQuartzUIValidationIssue>& OutIssues);

	/** Applies project defaults only where the app has not declared an override. */
	static bool TryResolveAppDefinition(
		const UQuartzUIProjectSettings& Settings,
		const UQuartzUIAppAsset* App,
		FQuartzUIAppDefinition& OutDefinition,
		FString& OutError);

	static const TCHAR* GetTargetName(EQuartzUIValidationTarget Target);
};