--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/modeleditcontext.h Sun Sep 22 11:51:41 2019 +0300 @@ -0,0 +1,32 @@ +#pragma once +#include "model.h" +#include "objecttypes/modelobject.h" + +class Model::EditContext +{ +public: + template<typename T, typename... Args> + modelobjects::BaseObject* append(Args&&... args); + template<typename T, typename... Args> + modelobjects::BaseObject* insert(int position, Args&&... args); + void setObjectProperty( + modelobjects::BaseObject* object, + modelobjects::Property property, + const QVariant &value); +private: + EditContext(Model& model); + friend class Model; + Model& model; +}; + +template<typename T, typename... Args> +modelobjects::BaseObject* Model::EditContext::append(Args&&... args) +{ + return this->model.append<T>(args...); +} + +template<typename T, typename... Args> +modelobjects::BaseObject* Model::EditContext::insert(int position, Args&&... args) +{ + return this->model.insert<T>(position, args...); +}