Sun, 13 Mar 2022 18:46:10 +0200
Handle properties in a generic manner in the object editor
| 
81
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
1 | #pragma once | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
2 | #include <QWidget> | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
3 | #include "../main.h" | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
4 | #include "../model.h" | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
5 | #include "polygonobjecteditor.h" | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
6 | |
| 152 | 7 | class Document; | 
| 8 | ||
| 
81
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
9 | class ObjectEditor : public QWidget | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
10 | { | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
11 | Q_OBJECT | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
12 | public: | 
| 152 | 13 | explicit ObjectEditor(Document* document, ldraw::id_t id = ldraw::NULL_ID); | 
| 
81
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
14 | void setObjectId(ldraw::id_t id); | 
| 
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
15 | private: | 
| 
180
 
5b7a8f2270ff
Handle properties in a generic manner in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
178 
diff
changeset
 | 
16 | Q_SLOT void handleColorChange(ldraw::Color value); | 
| 
 
5b7a8f2270ff
Handle properties in a generic manner in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
178 
diff
changeset
 | 
17 | Q_SLOT void handleVec3Change(const glm::vec3& value); | 
| 152 | 18 | Document* const document; | 
| 
81
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
19 | ldraw::id_t objectId = ldraw::NULL_ID; | 
| 178 | 20 | QWidget* formContainer; | 
| 
177
 
f69d53c053df
Show type of object in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
152 
diff
changeset
 | 
21 | class QLabel* objectTypeNameLabel; | 
| 
 
f69d53c053df
Show type of object in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
152 
diff
changeset
 | 
22 | class QLabel* objectTypeIconLabel; | 
| 178 | 23 | QMap<ldraw::Property, QPair<QWidget*, QWidget*>> propertyWidgets; | 
| 
180
 
5b7a8f2270ff
Handle properties in a generic manner in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
178 
diff
changeset
 | 
24 | QWidget* makeEditorWidgetForProperty(ldraw::Property property); | 
| 
 
5b7a8f2270ff
Handle properties in a generic manner in the object editor
 
Teemu Piippo <teemu@hecknology.net> 
parents: 
178 
diff
changeset
 | 
25 | void handlePropertyChange(QObject* caller, const QVariant& value); | 
| 
81
 
62373840e33a
object editor widgets start to form up
 
Teemu Piippo <teemu@hecknology.net> 
parents:  
diff
changeset
 | 
26 | }; |