From 4f9cf220ef564642dd70bdf4001a199a1f091dfb Mon Sep 17 00:00:00 2001 From: Mamadou Babaei Date: Mon, 27 Mar 2023 15:12:07 +0200 Subject: [PATCH] remove SGAssetTypeActions_Skeleton, SGSkeletonEditor, and SGSkeletonEditorCommands classes --- .../SGEditor/SGAssetTypeActions_Skeleton.cpp | 112 ------------- .../Private/SGEditor/SGSkeletonEditor.cpp | 150 ------------------ .../SGEditor/SGSkeletonEditorCommands.cpp | 95 ----------- .../SGEditor/SGAssetTypeActions_Skeleton.h | 63 -------- .../Public/SGEditor/SGSkeletonEditor.h | 62 -------- .../SGEditor/SGSkeletonEditorCommands.h | 55 ------- 6 files changed, 537 deletions(-) delete mode 100644 Source/SenseGloveEditor/Private/SGEditor/SGAssetTypeActions_Skeleton.cpp delete mode 100644 Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditor.cpp delete mode 100644 Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditorCommands.cpp delete mode 100644 Source/SenseGloveEditor/Public/SGEditor/SGAssetTypeActions_Skeleton.h delete mode 100644 Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditor.h delete mode 100644 Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditorCommands.h diff --git a/Source/SenseGloveEditor/Private/SGEditor/SGAssetTypeActions_Skeleton.cpp b/Source/SenseGloveEditor/Private/SGEditor/SGAssetTypeActions_Skeleton.cpp deleted file mode 100644 index a054a8ff..00000000 --- a/Source/SenseGloveEditor/Private/SGEditor/SGAssetTypeActions_Skeleton.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#include "SGEditor/SGAssetTypeActions_Skeleton.h" - -#include "Toolkits/IToolkitHost.h" -#include "ToolMenuSection.h" -#include "UObject/Class.h" -#include "UObject/Object.h" - -FText FSGAssetTypeActions_Skeleton::GetName() const -{ - return NSLOCTEXT("AssetTypeActions", "SGAssetTypeActions_Skeleton", "SGSkeleton"); -} - -FColor FSGAssetTypeActions_Skeleton::GetTypeColor() const -{ - return FColor(105, 181, 205); -} - -UClass* FSGAssetTypeActions_Skeleton::GetSupportedClass() const -{ - return USkeleton::StaticClass(); -} - -bool FSGAssetTypeActions_Skeleton::HasActions(const TArray& InObjects) const -{ - return true; -} - -void FSGAssetTypeActions_Skeleton::GetActions(const TArray& InObjects, FMenuBuilder& MenuBuilder) -{ - const FAssetToolsModule& AssetToolsModule{FModuleManager::LoadModuleChecked(TEXT("AssetTools"))}; - const TSharedPtr EngineActions{ - AssetToolsModule.Get().GetAssetTypeActionsForClass(GetSupportedClass()->GetSuperClass()).Pin() - }; - if (EngineActions.IsValid()) - { - EngineActions->GetActions(InObjects, MenuBuilder); - } - MenuBuilder.AddMenuEntry( - FText::FromString("Show Message"), - FText::FromString("Show a message box"), - FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.ViewOptions"), - FUIAction(FExecuteAction::CreateLambda( - [&](TArray)-> void - { - }, InObjects)) - ); -} - -void FSGAssetTypeActions_Skeleton::GetActions(const TArray& InObjects, FToolMenuSection& Section) -{ - const FAssetToolsModule& AssetToolsModule{FModuleManager::LoadModuleChecked(TEXT("AssetTools"))}; - const TSharedPtr EngineActions{ - AssetToolsModule.Get().GetAssetTypeActionsForClass(GetSupportedClass()->GetSuperClass()).Pin() - }; - if (EngineActions.IsValid()) - { - EngineActions->GetActions(InObjects, Section); - } -} - -void FSGAssetTypeActions_Skeleton::OpenAssetEditor(const TArray& InObjects, - TSharedPtr EditWithinLevelEditor) -{ - const FAssetToolsModule& AssetToolsModule{FModuleManager::LoadModuleChecked(TEXT("AssetTools"))}; - const TSharedPtr EngineActions{ - AssetToolsModule.Get().GetAssetTypeActionsForClass(GetSupportedClass()->GetSuperClass()).Pin() - }; - if (EngineActions.IsValid()) - { - EngineActions->OpenAssetEditor(InObjects, EditWithinLevelEditor); - } -} - -uint32 FSGAssetTypeActions_Skeleton::GetCategories() -{ - return EAssetTypeCategories::Animation; -} \ No newline at end of file diff --git a/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditor.cpp b/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditor.cpp deleted file mode 100644 index afb0a04b..00000000 --- a/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditor.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#include "SGEditor/SGSkeletonEditor.h" - -#include "Framework/MultiBox/MultiBoxExtender.h" -#include "ISkeletonEditor.h" -#include "ISkeletonEditorModule.h" -#include "Modules/ModuleManager.h" - -#include "SGEditor/SGAssetTypeActions_Skeleton.h" -#include "SGEditor/SGSkeletonEditorCommands.h" - -#define LOCTEXT_NAMESPACE "SkeletonEditor" - -struct FSGSkeletonEditor::FImpl -{ - /************************ - * Member variables - ************************/ - - TSharedPtr ToolbarExtender; - TSharedPtr EditorCommands; - TSharedPtr AssetActions; - - /************************ - * Owner object - ************************/ - - FSGSkeletonEditor* Owner; - - /************************ - * Constructor / Destructor - ************************/ - - explicit FImpl(FSGSkeletonEditor* InOwner); - ~FImpl(); - - /************************ - * Default copy constructor & copy assignment operator - ************************/ - - FImpl(const FImpl& Rhs) = default; - FImpl& operator=(const FImpl& Rhs) = default; -}; - -FSGSkeletonEditor::FSGSkeletonEditor() - : Pimpl(TUniquePtr(new FImpl{this}, PimplDeleter)) -{ -} - -FSGSkeletonEditor::~FSGSkeletonEditor() = default; - -void FSGSkeletonEditor::ExtendToolbar() -{ - if (Pimpl->EditorCommands.IsValid()) - { - Pimpl->EditorCommands.Reset(); - } - Pimpl->EditorCommands = MakeShared(); - Pimpl->EditorCommands->RegisterCommands(); - - if (Pimpl->ToolbarExtender.IsValid()) - { - Pimpl->ToolbarExtender.Reset(); - } - Pimpl->ToolbarExtender = MakeShared(); - - ISkeletonEditorModule& SkeletonEditorModule{ - FModuleManager::LoadModuleChecked("SkeletonEditor") - }; - TSharedPtr ExtensibilityManager{SkeletonEditorModule.GetToolBarExtensibilityManager()}; - - Pimpl->ToolbarExtender->AddToolBarExtension( - "Skeleton", - EExtensionHook::Before, - Pimpl->EditorCommands->CommandList, - FToolBarExtensionDelegate::CreateLambda([&](FToolBarBuilder& ToolbarBuilder)-> void - { - ToolbarBuilder.BeginSection("SenseGlove"); - { - ToolbarBuilder.AddToolBarButton( - Pimpl->EditorCommands->UpdateSkeletonReferencePose, - NAME_None, - LOCTEXT("UpdateSkeletonReferencePose", "Update Skeleton Reference Pose")); - } - ToolbarBuilder.EndSection(); - } - )); - ExtensibilityManager->AddExtender(Pimpl->ToolbarExtender); -} - -void FSGSkeletonEditor::RegisterAssetTypeActions() const -{ - if (Pimpl->AssetActions.IsValid()) - { - Pimpl->AssetActions.Reset(); - } - Pimpl->AssetActions = MakeShared(); - - IAssetTools& AssetTools = FModuleManager::LoadModuleChecked("AssetTools").Get(); - - AssetTools.RegisterAssetTypeActions(Pimpl->AssetActions.ToSharedRef()); -} - -FSGSkeletonEditor::FImpl::FImpl(FSGSkeletonEditor* InOwner) - : Owner(InOwner) -{ -} - -FSGSkeletonEditor::FImpl::~FImpl() = default; - -void FSGSkeletonEditor::FImplDeleter::operator()(const FImpl* P) const -{ - delete P; -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditorCommands.cpp b/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditorCommands.cpp deleted file mode 100644 index 0dd3c784..00000000 --- a/Source/SenseGloveEditor/Private/SGEditor/SGSkeletonEditorCommands.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#include "SGEditor/SGSkeletonEditorCommands.h" - -#include "Framework/Notifications/NotificationManager.h" -#include "Widgets/Notifications/SNotificationList.h" - -#define LOCTEXT_NAMESPACE "SkeletonEditorCommands" - -FSGSkeletonEditorCommands::FSGSkeletonEditorCommands() - : TCommands( - TEXT("SGSkeletonEditor"), - NSLOCTEXT("Contexts", "SGSkeletonEditor", "SenseGlove Skeleton Editor"), - NAME_None, -#if ENGINE_MAJOR_VERSION >= 5 - FAppStyle::GetAppStyleSetName() -#else - FEditorStyle::GetStyleSetName() -#endif /* ENGINE_MAJOR_VERSION >= 5 */ - ) -{ -} - -FSGSkeletonEditorCommands::~FSGSkeletonEditorCommands() = default; - -void FSGSkeletonEditorCommands::RegisterCommands() -{ - if (UpdateSkeletonReferencePose.IsValid()) - { - UpdateSkeletonReferencePose.Reset(); - } - UI_COMMAND(UpdateSkeletonReferencePose, - "Update Skeleton Reference Pose", - "Update the Skeleton's reference pose based on the current preview mesh", - EUserInterfaceActionType::Button, - FInputChord()); - - if (CommandList.IsValid()) - { - CommandList.Reset(); - } - CommandList = MakeShared(); - CommandList->MapAction(UpdateSkeletonReferencePose, - FExecuteAction::CreateLambda([&]()-> void - { - FMessageDialog::Open(EAppMsgType::Ok, FText::FromString( - FString( - "In order to apply the current skeleton pose as the default" - " reference pose permanently, first right click on the Skeleton asset in" - " the content browser, then choose Update Skeleton Reference Pose from" - " the context menu. Finally, if you wish the changes to persist, save" - " the asset."))); - } - ), - FCanExecuteAction::CreateLambda([&]()-> bool - { - return true; - } - )); -} - -#undef LOCTEXT_NAMESPACE \ No newline at end of file diff --git a/Source/SenseGloveEditor/Public/SGEditor/SGAssetTypeActions_Skeleton.h b/Source/SenseGloveEditor/Public/SGEditor/SGAssetTypeActions_Skeleton.h deleted file mode 100644 index b5625ccc..00000000 --- a/Source/SenseGloveEditor/Public/SGEditor/SGAssetTypeActions_Skeleton.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#pragma once - -#include "AssetTypeActions_Base.h" -#include "Containers/Array.h" -#include "Internationalization/Text.h" -#include "Math/Color.h" -#include "HAL/Platform.h" -#include "Templates/SharedPointer.h" - -struct FToolMenuSection; -class IToolkitHost; -class UClass; -class UObject; - -class FSGAssetTypeActions_Skeleton : public FAssetTypeActions_Base -{ -public: - virtual FText GetName() const override; - virtual FColor GetTypeColor() const override; - virtual UClass* GetSupportedClass() const override; - virtual bool HasActions(const TArray& InObjects) const override; - virtual void GetActions( const TArray& InObjects, FMenuBuilder& MenuBuilder ) override; - virtual void GetActions(const TArray& InObjects, FToolMenuSection& Section) override; - virtual void OpenAssetEditor( - const TArray& InObjects, - TSharedPtr EditWithinLevelEditor = TSharedPtr()) override; - virtual uint32 GetCategories() override; -}; \ No newline at end of file diff --git a/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditor.h b/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditor.h deleted file mode 100644 index 3aee36ec..00000000 --- a/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditor.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#pragma once - -#include "EditorStyleSet.h" -#include "Framework/MultiBox/MultiBoxExtender.h" -#include "Templates/SharedPointer.h" - -class FSGSkeletonEditor -{ -private: - struct FImpl; - - struct FImplDeleter - { - void operator()(const FImpl* P) const; - }; - - TUniquePtr Pimpl; - FImplDeleter PimplDeleter; - -public: - FSGSkeletonEditor(); - virtual ~FSGSkeletonEditor(); - -public: - void ExtendToolbar(); - void RegisterAssetTypeActions() const; -}; \ No newline at end of file diff --git a/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditorCommands.h b/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditorCommands.h deleted file mode 100644 index d0ca27a7..00000000 --- a/Source/SenseGloveEditor/Public/SGEditor/SGSkeletonEditorCommands.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @file - * - * @author Mamadou Babaei - * - * @section LICENSE - * - * (The MIT License) - * - * Copyright (c) 2020 - 2023 SenseGlove - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * @section DESCRIPTION - * - * - */ - - -#pragma once - -#include "EditorStyleSet.h" -#include "Framework/Commands/Commands.h" -#include "Framework/Commands/UICommandList.h" -#include "Templates/SharedPointer.h" - -class FSGSkeletonEditorCommands final : public TCommands -{ -public: - TSharedPtr CommandList; - TSharedPtr UpdateSkeletonReferencePose; - -public: - FSGSkeletonEditorCommands(); - virtual ~FSGSkeletonEditorCommands() override; - -public: - virtual void RegisterCommands() override; -}; \ No newline at end of file