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());
|
else o->setSelected(!o->isSelected());
|
||||||
gatherSelection();
|
gatherSelection();
|
||||||
}
|
}
|
||||||
foreach (Mesh * m, geometries)
|
|
||||||
m->selected_changed = true;
|
|
||||||
emitSelectionChanged();
|
emitSelectionChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,8 +195,38 @@ void Scene::selectObjects(QList<ObjectBase *> ol, bool add_to_selection) {
|
|||||||
o->setSelected(true);
|
o->setSelected(true);
|
||||||
}
|
}
|
||||||
gatherSelection();
|
gatherSelection();
|
||||||
foreach (Mesh * m, geometries)
|
emitSelectionChanged();
|
||||||
m->selected_changed = true;
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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();
|
emitSelectionChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ public:
|
|||||||
void setSelectionMode(SelectionMode mode) {sel_mode_ = mode;}
|
void setSelectionMode(SelectionMode mode) {sel_mode_ = mode;}
|
||||||
void selectObject(ObjectBase * o, bool add_to_selection = false);
|
void selectObject(ObjectBase * o, bool add_to_selection = false);
|
||||||
void selectObjects(QList<ObjectBase * > ol, bool add_to_selection = false);
|
void selectObjects(QList<ObjectBase * > ol, bool add_to_selection = false);
|
||||||
|
void selectObjectsByMesh();
|
||||||
|
void selectObjectsByMaterial();
|
||||||
void clearSelection();
|
void clearSelection();
|
||||||
QList<ObjectBase * > selectedObjects(bool top_only = false) const;
|
QList<ObjectBase * > selectedObjects(bool top_only = false) const;
|
||||||
ObjectBase * selectedObject() const;
|
ObjectBase * selectedObject() const;
|
||||||
|
|||||||
@@ -193,8 +193,6 @@ protected:
|
|||||||
void keyReleaseEvent(QKeyEvent * e);
|
void keyReleaseEvent(QKeyEvent * e);
|
||||||
void focusOutEvent(QFocusEvent *);
|
void focusOutEvent(QFocusEvent *);
|
||||||
|
|
||||||
void renderSelection();
|
|
||||||
|
|
||||||
void checkCaps();
|
void checkCaps();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ void RendererBase::reloadMaterials(Scene & scene) {
|
|||||||
tex_layers[i][m->bitmap_path] = 0;
|
tex_layers[i][m->bitmap_path] = 0;
|
||||||
}
|
}
|
||||||
int layers_count = tex_layers[0].size() + tex_layers[1].size(), cl = -1;
|
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) {
|
if (maps_hash != cur_maps_hash) {
|
||||||
maps_hash = cur_maps_hash;
|
maps_hash = cur_maps_hash;
|
||||||
textures_maps.resize(view, maps_size, layers_count);
|
textures_maps.resize(view, maps_size, layers_count);
|
||||||
|
|||||||
@@ -231,6 +231,8 @@ void SceneTree::checkButtons() {
|
|||||||
ui->buttonRemove->setEnabled(has_1);
|
ui->buttonRemove->setEnabled(has_1);
|
||||||
ui->buttonClone ->setEnabled(has_1);
|
ui->buttonClone ->setEnabled(has_1);
|
||||||
ui->buttonSelectParent->setEnabled(has_1);
|
ui->buttonSelectParent->setEnabled(has_1);
|
||||||
|
ui->buttonSelectByMesh->setEnabled(has_1);
|
||||||
|
ui->buttonSelectByMaterial->setEnabled(has_1);
|
||||||
ui->buttonGroup->setEnabled(has_m);
|
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() {
|
void SceneTree::on_buttonGroup_clicked() {
|
||||||
if (!view) return;
|
if (!view) return;
|
||||||
QList<ObjectBase*> sol = view->scene()->selectedObjects(true);
|
QList<ObjectBase*> sol = view->scene()->selectedObjects(true);
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ private slots:
|
|||||||
void on_buttonClone_clicked();
|
void on_buttonClone_clicked();
|
||||||
void on_buttonUpdate_clicked() {objectsTreeChanged();}
|
void on_buttonUpdate_clicked() {objectsTreeChanged();}
|
||||||
void on_buttonSelectParent_clicked();
|
void on_buttonSelectParent_clicked();
|
||||||
|
void on_buttonSelectByMesh_clicked();
|
||||||
|
void on_buttonSelectByMaterial_clicked();
|
||||||
void on_buttonGroup_clicked();
|
void on_buttonGroup_clicked();
|
||||||
|
|
||||||
void removeObjects();
|
void removeObjects();
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<string>Delete selected</string>
|
<string>Delete selected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<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>
|
<normaloff>:/icons/edit-delete.png</normaloff>:/icons/edit-delete.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
<string>Clone selected</string>
|
<string>Clone selected</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<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>
|
<normaloff>:/icons/edit-copy.png</normaloff>:/icons/edit-copy.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -129,6 +129,34 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -320,7 +348,7 @@
|
|||||||
<string>Force update</string>
|
<string>Force update</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<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>
|
<normaloff>:/icons/view-refresh.png</normaloff>:/icons/view-refresh.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -393,7 +421,9 @@
|
|||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<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"/>
|
<include location="../qglview.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
|
|||||||
Reference in New Issue
Block a user