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