From 41d989fa62050272944cfd6fbc3115a5a200bde0 Mon Sep 17 00:00:00 2001 From: mpa Date: Wed, 17 Dec 2014 17:29:10 +0300 Subject: [PATCH] 0022768: [EDF] Model inspector: added documentation --- doc/salome/gui/GEOM/images/inspect_object.png | Bin 0 -> 29765 bytes .../GEOM/input/inspect_object_operation.doc | 24 ++++ .../gui/GEOM/input/repairing_operations.doc | 2 + src/GEOMGUI/GEOM_msg_en.ts | 8 -- src/GEOMGUI/GEOM_msg_fr.ts | 8 -- src/GEOMGUI/GEOM_msg_ja.ts | 8 -- src/RepairGUI/RepairGUI_InspectObjectDlg.cxx | 110 +++++++++++++++--- src/RepairGUI/RepairGUI_InspectObjectDlg.h | 3 + 8 files changed, 124 insertions(+), 39 deletions(-) create mode 100644 doc/salome/gui/GEOM/images/inspect_object.png create mode 100755 doc/salome/gui/GEOM/input/inspect_object_operation.doc diff --git a/doc/salome/gui/GEOM/images/inspect_object.png b/doc/salome/gui/GEOM/images/inspect_object.png new file mode 100644 index 0000000000000000000000000000000000000000..09d90d0699337e4314fb5409490731e33a5af3f9 GIT binary patch literal 29765 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/input/inspect_object_operation.doc b/doc/salome/gui/GEOM/input/inspect_object_operation.doc new file mode 100755 index 000000000..80fa31544 --- /dev/null +++ b/doc/salome/gui/GEOM/input/inspect_object_operation.doc @@ -0,0 +1,24 @@ +/*! + +\page inspect_object_operation_page Inspect Object + +This operation browses the contents of the selected shape. + +To Inspect Object in the Main Menu select Repair - > Inspect Object. + +\image html inspect_object.png + +In this dialog: +- Click on the "Arrow" button and select in the Object Browser or in the viewer a shape (compound or single solid); +- Show/hide sub-shape in the 3D viewer, by pressing “eye” icon in the first column of the tree view; +- Show all/hide all sub-shapes in the 3D viewer, by pressing “eye” icon in the first column of the tree header; +- Specify name for selected item by double-clicking on the item; + +- Show all selected items in the 3D viewer, by pressing Show Selected button; +- Show selected items in the 3D viewer and erase all currently shown objects, by pressing Show Only Selected button; +- Hide selected items from the 3D viewer, by pressing Hide Selected button; +- Publish selected shapes in the study, by pressing Publish Selected button; +- Close dialog box, by pressing Close button; +- Open context help page on this dialog box in the Help browser, by pressing Help button. + +*/ diff --git a/doc/salome/gui/GEOM/input/repairing_operations.doc b/doc/salome/gui/GEOM/input/repairing_operations.doc index b53ed10d0..6b3fd3486 100644 --- a/doc/salome/gui/GEOM/input/repairing_operations.doc +++ b/doc/salome/gui/GEOM/input/repairing_operations.doc @@ -35,6 +35,8 @@ removes selected vertices from a given wire in case if adjacent edges are C1 continuous.
  • \subpage union_faces_operation_page "Union faces" - unites on a given shape all faces sharing the same surface.
  • +
  • \subpage inspect_object_operation_page "Inspect Object" - +browses the contents of the selected shape.
  • */ diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts index 0909447d0..ce75a2e66 100644 --- a/src/GEOMGUI/GEOM_msg_en.ts +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -7023,14 +7023,6 @@ Do you want to create new material? GEOM_INSPECT_OBJECT_NAME Name - - RENAME_COMPONENT - Change component name - - - COMPONENT_NAME - Name: - GEOMGUI_CreationInfoWdg diff --git a/src/GEOMGUI/GEOM_msg_fr.ts b/src/GEOMGUI/GEOM_msg_fr.ts index 024c2dd32..b52ab0590 100644 --- a/src/GEOMGUI/GEOM_msg_fr.ts +++ b/src/GEOMGUI/GEOM_msg_fr.ts @@ -6987,14 +6987,6 @@ Voulez-vous en créer un nouveau ? GEOM_INSPECT_OBJECT_NAME Name - - RENAME_COMPONENT - Changer le nom de la composante - - - COMPONENT_NAME - Nom: - GEOMGUI_CreationInfoWdg diff --git a/src/GEOMGUI/GEOM_msg_ja.ts b/src/GEOMGUI/GEOM_msg_ja.ts index 13c65de93..a2c2a9905 100644 --- a/src/GEOMGUI/GEOM_msg_ja.ts +++ b/src/GEOMGUI/GEOM_msg_ja.ts @@ -6964,14 +6964,6 @@ GEOM_INSPECT_OBJECT_NAME Name - - RENAME_COMPONENT - コンポーネントの名前変更 - - - COMPONENT_NAME - コンポーネント名 - GEOMGUI_CreationInfoWdg diff --git a/src/RepairGUI/RepairGUI_InspectObjectDlg.cxx b/src/RepairGUI/RepairGUI_InspectObjectDlg.cxx index 77b3588bb..0d8300bb5 100644 --- a/src/RepairGUI/RepairGUI_InspectObjectDlg.cxx +++ b/src/RepairGUI/RepairGUI_InspectObjectDlg.cxx @@ -23,6 +23,7 @@ // GEOM includes #include #include +#include // GUI includes #include @@ -46,10 +47,10 @@ #include #include #include -#include +#include //================================================================================= -// class : RepairGUI_InspectObjectDlg +// class : RepairGUI_InspectObjectDlg::TreeWidgetItem // purpose : class for "Inspect Object" tree item creation //================================================================================= class RepairGUI_InspectObjectDlg::TreeWidgetItem : public QTreeWidgetItem @@ -88,6 +89,7 @@ RepairGUI_InspectObjectDlg::TreeWidgetItem::TreeWidgetItem( QTreeWidgetItem* par myShape( shape ) { myIO = new SALOME_InteractiveObject( entry.toAscii(), "GEOM", "TEMP_IO" ); + setFlags( flags() | Qt::ItemIsEditable ); } RepairGUI_InspectObjectDlg::TreeWidgetItem::~TreeWidgetItem() @@ -115,6 +117,46 @@ Handle(SALOME_InteractiveObject) RepairGUI_InspectObjectDlg::TreeWidgetItem::get return myIO; } +//================================================================================= +// class : RepairGUI_InspectObjectDlg::Delegate +// purpose : class for "Inspect Object" tree item editing +//================================================================================= +class RepairGUI_InspectObjectDlg::Delegate : public QItemDelegate +{ +public: + Delegate( QObject* = 0 ); + ~Delegate(); + + void setEditorData( QWidget*, const QModelIndex& ) const; + void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const; +}; + +RepairGUI_InspectObjectDlg::Delegate::Delegate( QObject* parent ) +: QItemDelegate( parent ) +{ +} + +RepairGUI_InspectObjectDlg::Delegate::~Delegate() +{ +} + +void RepairGUI_InspectObjectDlg::Delegate::setEditorData( QWidget* editor, + const QModelIndex& index ) const +{ + QItemDelegate::setEditorData( editor, index ); + editor->setProperty( "___name___", editor->property( "text" ) ); +} + +void RepairGUI_InspectObjectDlg::Delegate::setModelData( QWidget* editor, + QAbstractItemModel* model, + const QModelIndex& index ) const +{ + QString aNewName = editor->property( "text" ).toString(); + if( aNewName.trimmed().isEmpty() ) + editor->setProperty( "text", editor->property( "___name___" ) ); + QItemDelegate::setModelData( editor, model, index ); +} + //================================================================================= // class : RepairGUI_InspectObjectDlg() // purpose : Constructs a RepairGUI_InspectObjectDlg which is a child of 'parent'. @@ -180,6 +222,9 @@ RepairGUI_InspectObjectDlg::RepairGUI_InspectObjectDlg( SUIT_Desktop* parent ) myTreeObjects->header()->setMovable( false ); myTreeObjects->header()->setResizeMode( 1, QHeaderView::ResizeToContents ); myTreeObjects->setSelectionMode( QAbstractItemView::ExtendedSelection ); + myTreeObjects->setEditTriggers( QAbstractItemView::DoubleClicked | QAbstractItemView::EditKeyPressed ); + // set custom item delegate + myTreeObjects->setItemDelegate( new Delegate( myTreeObjects ) ); /********************** Buttons **********************/ @@ -217,8 +262,8 @@ RepairGUI_InspectObjectDlg::RepairGUI_InspectObjectDlg( SUIT_Desktop* parent ) connect( myTreeObjects, SIGNAL( itemClicked( QTreeWidgetItem*, int ) ), this, SLOT( onItemClicked( QTreeWidgetItem*, int ) ) ); - connect( myTreeObjects, SIGNAL( itemDoubleClicked( QTreeWidgetItem*, int ) ), - this, SLOT( onItemDoubleClicked( QTreeWidgetItem*, int ) ) ); + connect( myTreeObjects, SIGNAL( itemChanged( QTreeWidgetItem*, int ) ), + this, SLOT( onItemChanged( QTreeWidgetItem*, int ) ) ); connect( myTreeObjects, SIGNAL( itemExpanded ( QTreeWidgetItem* ) ), this, SLOT( onItemExpanded( QTreeWidgetItem* ) ) ); connect( myTreeObjects, SIGNAL( itemSelectionChanged() ), @@ -446,20 +491,22 @@ void RepairGUI_InspectObjectDlg::onItemClicked( QTreeWidgetItem* theItem, int th } //================================================================================= -// function : onItemDoubleClicked() -// purpose : called when tree item was double clicked +// function : onItemChanged() +// purpose : called when tree item was changed //================================================================================= -void RepairGUI_InspectObjectDlg::onItemDoubleClicked( QTreeWidgetItem* theItem, int theColumn ) +void RepairGUI_InspectObjectDlg::onItemChanged( QTreeWidgetItem* theItem, int theColumn ) { - if( theColumn!= 0 || !( theItem->flags() & Qt::ItemIsSelectable ) ) + if( theColumn!= 0 || !( theItem->flags() & Qt::ItemIsEditable ) ) return; - bool bOk; - QString label = QInputDialog::getText( this, RepairGUI_InspectObjectDlg::tr( "RENAME_COMPONENT" ), - RepairGUI_InspectObjectDlg::tr ( "COMPONENT_NAME" ), QLineEdit::Normal, - theItem->text(0), &bOk ); - if ( bOk && !label.isEmpty() ) - theItem->setText( 0, label ); + // rename the same items in the tree + QTreeWidgetItemIterator it( myTreeObjects ); + while(*it) { + TreeWidgetItem* anItem = dynamic_cast(*it); + if( anItem->getShape().IsSame( dynamic_cast( theItem )->getShape() ) ) + anItem->setText( 0, theItem->text(0) ); + ++it; + } } //================================================================================= @@ -616,6 +663,39 @@ void RepairGUI_InspectObjectDlg::clickOnHide() //================================================================================= void RepairGUI_InspectObjectDlg::clickOnPublish() { + _PTR(Study) studyDS = dynamic_cast( myApp->activeStudy() )->studyDS(); + + // find main object + TreeWidgetItem* aMainItem = dynamic_cast( myTreeObjects->topLevelItem(0) ); + GEOM::GEOM_Object_var aMainObject = GEOMBase::ConvertIOinGEOMObject( aMainItem->getIO() ); + + // find unique indices of selected objects + QList selectedItems = myTreeObjects->selectedItems(); + QMap< int, QString > anIndices; + GEOM::ListOfLong_var anArray = new GEOM::ListOfLong; + anArray->length( selectedItems.size() ); + int j = 0; + for( int i = 0; i < selectedItems.size(); i++ ) { + TreeWidgetItem* anItem = dynamic_cast( selectedItems.at(i) ); + int anIndex = GEOMBase::GetIndex( anItem->getShape(), aMainItem->getShape() ); + if( anIndices.find( anIndex ) == anIndices.end() && + anItem != aMainItem ) { + anIndices[ anIndex ] = anItem->text(0); + anArray[j++] = anIndex; + } + } + anArray->length(j); + + // get selected sub-shapes + GEOM::GEOM_IShapesOperations_var anOper = getGeomEngine()->GetIShapesOperations( getStudyId() ); + GEOM::ListOfGO_var aList = anOper->MakeSubShapes( aMainObject, anArray ); + + // publish sub-shapes + for( int i = 0; i < aList->length(); i++ ) + GeometryGUI::GetGeomGen()->AddInStudy( GeometryGUI::ClientStudyToStudy( studyDS ), aList[i], + anIndices.values().at(i).toStdString().c_str(), aMainObject ); + + updateObjBrowser(); } //================================================================================= @@ -624,5 +704,5 @@ void RepairGUI_InspectObjectDlg::clickOnPublish() //================================================================================= void RepairGUI_InspectObjectDlg::clickOnHelp() { - myApp->onHelpContextModule( "GEOM", "inspect_object_page.html" ); + myApp->onHelpContextModule( "GEOM", "inspect_object_operation_page.html" ); } diff --git a/src/RepairGUI/RepairGUI_InspectObjectDlg.h b/src/RepairGUI/RepairGUI_InspectObjectDlg.h index bf5280105..43cb69c61 100644 --- a/src/RepairGUI/RepairGUI_InspectObjectDlg.h +++ b/src/RepairGUI/RepairGUI_InspectObjectDlg.h @@ -27,12 +27,14 @@ #include #include #include +#include class RepairGUI_InspectObjectDlg : public QDialog, public GEOMBase_Helper { Q_OBJECT class TreeWidgetItem; + class Delegate; public: RepairGUI_InspectObjectDlg( SUIT_Desktop* ); @@ -42,6 +44,7 @@ private slots: void onEditMainShape(); void onItemClicked( QTreeWidgetItem*, int ); + void onItemChanged( QTreeWidgetItem*, int ); void onItemSelectionChanged(); void onItemExpanded( QTreeWidgetItem* ); void onHeaderClicked( int ); -- 2.39.2