3#include "../Vector3Widget.h"
4#include "../ScalarWidget.h"
7 container =
new QWidget(parent);
8 layout =
new QHBoxLayout(container);
9 layout->setContentsMargins(0,0,0,0);
10 layout->setSpacing(5);
13InspectorRow::InspectorRow(
const QString &lbl, QWidget* customEditor, std::function<
void()> updateLogic) : label(lbl), container(customEditor) {
15 updaters.push_back(updateLogic);
22 layout->addWidget(vec);
32 updaters.emplace_back([vec, get]() {
42 scalar->setValue(get());
43 layout->addWidget(scalar);
53 updaters.emplace_back([scalar, get]() {
55 scalar->setValue(get());
63 QCheckBox* cb =
new QCheckBox();
64 cb->setChecked(get());
65 layout->addWidget(cb);
71 QObject::connect(cb, &QCheckBox::toggled, [set](
bool checked){
72 if (set) set(checked);
75 updaters.emplace_back([cb, get]() {
78 if (cb->isChecked() != val) {
79 const QSignalBlocker blocker(cb);
87 QPushButton* btn =
new QPushButton(text);
88 layout->addWidget(btn);
94 QObject::connect(btn, &QPushButton::clicked, [onClick](){
95 if (onClick) onClick();
InspectorRow & addButton(const QString &text, const std::function< void()> &onClick, const std::function< void(QPushButton *)> &onInit=nullptr)
InspectorRow & addCheckbox(const std::function< bool()> &get, const std::function< void(bool)> &set, const std::function< void(QCheckBox *)> &onInit=nullptr)
InspectorRow & addVec3(const std::function< glm::vec3()> &get, const std::function< void(glm::vec3)> &set, const QString &unit="", const std::function< void(Vector3Widget *)> &onInit=nullptr)
InspectorRow(const QString &lbl, QWidget *parent=nullptr)
InspectorRow & addScalar(const std::function< double()> &get, const std::function< void(double)> &set, const QString &unit="", const std::function< void(ScalarWidget *)> &onInit=nullptr)