diff --git a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp index 5053d5245556c244d7d36e0a1930c9ba3b09f09d..677edb94830aaa0158f936d2b3af44431e9a3dee 100644 --- a/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp +++ b/Source/RWTHVRToolkit/Private/RWTHVRToolkit.cpp @@ -4,11 +4,6 @@ #include "LiveLinkClient.h" #include "RWTHVRToolkitSettings.h" -#if WITH_EDITOR - #include "ISettingsModule.h" - #include "ISettingsSection.h" -#endif - #define LOCTEXT_NAMESPACE "FRWTHVRToolkitModule" void FRWTHVRToolkitModule::StartupModule () @@ -18,32 +13,13 @@ void FRWTHVRToolkitModule::StartupModule () FCoreDelegates::OnFEngineLoopInitComplete.AddRaw(this, &FRWTHVRToolkitModule::OnEngineLoopInitComplete); #if WITH_EDITOR - if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings")) - { - ISettingsSectionPtr SettingsSection = SettingsModule->RegisterSettings( - "Project", "Plugins", "RWTH VR Toolkit", - LOCTEXT("RWTHVRToolkitSettingsName", "RWTH VR Toolkit"), - LOCTEXT("RWTHVRToolkitSettingsDescription", "Configure the RWTH VR Toolkit."), - GetMutableDefault<URWTHVRToolkitSettings>() - ); - if (SettingsSection.IsValid()) - { - SettingsSection->OnModified().BindRaw(this, &FRWTHVRToolkitModule::HandleSettingsSaved); - } - } + GetMutableDefault<URWTHVRToolkitSettings>()->OnSettingChanged().AddRaw(this, &FRWTHVRToolkitModule::HandleSettingsSaved); #endif } void FRWTHVRToolkitModule::ShutdownModule() { - ConsoleActivation.Unregister(); - -#if WITH_EDITOR - if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings")) - { - SettingsModule->UnregisterSettings("Project", "Plugins", "RWTH VR Toolkit"); - } -#endif + ConsoleActivation.Unregister(); } void FRWTHVRToolkitModule::OnEngineLoopInitComplete() @@ -51,10 +27,9 @@ void FRWTHVRToolkitModule::OnEngineLoopInitComplete() ApplyDefaultPreset(); } -bool FRWTHVRToolkitModule::HandleSettingsSaved() +void FRWTHVRToolkitModule::HandleSettingsSaved(UObject* Settings, FPropertyChangedEvent& PropertyChangedEvent) { ApplyDefaultPreset(); - return true; } void FRWTHVRToolkitModule::ApplyDefaultPreset() diff --git a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h index 8bd51d2c06e6adf7ba6fdfba1c9d2212816c97d3..09d2ff296521492d9badfc81083d0e039cbd2110 100644 --- a/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h +++ b/Source/RWTHVRToolkit/Public/RWTHVRToolkit.h @@ -16,7 +16,7 @@ public: private: void OnEngineLoopInitComplete(); - bool HandleSettingsSaved(); + void HandleSettingsSaved(UObject* Settings, FPropertyChangedEvent& PropertyChangedEvent); void ApplyDefaultPreset(); FActivateConsoleInShipping ConsoleActivation; diff --git a/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h b/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h index fa39851c0c28b67b8cf9b320f29a353996596489..d229f2675f28d6a22a805dcfab5d05f2908310e3 100644 --- a/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h +++ b/Source/RWTHVRToolkit/Public/RWTHVRToolkitSettings.h @@ -9,6 +9,7 @@ #include "Engine/EngineTypes.h" #include "Templates/SubclassOf.h" #include "LiveLinkPreset.h" +#include "Utility/DemoConfig.h" #include "RWTHVRToolkitSettings.generated.h" @@ -16,11 +17,18 @@ /** * Settings for LiveLink. */ -UCLASS(config=Game, defaultconfig) -class RWTHVRTOOLKIT_API URWTHVRToolkitSettings : public UObject +UCLASS(config=RWTHVRToolkit, defaultconfig) +class RWTHVRTOOLKIT_API URWTHVRToolkitSettings : public UDemoConfig { GENERATED_BODY() + virtual FName GetCategoryName() const override { return "Plugins"; }; + +#if WITH_EDITOR + virtual FText GetSectionText() const override { return FText::FromString("RWTH VR Toolkit"); }; +#endif + + public: URWTHVRToolkitSettings() = default;