diff options
Diffstat (limited to 'src/sidebar.cc')
-rw-r--r-- | src/sidebar.cc | 99 |
1 files changed, 84 insertions, 15 deletions
diff --git a/src/sidebar.cc b/src/sidebar.cc index 0a75b1b..77d87ae 100644 --- a/src/sidebar.cc +++ b/src/sidebar.cc @@ -29,19 +29,18 @@ SideBar::SideBar(QWidget *parent) : QWidget(parent) // entity label QHBoxLayout *box_entitylabel = new QHBoxLayout(); QLabel *label_entitylabel = new QLabel(tr("label")); - - edit_entitylabel = new QLineEdit(tr("entity_label")); - + edit_entitylabel = new QLineEdit(tr("entity_label")); box_entitylabel->addWidget(label_entitylabel); box_entitylabel->addWidget(edit_entitylabel); + connect(edit_entitylabel, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityLabel(const QString &))); // entity name QHBoxLayout *box_entityname = new QHBoxLayout(); - QLabel *label_entityname = new QLabel(tr("name")); - + QLabel *label_entityname = new QLabel(tr("name")); edit_entityname = new QLineEdit(tr("Entity Name")); box_entityname->addWidget(label_entityname); box_entityname->addWidget(edit_entityname); + connect(edit_entityname, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityName(const QString &))); // entity location QHBoxLayout *box_entitylocation = new QHBoxLayout(); @@ -53,22 +52,35 @@ SideBar::SideBar(QWidget *parent) : QWidget(parent) box_entitylocation->addWidget(edit_entitylocation_x); box_entitylocation->addWidget(edit_entitylocation_y); box_entitylocation->addWidget(edit_entitylocation_z); - connect(edit_entitylocation_x, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityLocationX(const QString &))); connect(edit_entitylocation_y, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityLocationY(const QString &))); connect(edit_entitylocation_z, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityLocationZ(const QString &))); - // entity properties + // entity radius + QHBoxLayout *box_entityradius = new QHBoxLayout(); + QLabel *label_entityradius = new QLabel(tr("radius")); + edit_entityradius = new QLineEdit(tr("radius")); + box_entityradius->addWidget(label_entityradius); + box_entityradius->addWidget(edit_entityradius); + connect(edit_entityradius, SIGNAL(textChanged(const QString &)), this, SLOT(updateEntityRadius(const QString &))); + + // entity values QLabel *label_entityproperties = new QLabel(tr("properties")); - text_entityproperties = new QTextEdit(); + text_entityvalues = new QTextEdit(); + text_entityvalues ->setTabChangesFocus(true); + connect(text_entityvalues, SIGNAL(textChanged()), this, SLOT(updateEntityValues())); // entity info QLabel *label_info = new QLabel(tr("info")); text_info = new QTextEdit(); + text_info ->setTabChangesFocus(true); + connect(text_info, SIGNAL(textChanged()), this, SLOT(updateEntityInfo())); // entity subsections QLabel *label_entitysubsections = new QLabel(tr("subsections")); text_subsections = new QTextEdit(); + text_subsections ->setTabChangesFocus(true); + connect(text_subsections, SIGNAL(textChanged()), this, SLOT(updateEntitySubSections())); // global vertical layout QVBoxLayout *box_global = new QVBoxLayout(); @@ -81,9 +93,10 @@ SideBar::SideBar(QWidget *parent) : QWidget(parent) box_global->addLayout(box_entitylabel); box_global->addLayout(box_entityname); box_global->addLayout(box_entitylocation); + box_global->addLayout(box_entityradius); box_global->addWidget(label_entityproperties); - box_global->addWidget(text_entityproperties,1); + box_global->addWidget(text_entityvalues,1); box_global->addWidget(label_info); box_global->addWidget(text_info,1); @@ -96,6 +109,20 @@ SideBar::SideBar(QWidget *parent) : QWidget(parent) setProperties(0); } +void SideBar::updateEntityLabel(const QString &value) +{ + if (last_selected) { + last_selected->set_label(value); + } +} + +void SideBar::updateEntityName(const QString &value) +{ + if (last_selected) { + last_selected->set_name(value); + } +} + void SideBar::updateEntityLocationX(const QString &value) { if (last_selected) { @@ -132,6 +159,41 @@ void SideBar::updateEntityLocationZ(const QString &value) } } +void SideBar::updateEntityRadius(const QString &value) +{ + if (last_selected) { + bool ok; + float r = value.toFloat(&ok); + if (ok) { + last_selected->set_radius(r); + } else { + last_selected->set_radius(0.0f); + } + emit entityChanged(); + } +} + +void SideBar::updateEntityValues() +{ + if (last_selected) { + last_selected->set_values(text_entityvalues->toPlainText()); + } +} + +void SideBar::updateEntitySubSections() +{ + if (last_selected) { + last_selected->set_subsections(text_subsections->toPlainText()); + } +} + +void SideBar::updateEntityInfo() +{ + if (last_selected) { + last_selected->set_info(text_info->toPlainText()); + } +} + void SideBar::setProperties(EntityProperties *properties) { last_selected = properties; @@ -154,8 +216,11 @@ void SideBar::setProperties(EntityProperties *properties) edit_entitylocation_z->setEnabled(false); edit_entitylocation_z->clear(); - text_entityproperties->setEnabled(false); - text_entityproperties->clear(); + edit_entityradius->setEnabled(false); + edit_entityradius->clear(); + + text_entityvalues->setEnabled(false); + text_entityvalues->clear(); text_subsections->setEnabled(false); text_subsections->clear(); @@ -189,14 +254,18 @@ void SideBar::setProperties(EntityProperties *properties) value.setNum(properties->location()[2]); edit_entitylocation_z->setText(value); - text_entityproperties->setEnabled(true); - text_entityproperties->setText(properties->values()); + edit_entityradius->setEnabled(true); + value.setNum(properties->radius()); + edit_entityradius->setText(value); + + text_entityvalues->setEnabled(true); + text_entityvalues->setPlainText(properties->values()); text_subsections->setEnabled(true); - text_subsections->setText(properties->subsections()); + text_subsections->setPlainText(properties->subsections()); text_info->setEnabled(true); - text_info->setText(properties->info()); + text_info->setPlainText(properties->info()); } } |