git-svn-id: svn://db.shs.com.ru/libs@705 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -103,6 +103,7 @@ QList<QAction *> SceneTree::actionsSelection() {
|
||||
<< ui->actionGroup << ui->actionClone << newSeparator()
|
||||
<< ui->actionSelect_parent << ui->actionSelect_by_mesh << ui->actionSelect_by_material << newSeparator()
|
||||
<< ui->actionTransfer_transform_to_children << newSeparator()
|
||||
<< ui->actionActive_camera << ui->actionDefault_camera << newSeparator()
|
||||
<< ui->actionRemove;
|
||||
return ret;
|
||||
}
|
||||
@@ -165,6 +166,8 @@ void SceneTree::makeObjetTree(ObjectBase * o, QTreeWidgetItem * ti) {
|
||||
case ObjectBase::glCamera:
|
||||
t = otCamera;
|
||||
ci->setIcon(cName, icon_camera);
|
||||
ci->setText(cVis, (co == view->camera()) ? "*" : "");
|
||||
cam_items << ci;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
@@ -217,6 +220,16 @@ void SceneTree::materialsChanged() {
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::cameraChanged() {
|
||||
if (!view) return;
|
||||
foreach (QTreeWidgetItem * i, cam_items) {
|
||||
ObjectBase * o = itemObject(i);
|
||||
if (!o) continue;
|
||||
i->setText(cVis, (o == view->camera()) ? "*" : "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool SceneTree::filterTree(QTreeWidgetItem * ti, const QString & filter, int types) {
|
||||
bool ret = false;
|
||||
for (int i = 0; i < ti->childCount(); ++i) {
|
||||
@@ -262,6 +275,7 @@ void SceneTree::checkActions() {
|
||||
ui->actionSelect_parent->setEnabled(has_1);
|
||||
ui->actionSelect_by_mesh->setEnabled(has_1);
|
||||
ui->actionSelect_by_material->setEnabled(has_1);
|
||||
ui->actionActive_camera->setEnabled(has_1);
|
||||
}
|
||||
|
||||
|
||||
@@ -299,6 +313,11 @@ void SceneTree::__objectDeleted(ObjectBase * o) {
|
||||
geo_items.removeAt(i);
|
||||
--i;
|
||||
}
|
||||
for (int i = 0; i < cam_items.size(); ++i)
|
||||
if (itemObject(cam_items[i]) == o) {
|
||||
cam_items.removeAt(i);
|
||||
--i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -396,6 +415,23 @@ void SceneTree::on_actionTransfer_transform_to_children_triggered() {
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_actionActive_camera_triggered() {
|
||||
if (!view) return;
|
||||
ObjectBase * o = view->scene()->selectedObject();
|
||||
if (!o) return;
|
||||
if (o->type() != ObjectBase::glCamera) return;
|
||||
view->setCamera((Camera *)o);
|
||||
cameraChanged();
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_actionDefault_camera_triggered() {
|
||||
if (!view) return;
|
||||
view->setDefaultCamera();
|
||||
cameraChanged();
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_actionSelect_parent_triggered() {
|
||||
if (!view) return;
|
||||
ObjectBaseList sol = view->scene()->selectedObjects(true);
|
||||
@@ -448,6 +484,7 @@ void SceneTree::objectsTreeChanged() {
|
||||
int vpos = ui->treeObjects->verticalScrollBar()->value();
|
||||
expanded_.clear();
|
||||
geo_items.clear();
|
||||
cam_items.clear();
|
||||
rememberExpanded(ui->treeObjects->invisibleRootItem());
|
||||
block_tree = true;
|
||||
ui->treeObjects->clear();
|
||||
|
||||
Reference in New Issue
Block a user