Files
UnrealEngineUWP/Engine/Source/Editor/TextureEditor/Private/TextureEditorModule.cpp
Richard TalbotWatkin 9b8b20bbf5 Added a details customization for UTexture. The "Maximum Texture Size" property is specialized so that it yields an error dialog when attempting to change it for non power of two textures which do not have a padded Power of Two Mode.
#jira UE-18783 - Power of Two and Max texture size is breaking large .HDR import
#jira UE-11904 - Crash on setting Max. Texture Size with Non Power of 2 Texture

[CL 2633975 by Richard TalbotWatkin in Main branch]
2015-07-27 11:47:42 -04:00

110 lines
3.3 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "TextureEditorPrivatePCH.h"
#include "ISettingsModule.h"
#include "ModuleManager.h"
#include "Customizations/TextureDetailsCustomization.h"
#include "PropertyEditorModule.h"
#include "DetailLayoutBuilder.h"
#include "DetailCategoryBuilder.h"
#include "DetailWidgetRow.h"
#include "IDetailPropertyRow.h"
#include "PropertyHandle.h"
#include "SNumericEntryBox.h"
#define LOCTEXT_NAMESPACE "FTextureEditorModule"
const FName TextureEditorAppIdentifier = FName(TEXT("TextureEditorApp"));
/*-----------------------------------------------------------------------------
FTextureEditorModule
-----------------------------------------------------------------------------*/
class FTextureEditorModule
: public ITextureEditorModule
{
public:
// ITextureEditorModule interface
virtual TSharedRef<ITextureEditorToolkit> CreateTextureEditor( const EToolkitMode::Type Mode, const TSharedPtr< IToolkitHost >& InitToolkitHost, UTexture* Texture ) override
{
TSharedRef<FTextureEditorToolkit> NewTextureEditor(new FTextureEditorToolkit());
NewTextureEditor->InitTextureEditor(Mode, InitToolkitHost, Texture);
return NewTextureEditor;
}
virtual TSharedPtr<FExtensibilityManager> GetMenuExtensibilityManager( ) override
{
return MenuExtensibilityManager;
}
virtual TSharedPtr<FExtensibilityManager> GetToolBarExtensibilityManager( ) override
{
return ToolBarExtensibilityManager;
}
public:
// IModuleInterface interface
virtual void StartupModule( ) override
{
// register menu extensions
MenuExtensibilityManager = MakeShareable(new FExtensibilityManager);
ToolBarExtensibilityManager = MakeShareable(new FExtensibilityManager);
// register settings
ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings");
if (SettingsModule != nullptr)
{
SettingsModule->RegisterSettings("Editor", "ContentEditors", "TextureEditor",
LOCTEXT("TextureEditorSettingsName", "Texture Editor"),
LOCTEXT("TextureEditorSettingsDescription", "Configure the look and feel of the Texture Editor."),
GetMutableDefault<UTextureEditorSettings>()
);
}
FPropertyEditorModule& PropertyModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.RegisterCustomClassLayout("Texture", FOnGetDetailCustomizationInstance::CreateStatic(&FTextureDetails::MakeInstance));
}
virtual void ShutdownModule( ) override
{
// unregister settings
ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings");
if (SettingsModule != nullptr)
{
SettingsModule->UnregisterSettings("Editor", "ContentEditors", "TextureEditor");
}
// unregister menu extensions
MenuExtensibilityManager.Reset();
ToolBarExtensibilityManager.Reset();
FPropertyEditorModule& PropertyModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.UnregisterCustomClassLayout("Texture2D");
}
private:
// Holds the menu extensibility manager.
TSharedPtr<FExtensibilityManager> MenuExtensibilityManager;
// Holds the tool bar extensibility manager.
TSharedPtr<FExtensibilityManager> ToolBarExtensibilityManager;
};
IMPLEMENT_MODULE(FTextureEditorModule, TextureEditor);
#undef LOCTEXT_NAMESPACE