| |
1 #pragma once |
| |
2 #include "model.h" |
| |
3 #include "objecttypes/modelobject.h" |
| |
4 |
| |
5 class Model::EditContext |
| |
6 { |
| |
7 public: |
| |
8 template<typename T, typename... Args> |
| |
9 modelobjects::BaseObject* append(Args&&... args); |
| |
10 template<typename T, typename... Args> |
| |
11 modelobjects::BaseObject* insert(int position, Args&&... args); |
| |
12 void setObjectProperty( |
| |
13 modelobjects::BaseObject* object, |
| |
14 modelobjects::Property property, |
| |
15 const QVariant &value); |
| |
16 private: |
| |
17 EditContext(Model& model); |
| |
18 friend class Model; |
| |
19 Model& model; |
| |
20 }; |
| |
21 |
| |
22 template<typename T, typename... Args> |
| |
23 modelobjects::BaseObject* Model::EditContext::append(Args&&... args) |
| |
24 { |
| |
25 return this->model.append<T>(args...); |
| |
26 } |
| |
27 |
| |
28 template<typename T, typename... Args> |
| |
29 modelobjects::BaseObject* Model::EditContext::insert(int position, Args&&... args) |
| |
30 { |
| |
31 return this->model.insert<T>(position, args...); |
| |
32 } |