From 7a325e1b3be04bc54941431458903022da1643ac Mon Sep 17 00:00:00 2001 From: rtk0c Date: Thu, 3 Jun 2021 10:06:55 -0700 Subject: Create template inheritance hierarchy, object value RTTI system --- core/CMakeLists.txt | 5 +- core/src/Model/Template/TableTemplate.cpp | 10 ++ core/src/Model/Template/TableTemplate.hpp | 3 + core/src/Model/Template/Template.hpp | 8 ++ core/src/Model/Template/Template_Main.cpp | 10 ++ core/src/Model/Template/Template_RTTI.cpp | 15 ++- core/src/Model/TransactionsModel.hpp | 10 ++ core/src/Model/Workflow/Nodes/DocumentNodes.cpp | 2 +- core/src/Model/Workflow/Nodes/NumericNodes.cpp | 2 +- core/src/Model/Workflow/Nodes/TextNodes.cpp | 2 +- core/src/Model/Workflow/Nodes/UserInputNodes.cpp | 2 +- core/src/Model/Workflow/Value.hpp | 38 ++++++++ core/src/Model/Workflow/ValueInternals.hpp | 21 ++++ core/src/Model/Workflow/Value_Main.cpp | 11 +++ core/src/Model/Workflow/Value_RTTI.cpp | 115 ++++++++++++++++++++-- core/src/Model/Workflow/Values/Basic.cpp | 117 +++++++++++++++++++++++ core/src/Model/Workflow/Values/Basic.hpp | 67 +++++++++++++ core/src/Model/Workflow/Values/BasicValues.cpp | 117 ----------------------- core/src/Model/Workflow/Values/BasicValues.hpp | 52 ---------- core/src/Model/Workflow/Values/Database.cpp | 88 +++++++++++++++++ core/src/Model/Workflow/Values/Database.hpp | 51 ++++++++++ core/src/Model/Workflow/Values/fwd.hpp | 10 +- core/src/Model/Workflow/Workflow.hpp | 2 + core/src/Model/Workflow/Workflow_RTTI.cpp | 12 ++- core/src/Model/Workflow/fwd.hpp | 1 + core/src/Model/fwd.hpp | 1 + core/src/UI/UI.hpp | 2 + core/src/UI/UI_Templates.cpp | 31 ++++++ core/src/UI/UI_Utils.cpp | 14 +++ 29 files changed, 630 insertions(+), 189 deletions(-) create mode 100644 core/src/Model/Workflow/ValueInternals.hpp create mode 100644 core/src/Model/Workflow/Values/Basic.cpp create mode 100644 core/src/Model/Workflow/Values/Basic.hpp delete mode 100644 core/src/Model/Workflow/Values/BasicValues.cpp delete mode 100644 core/src/Model/Workflow/Values/BasicValues.hpp create mode 100644 core/src/Model/Workflow/Values/Database.cpp create mode 100644 core/src/Model/Workflow/Values/Database.hpp (limited to 'core') diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index c4751a5..040eaac 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -41,9 +41,9 @@ add_source_group(MODEL_MODULE_SOURCES ) add_source_group(MODEL_TEMPLATE_SOURCES + src/Model/Template/TableTemplate.cpp src/Model/Template/Template_Main.cpp src/Model/Template/Template_RTTI.cpp - src/Model/Template/TableTemplate.cpp ) add_source_group(MODEL_WORKFLOW_MODULE_SOURCES @@ -62,7 +62,8 @@ add_source_group(MODEL_WORKFLOW_NODES_MODULE_SOURCES ) add_source_group(MODEL_WORKFLOW_VALUES_MODULE_SOURCES - src/Model/Workflow/Values/BasicValues.cpp + src/Model/Workflow/Values/Basic.cpp + src/Model/Workflow/Values/Database.cpp ) set(UI_MODULE_SOURCES diff --git a/core/src/Model/Template/TableTemplate.cpp b/core/src/Model/Template/TableTemplate.cpp index b8444b7..28a4d6e 100644 --- a/core/src/Model/Template/TableTemplate.cpp +++ b/core/src/Model/Template/TableTemplate.cpp @@ -58,6 +58,16 @@ const TableTemplate& TableInstanciationParameters::GetTable() const return *mTable; } +bool TableTemplate::IsInstance(const Template* tmpl) +{ + return tmpl->GetKind() == KD_Table; +} + +TableTemplate::TableTemplate() + : Template(KD_Table) +{ +} + int TableTemplate::GetTableWidth() const { return mColumnWidths.size(); diff --git a/core/src/Model/Template/TableTemplate.hpp b/core/src/Model/Template/TableTemplate.hpp index f7a79e9..ed1a96f 100644 --- a/core/src/Model/Template/TableTemplate.hpp +++ b/core/src/Model/Template/TableTemplate.hpp @@ -137,6 +137,9 @@ private: std::vector mColumnWidths; public: + static bool IsInstance(const Template* tmpl); + TableTemplate(); + int GetTableWidth() const; int GetTableHeight() const; void Resize(int newWidth, int newHeight); diff --git a/core/src/Model/Template/Template.hpp b/core/src/Model/Template/Template.hpp index f7dd898..131a6ac 100644 --- a/core/src/Model/Template/Template.hpp +++ b/core/src/Model/Template/Template.hpp @@ -18,12 +18,20 @@ public: KindCount = InvalidKind, }; +private: + Kind mKind; + public: static const char* FormatKind(Kind kind); static std::unique_ptr