Store ToolBox ObjectDetails fields as members.
This commit is contained in:
parent
dc94d0a130
commit
034d0a8b4e
@ -16,7 +16,8 @@
|
||||
|
||||
using namespace Qtk;
|
||||
|
||||
ToolBox::ToolBox(QWidget * parent) : QDockWidget(parent), ui(new Ui::ToolBox)
|
||||
ToolBox::ToolBox(QWidget * parent) :
|
||||
QDockWidget(parent), objectDetails_(this), ui(new Ui::ToolBox)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setMinimumWidth(350);
|
||||
@ -81,25 +82,27 @@ void ToolBox::createTransformPanel(const Object * object)
|
||||
|
||||
rowLayout->addWidget(spinBox);
|
||||
}
|
||||
|
||||
// Add the layout for this panel to the layout for the primary widget.
|
||||
formLayout_->addRow(transformPanel_.layout);
|
||||
}
|
||||
|
||||
void ToolBox::createPageProperties(const Object * object)
|
||||
{
|
||||
auto transform = object->getTransform();
|
||||
auto type = object->getType();
|
||||
auto * widget = new QWidget;
|
||||
formLayout_ = new QFormLayout;
|
||||
widget->setLayout(formLayout_);
|
||||
|
||||
ui->toolBox->addItem(widget, "Properties");
|
||||
ui->toolBox->setCurrentWidget(widget);
|
||||
|
||||
formLayout_ = new QFormLayout;
|
||||
formLayout_->addRow(new QLabel(tr("Name:")), new QLabel(object->getName()));
|
||||
|
||||
formLayout_->addRow(
|
||||
new QLabel(tr("Type:")),
|
||||
new QLabel(type == Object::Type::QTK_MESH ? "Mesh" : "Model"));
|
||||
objectDetails_.setDetails(object);
|
||||
// TODO: Do this in ToolBox ctor after initializing the form.
|
||||
formLayout_->addRow(objectDetails_.name.label, objectDetails_.name.value);
|
||||
formLayout_->addRow(objectDetails_.objectType.label,
|
||||
objectDetails_.objectType.value);
|
||||
|
||||
createTransformPanel(object);
|
||||
formLayout_->addRow(transformPanel_.layout);
|
||||
|
||||
int minWidth = 75;
|
||||
auto rowLayout = new QHBoxLayout;
|
||||
@ -124,7 +127,6 @@ void ToolBox::createPageProperties(const Object * object)
|
||||
}
|
||||
}
|
||||
formLayout_->addRow(rowLayout);
|
||||
widget->setLayout(formLayout_);
|
||||
}
|
||||
|
||||
void ToolBox::createPageShader(const Object * object)
|
||||
|
@ -14,7 +14,6 @@
|
||||
#include <QDockWidget>
|
||||
#include <QDoubleSpinBox>
|
||||
#include <QFormLayout>
|
||||
#include <QGroupBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
|
||||
@ -62,6 +61,43 @@ namespace Qtk
|
||||
* Private Members
|
||||
************************************************************************/
|
||||
|
||||
/// Displays details on the object.
|
||||
struct ObjectDetails {
|
||||
/// Single item containing a label and value.
|
||||
struct Item {
|
||||
explicit Item(QWidget * parent) :
|
||||
label(new QLabel(parent)), value(new QLabel(parent))
|
||||
{
|
||||
}
|
||||
|
||||
void setItem(const QString & l, const QString & v)
|
||||
{
|
||||
label->setText(l);
|
||||
value->setText(v);
|
||||
}
|
||||
|
||||
QLabel * label;
|
||||
QLabel * value;
|
||||
};
|
||||
|
||||
/// We pass the parent widget so that Qt handles releasing memory.
|
||||
explicit ObjectDetails(QWidget * parent) :
|
||||
name(parent), objectType(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void setDetails(const Qtk::Object * object)
|
||||
{
|
||||
name.setItem(tr("Name:"), object->getName());
|
||||
objectType.setItem(
|
||||
tr("Type:"),
|
||||
object->getType() == Object::QTK_MESH ? "Mesh" : "Model");
|
||||
}
|
||||
|
||||
Item name, objectType;
|
||||
};
|
||||
ObjectDetails objectDetails_;
|
||||
|
||||
/// Spinbox with 3 fields and label.
|
||||
struct SpinBox3D {
|
||||
QLabel * label;
|
||||
|
Loading…
x
Reference in New Issue
Block a user