git-svn-id: svn://db.shs.com.ru/libs@635 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -184,8 +184,6 @@ void Scene::selectObject(ObjectBase * o, bool add_to_selection) {
|
||||
else o->setSelected(!o->isSelected());
|
||||
gatherSelection();
|
||||
}
|
||||
foreach (Mesh * m, geometries)
|
||||
m->selected_changed = true;
|
||||
emitSelectionChanged();
|
||||
}
|
||||
|
||||
@@ -197,8 +195,38 @@ void Scene::selectObjects(QList<ObjectBase *> ol, bool add_to_selection) {
|
||||
o->setSelected(true);
|
||||
}
|
||||
gatherSelection();
|
||||
foreach (Mesh * m, geometries)
|
||||
m->selected_changed = true;
|
||||
emitSelectionChanged();
|
||||
}
|
||||
|
||||
|
||||
void Scene::selectObjectsByMesh() {
|
||||
QList<ObjectBase * > csl = selected_;
|
||||
QSet<Mesh*> sml;
|
||||
foreach (ObjectBase * o, csl)
|
||||
if (o->mesh())
|
||||
sml << o->mesh();
|
||||
QList<ObjectBase * > ol = root_->children(true);
|
||||
foreach (ObjectBase * o, ol) {
|
||||
if (sml.contains(o->mesh()))
|
||||
o->setSelected(true);
|
||||
}
|
||||
gatherSelection();
|
||||
emitSelectionChanged();
|
||||
}
|
||||
|
||||
|
||||
void Scene::selectObjectsByMaterial() {
|
||||
QList<ObjectBase * > csl = selected_;
|
||||
QSet<Material*> sml;
|
||||
foreach (ObjectBase * o, csl)
|
||||
if (o->material())
|
||||
sml << o->material();
|
||||
QList<ObjectBase * > ol = root_->children(true);
|
||||
foreach (ObjectBase * o, ol) {
|
||||
if (sml.contains(o->material()))
|
||||
o->setSelected(true);
|
||||
}
|
||||
gatherSelection();
|
||||
emitSelectionChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -72,6 +72,8 @@ public:
|
||||
void setSelectionMode(SelectionMode mode) {sel_mode_ = mode;}
|
||||
void selectObject(ObjectBase * o, bool add_to_selection = false);
|
||||
void selectObjects(QList<ObjectBase * > ol, bool add_to_selection = false);
|
||||
void selectObjectsByMesh();
|
||||
void selectObjectsByMaterial();
|
||||
void clearSelection();
|
||||
QList<ObjectBase * > selectedObjects(bool top_only = false) const;
|
||||
ObjectBase * selectedObject() const;
|
||||
|
||||
@@ -193,8 +193,6 @@ protected:
|
||||
void keyReleaseEvent(QKeyEvent * e);
|
||||
void focusOutEvent(QFocusEvent *);
|
||||
|
||||
void renderSelection();
|
||||
|
||||
void checkCaps();
|
||||
|
||||
private:
|
||||
|
||||
@@ -140,7 +140,7 @@ void RendererBase::reloadMaterials(Scene & scene) {
|
||||
tex_layers[i][m->bitmap_path] = 0;
|
||||
}
|
||||
int layers_count = tex_layers[0].size() + tex_layers[1].size(), cl = -1;
|
||||
uint cur_maps_hash = qHash(tex_layers[0].keys()) ^ qHash(tex_layers[1].keys());
|
||||
uint cur_maps_hash = qHash(tex_layers[0].keys()) ^ (qHash(tex_layers[1].keys()) + 0xF00FF00F);
|
||||
if (maps_hash != cur_maps_hash) {
|
||||
maps_hash = cur_maps_hash;
|
||||
textures_maps.resize(view, maps_size, layers_count);
|
||||
|
||||
@@ -231,6 +231,8 @@ void SceneTree::checkButtons() {
|
||||
ui->buttonRemove->setEnabled(has_1);
|
||||
ui->buttonClone ->setEnabled(has_1);
|
||||
ui->buttonSelectParent->setEnabled(has_1);
|
||||
ui->buttonSelectByMesh->setEnabled(has_1);
|
||||
ui->buttonSelectByMaterial->setEnabled(has_1);
|
||||
ui->buttonGroup->setEnabled(has_m);
|
||||
}
|
||||
|
||||
@@ -350,6 +352,16 @@ void SceneTree::on_buttonSelectParent_clicked() {
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_buttonSelectByMesh_clicked() {
|
||||
view->scene()->selectObjectsByMesh();
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_buttonSelectByMaterial_clicked() {
|
||||
view->scene()->selectObjectsByMaterial();
|
||||
}
|
||||
|
||||
|
||||
void SceneTree::on_buttonGroup_clicked() {
|
||||
if (!view) return;
|
||||
QList<ObjectBase*> sol = view->scene()->selectedObjects(true);
|
||||
|
||||
@@ -64,6 +64,8 @@ private slots:
|
||||
void on_buttonClone_clicked();
|
||||
void on_buttonUpdate_clicked() {objectsTreeChanged();}
|
||||
void on_buttonSelectParent_clicked();
|
||||
void on_buttonSelectByMesh_clicked();
|
||||
void on_buttonSelectByMaterial_clicked();
|
||||
void on_buttonGroup_clicked();
|
||||
|
||||
void removeObjects();
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<string>Delete selected</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="widgets.qrc">
|
||||
<iconset resource="../../qad/utils/qad_utils.qrc">
|
||||
<normaloff>:/icons/edit-delete.png</normaloff>:/icons/edit-delete.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -97,7 +97,7 @@
|
||||
<string>Clone selected</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="widgets.qrc">
|
||||
<iconset resource="../../qad/utils/qad_utils.qrc">
|
||||
<normaloff>:/icons/edit-copy.png</normaloff>:/icons/edit-copy.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -129,6 +129,34 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="buttonSelectByMesh">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Select by mesh</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../qglview.qrc">
|
||||
<normaloff>:/icons/type-geo.png</normaloff>:/icons/type-geo.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="buttonSelectByMaterial">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Select by material</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../../qad/blockview/qad_blockview.qrc">
|
||||
<normaloff>:/icons/format-fill-color.png</normaloff>:/icons/format-fill-color.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -320,7 +348,7 @@
|
||||
<string>Force update</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../qglview.qrc">
|
||||
<iconset resource="../../qcd_utils/pult/cdpult.qrc">
|
||||
<normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -393,7 +421,9 @@
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="widgets.qrc"/>
|
||||
<include location="../../qad/utils/qad_utils.qrc"/>
|
||||
<include location="../../qad/blockview/qad_blockview.qrc"/>
|
||||
<include location="../../qcd_utils/pult/cdpult.qrc"/>
|
||||
<include location="../qglview.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
|
||||
Reference in New Issue
Block a user