|
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 } |