// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "SMassDebuggerViewBase.h" #include "MassEntityQuery.h" #include "SMassQueryEditor.h" #include "Widgets/Views/SListView.h" #include "Widgets/Views/STableRow.h" class FJsonObject; namespace UE::MassDebugger { class SQueryEditorView : public SMassDebuggerViewBase { public: SLATE_BEGIN_ARGS(SQueryEditorView) {} SLATE_END_ARGS() void Construct(const FArguments& InArgs, TSharedRef InDebuggerModel); // ~SMassDebuggerViewBase interface virtual void OnRefresh() override; virtual void OnProcessorsSelected(TConstArrayView> SelectedProcessors, ESelectInfo::Type SelectInfo) override {} virtual void OnArchetypesSelected(TConstArrayView> SelectedArchetypes, ESelectInfo::Type SelectInfo) override {} void ShowQuery(const FMassEntityQuery& InQuery, const FString& InQueryName); FReply OnSaveQuery(); FReply OnSaveAllQueries(); FReply OnCopyQuery(); FReply OnPasteQuery(); protected: TSharedPtr>> QueryListView; TSharedPtr QueryEditor; TSharedPtr SelectedQuery; TWeakPtr DebuggerModel; TSharedRef OnGenerateQueryRow(TSharedPtr InItem, const TSharedRef& OwnerTable); FReply OnAddQuery(); FReply OnDeleteQuery(TSharedPtr InItem); FReply OnEditQuery(TSharedPtr InItem); FReply OnViewEntities(TSharedPtr InItem); void OnRequirementsChanged(TSharedPtr& Query); void OnQueriesChanged(); }; } // namespace UE::MassDebugger