Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/sidebar.cc')
-rw-r--r--src/sidebar.cc99
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());
}
}