src/modeleditcontext.h

changeset 3
55a55a9ec2c2
child 5
593a658cba8e
--- /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...);
+}

mercurial