1 #pragma once |
1 #pragma once |
2 #include <QWidget> |
2 #include <QWidget> |
3 #include "../main.h" |
3 #include "../main.h" |
4 #include "../model.h" |
4 #include "../model.h" |
5 |
|
6 class Document; |
|
7 |
|
8 class ObjectEditor : public QWidget |
|
9 { |
|
10 Q_OBJECT |
|
11 public: |
|
12 explicit ObjectEditor(Document* document, ldraw::id_t id = ldraw::NULL_ID); |
|
13 ~ObjectEditor(); |
|
14 void setObjectId(ldraw::id_t id); |
|
15 private: |
|
16 Q_SLOT void handleColorChange(ldraw::Color value); |
|
17 Q_SLOT void handleVec3Change(const glm::vec3& value); |
|
18 Q_SLOT void handleBoolChange(bool value); |
|
19 Q_SLOT void handleStringChange(const QString& value); |
|
20 class Ui_ObjectEditor& ui; |
|
21 Document* const document; |
|
22 ldraw::id_t objectId = ldraw::NULL_ID; |
|
23 QMap<ldraw::Property, QPair<QWidget*, QWidget*>> propertyWidgets; |
|
24 QWidget* makeEditorWidgetForProperty(ldraw::Property property); |
|
25 void handlePropertyChange(QObject* caller, const QVariant& value); |
|
26 }; |
|