aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Workflow/Workflow.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/Workflow/Workflow.hpp')
-rw-r--r--core/src/Model/Workflow/Workflow.hpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/core/src/Model/Workflow/Workflow.hpp b/core/src/Model/Workflow/Workflow.hpp
index c57ac31..51596e5 100644
--- a/core/src/Model/Workflow/Workflow.hpp
+++ b/core/src/Model/Workflow/Workflow.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "Model/Assets.hpp"
#include "Model/Workflow/Value.hpp"
#include "Utils/Vector.hpp"
#include "cplt_fwd.hpp"
@@ -174,17 +175,12 @@ protected:
void OnDetach();
};
-struct WorkflowInfo
+class Workflow : public Asset
{
- std::filesystem::path Path;
- std::string Name;
- std::string PathStringCache = Path.string();
-
- std::unique_ptr<Workflow> LoadFromDisk() const;
-};
+public:
+ using CategoryType = WorkflowAssetCategory;
+ static constinit const WorkflowAssetCategory Category;
-class Workflow
-{
private:
friend class WorkflowNode;
friend class WorkflowEvaluationContext;
@@ -279,3 +275,14 @@ private:
std::pair<WorkflowConnection&, size_t> AllocWorkflowConnection();
std::pair<std::unique_ptr<WorkflowNode>&, size_t> AllocWorkflowStep();
};
+
+class WorkflowAssetCategory : public AssetCategory
+{
+public:
+ virtual void DiscoverFiles(const std::function<void(SavedAsset)>& callback) const override;
+ virtual Workflow* CreateEmpty(const SavedAsset& diskForm) const override;
+ virtual Workflow* Load(const SavedAsset& diskForm) const override;
+ virtual void SetupDetailsTable(const char* tableId) const override;
+ virtual void DrawBigIcon(const SavedAsset& asset) const override;
+ virtual void DrawDetailsTableRow(const SavedAsset& asset) const override;
+};