void FIntroTutorials::ShutdownModule() { if (!bDisableTutorials && !IsRunningCommandlet()) { FSourceCodeNavigation::AccessOnCompilerNotFound().RemoveAll( this ); FAssetToolsModule* AssetToolsModule = FModuleManager::GetModulePtr<FAssetToolsModule>("AssetTools"); if (AssetToolsModule) { IAssetTools& AssetTools = AssetToolsModule->Get(); for(const auto& RegisteredClassTypeAction : RegisteredClassTypeActions) { AssetTools.UnregisterClassTypeActions(RegisteredClassTypeAction); } } } if (BlueprintEditorExtender.IsValid() && FModuleManager::Get().IsModuleLoaded("Kismet")) { FBlueprintEditorModule& BPEditorModule = FModuleManager::LoadModuleChecked<FBlueprintEditorModule>("Kismet"); BPEditorModule.GetMenuExtensibilityManager()->RemoveExtender(BlueprintEditorExtender); } if (MainMenuExtender.IsValid() && FModuleManager::Get().IsModuleLoaded("LevelEditor")) { FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>( "LevelEditor" ); LevelEditorModule.GetMenuExtensibilityManager()->RemoveExtender(MainMenuExtender); } if (FModuleManager::Get().IsModuleLoaded("MainFrame")) { IMainFrameModule& MainFrameModule = FModuleManager::LoadModuleChecked<IMainFrameModule>(TEXT("MainFrame")); MainFrameModule.OnMainFrameCreationFinished().RemoveAll(this); } ISettingsModule* SettingsModule = FModuleManager::GetModulePtr<ISettingsModule>("Settings"); if (SettingsModule != nullptr) { SettingsModule->UnregisterSettings("Editor", "General", "Tutorials"); SettingsModule->UnregisterSettings("Project", "Engine", "Tutorials"); } if(FModuleManager::Get().IsModuleLoaded("PropertyEditor")) { FPropertyEditorModule& PropertyEditorModule = FModuleManager::GetModuleChecked<FPropertyEditorModule>("PropertyEditor"); PropertyEditorModule.UnregisterCustomPropertyTypeLayout("TutorialContent"); PropertyEditorModule.UnregisterCustomPropertyTypeLayout("TutorialWidgetReference"); PropertyEditorModule.UnregisterCustomClassLayout("EditorTutorial"); } if(ContentIntroCurve.IsValid()) { ContentIntroCurve.Get()->RemoveFromRoot(); ContentIntroCurve = nullptr; } FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(TEXT("TutorialsBrowser")); }
/** Unregisters asset tool actions. */ void UnregisterAssetTools() { FAssetToolsModule* AssetToolsModule = FModuleManager::GetModulePtr<FAssetToolsModule>("AssetTools"); if (AssetToolsModule != nullptr) { IAssetTools& AssetTools = AssetToolsModule->Get(); for (auto Action : RegisteredAssetTypeActions) { AssetTools.UnregisterAssetTypeActions(Action); } } }