You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Removed redundant private include paths from build.cs files. Fixed include paths to be relative to the private or public folders. Hid or removed includes that reached into other private module folders. Updated PublicInclude paths when necessary. #jira #preflight 631e283bec5b0c765fc0ffdb [CL 21960084 by bryan sefcik in ue5-main branch]
105 lines
3.6 KiB
C++
105 lines
3.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Customizations/WidgetThumbnailCustomization.h"
|
|
|
|
#include "DesktopPlatformModule.h"
|
|
#include "DetailCategoryBuilder.h"
|
|
#include "DetailLayoutBuilder.h"
|
|
#include "DetailWidgetRow.h"
|
|
#include "ImageUtils.h"
|
|
#include "ImageWrapperHelper.h"
|
|
#include "PropertyCustomizationHelpers.h"
|
|
#include "Widgets/Input/SButton.h"
|
|
#include "Widgets/Layout/SBox.h"
|
|
#include "Widgets/Text/STextBlock.h"
|
|
#include "WidgetBlueprintEditorUtils.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "FWidgetThumbnailCustomization"
|
|
|
|
TSharedRef<IDetailCustomization> FWidgetThumbnailCustomization::MakeInstance()
|
|
{
|
|
return MakeShared<FWidgetThumbnailCustomization>();
|
|
}
|
|
|
|
void FWidgetThumbnailCustomization::CustomizeDetails(IDetailLayoutBuilder& DetailBuilder)
|
|
{
|
|
TArray<TWeakObjectPtr<UObject>> ObjectsBeingCustomized;
|
|
DetailBuilder.GetObjectsBeingCustomized(ObjectsBeingCustomized);
|
|
if (ObjectsBeingCustomized.Num() > 1)
|
|
{
|
|
return;
|
|
}
|
|
WidgetBlueprint = Cast<UWidgetBlueprint>(ObjectsBeingCustomized[0].Get());
|
|
if (!WidgetBlueprint.IsValid())
|
|
{
|
|
return;
|
|
}
|
|
|
|
IDetailCategoryBuilder& ThumbnailCategory = DetailBuilder.EditCategory("ThumbnailSettings", FText::GetEmpty(), ECategoryPriority::Default);
|
|
TSharedRef< IPropertyHandle > ThumbnailImage = DetailBuilder.GetProperty("ThumbnailImage");
|
|
TSharedRef< IPropertyHandle > ThumbnailSizeMode = DetailBuilder.GetProperty("ThumbnailSizeMode");
|
|
TSharedRef< IPropertyHandle > ThumbnailCustomSize = DetailBuilder.GetProperty("ThumbnailCustomSize");
|
|
ThumbnailCategory.AddProperty(ThumbnailSizeMode).IsEnabled(TAttribute<bool>(this, &FWidgetThumbnailCustomization::IsThumbnailAutomatic));
|
|
ThumbnailCategory.AddProperty(ThumbnailCustomSize).IsEnabled(TAttribute<bool>(this, &FWidgetThumbnailCustomization::IsThumbnailAutomaticAndCustom));
|
|
ThumbnailCategory.AddProperty(ThumbnailImage);
|
|
|
|
ThumbnailCategory.AddCustomRow(LOCTEXT("Browse_Thumbnail", "Custom Thumbnail"))
|
|
[
|
|
SNew(SHorizontalBox)
|
|
|
|
+ SHorizontalBox::Slot()
|
|
.AutoWidth()
|
|
[
|
|
SNew(SButton)
|
|
.OnClicked(this, &FWidgetThumbnailCustomization::LoadThumbnailFromFile)
|
|
.ToolTipText(LOCTEXT("Button_Import_Tooltip", "Browse computer for an image to set as thumbnail."))
|
|
.ContentPadding(2.f)
|
|
.Text(LOCTEXT("ImportImage", "Import Image"))
|
|
]
|
|
];
|
|
}
|
|
FReply FWidgetThumbnailCustomization::LoadThumbnailFromFile()
|
|
{
|
|
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
|
|
|
|
if (DesktopPlatform)
|
|
{
|
|
TArray<FString> OpenFilenames;
|
|
TSharedPtr<SWindow> ParentWindow = FGlobalTabmanager::Get()->GetRootWindow();
|
|
bool bOpened = DesktopPlatform->OpenFileDialog(
|
|
(ParentWindow.IsValid()) ? ParentWindow->GetNativeWindow()->GetOSWindowHandle() : nullptr,
|
|
LOCTEXT("LoadSnapshotDialogTitle", "Load an Image to set as thumbnail for this widget blueprint.").ToString(),
|
|
FPaths::GameAgnosticSavedDir(),
|
|
TEXT(""),
|
|
ImageWrapperHelper::GetImageFilesFilterString(false).GetData(),
|
|
EFileDialogFlags::None,
|
|
OpenFilenames
|
|
);
|
|
|
|
if (OpenFilenames.Num() > 0)
|
|
{
|
|
// load the new thumbnail
|
|
UTexture2D* ThumbnailTexture = FImageUtils::ImportFileAsTexture2D(*OpenFilenames[0]);
|
|
FWidgetBlueprintEditorUtils::SetTextureAsAssetThumbnail(WidgetBlueprint.Get(), ThumbnailTexture);
|
|
}
|
|
}
|
|
|
|
return FReply::Handled();
|
|
}
|
|
|
|
void FWidgetThumbnailCustomization::ClearThumbnail()
|
|
{
|
|
WidgetBlueprint->ThumbnailImage = nullptr;
|
|
}
|
|
|
|
bool FWidgetThumbnailCustomization::IsThumbnailAutomatic() const
|
|
{
|
|
return WidgetBlueprint->ThumbnailImage == nullptr;
|
|
}
|
|
|
|
bool FWidgetThumbnailCustomization::IsThumbnailAutomaticAndCustom() const
|
|
{
|
|
return WidgetBlueprint->ThumbnailSizeMode == EThumbnailPreviewSizeMode::Custom && IsThumbnailAutomatic();
|
|
}
|
|
#undef LOCTEXT_NAMESPACE
|