#include "HarmonyLinkEditor.h" #include "ISettingsModule.h" #include "Objects/HarmonyLinkSettings.h" #include "Objects/HarmonyLinkSettingsCustomization.h" #define LOCTEXT_NAMESPACE "FHarmonyLinkEditorModule" void FHarmonyLinkEditorModule::StartupModule() { FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked("PropertyEditor"); PropertyModule.RegisterCustomClassLayout("HarmonyLinkSettings", FOnGetDetailCustomizationInstance::CreateStatic(&FHarmonyLinkSettingsCustomization::MakeInstance)); ISettingsModule* SettingsModule = FModuleManager::GetModulePtr("Settings"); if (SettingsModule) { SettingsModule->RegisterSettings("Project", "Plugins", "HarmonyLink", LOCTEXT("HarmonyLinkSettingsName", "HarmonyLink Settings"), LOCTEXT("HarmonyLinkSettingsDescription", "Configure the HarmonyLink plugin settings."), GetMutableDefault() ); } } void FHarmonyLinkEditorModule::ShutdownModule() { if (FModuleManager::Get().IsModuleLoaded("PropertyEditor")) { FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked("PropertyEditor"); PropertyModule.UnregisterCustomClassLayout("HarmonyLinkSettings"); } ISettingsModule* SettingsModule = FModuleManager::GetModulePtr("Settings"); if (SettingsModule) { SettingsModule->UnregisterSettings("Project", "Plugins", "HarmonyLink"); } } #undef LOCTEXT_NAMESPACE IMPLEMENT_MODULE(FHarmonyLinkEditorModule, HarmonyLinkEditor)