diff -r 6a875faebde2 -r dc33f8a707c4 src/model.h --- a/src/model.h Sun Jun 26 20:27:04 2022 +0300 +++ b/src/model.h Sun Jun 26 20:54:09 2022 +0300 @@ -214,7 +214,7 @@ std::map positions; ModelId runningId = {1}; public: - Model(QObject* parent); + explicit Model(QObject* parent); virtual ~Model(); ModelId append(const ModelElement& value); const ModelElement& at(std::size_t position) const; @@ -276,3 +276,24 @@ { return Colored{{.p1 = p1, .p2 = p2, .p3 = p3, .p4 = p4}, MAIN_COLOR}; } + +struct AppendToModel +{ + ModelElement newElement; +}; + +struct DeleteFromModel +{ + std::size_t position; +}; + +struct ModifyModel +{ + std::size_t position; + ModelElement newElement; +}; + +using ModelAction = std::variant< + AppendToModel, + DeleteFromModel, + ModifyModel>;