X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshDlg.cxx;h=30b8dfe333df5da9449d488aa4ef17e070043f0f;hp=4b030bbc0025a2e8904db42b24f56794fc2273f6;hb=b0a908c0d20341651771d0249fb10882f54b2aad;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshDlg.cxx index 4b030bbc0..30b8dfe33 100644 --- a/src/SMESHGUI/SMESHGUI_MeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -149,16 +149,20 @@ void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& the myAvailableHyps[ theId ] = theHyps; bool enable = ! theHyps.isEmpty(); - if ( theId == Algo ) + if ( theId == Algo ) // fill list of algos { myHyp[ Algo ]->clear(); - myHyp[ Algo ]->addItem( tr( "NONE" ) ); - myHyp[ Algo ]->addItems( theHyps ); - myHyp[ Algo ]->setCurrentIndex( 0 ); + if ( enable ) + { + myHyp[ Algo ]->addItem( tr( "NONE" ) ); + myHyp[ Algo ]->addItems( theHyps ); + myHyp[ Algo ]->setCurrentIndex( 0 ); + } } - else { + else // enable buttons + { myCreateHyp[ theId ]->setEnabled( enable ); - myEditHyp[ theId ]->setEnabled( false ); + myEditHyp [ theId ]->setEnabled( false ); } myHyp[ theId ]->setEnabled( enable ); } @@ -166,21 +170,30 @@ void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& the //================================================================================ /*! * \brief Sets existing hypothesis - * \param theId - identifier of hypothesis (main or additional, see HypType enumeration) - * \param theHyps - list of available hypothesis names - * + * \param theId - identifier of hypothesis (main or additional, see HypType enumeration) + * \param theHyps - list of available hypothesis names + * \param theDefaultAvlbl - \c true means that the algorithm can with w/o hypothesis + * with some default parameters + * * Sets existing main or additional hypothesis for this tab */ //================================================================================ -void SMESHGUI_MeshTab::setExistingHyps( const int theId, const QStringList& theHyps ) +void SMESHGUI_MeshTab::setExistingHyps( const int theId, + const QStringList& theHyps, + bool theDefaultAvlbl) { if ( theId != Algo ) { + bool enable = ! myAvailableHyps[ theId ].isEmpty(); myHyp[ theId ]->clear(); - myHyp[ theId ]->addItem( tr( "NONE" ) ); - myHyp[ theId ]->addItems( theHyps ); - myHyp[ theId ]->setCurrentIndex( 0 ); - myHyp[ theId ]->setEnabled( !theHyps.isEmpty() ); + if ( enable ) + { + QString none = tr( theDefaultAvlbl ? "DEFAULT" : ( theId == AddHyp ) ? "NONE" : "NONE" ); + myHyp[ theId ]->addItem( none ); + myHyp[ theId ]->addItems( theHyps ); + myHyp[ theId ]->setCurrentIndex( 0 ); + } + myHyp [ theId ]->setEnabled( enable ); myEditHyp[ theId ]->setEnabled( false ); } } @@ -188,9 +201,9 @@ void SMESHGUI_MeshTab::setExistingHyps( const int theId, const QStringList& theH //================================================================================ /*! * \brief Adds hypothesis in combo box of available ones - * \param theId - identifier of hypothesis (main or additional, see HypType enumeration) - * \param theHyp - name of hypothesis to be added - * + * \param theId - identifier of hypothesis (main or additional, see HypType enumeration) + * \param theHyp - name of hypothesis to be added + * * Adds hypothesis in combo box of available ones. This method is called by operation * after creation of new hypothesis. */ @@ -364,6 +377,9 @@ SMESHGUI_MeshDlg::SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh // geometry createObject( tr( "GEOMETRY" ), mainFrame(), Geom ); myGeomPopup = 0; + // mesh type + QLabel* anMeshTypeLbl = new QLabel( tr( "MESH_TYPE" ), this ); + myMeshType = new QComboBox( this ); // Create tab widget @@ -398,10 +414,16 @@ SMESHGUI_MeshDlg::SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh aLay->addWidget( objectWg( Geom, Label ), 2, 0 ); aLay->addWidget( objectWg( Geom, Btn ), 2, 1 ); aLay->addWidget( objectWg( Geom, Control ), 2, 2 ); - aLay->addWidget( myTabWg, 4, 0, 1, 3 ); - aLay->addWidget( myHypoSetButton, 5, 0, 1, 3 ); + aLay->addWidget( anMeshTypeLbl, 3, 0 ); + aLay->addWidget( myMeshType, 3, 2 ); + aLay->addWidget( myTabWg, 5, 0, 1, 3 ); + aLay->addWidget( myHypoSetButton, 6, 0, 1, 3 ); aLay->setRowMinimumHeight( 3, 20 ); + myMeshType->clear(); + + // Connect signals and slots + connect( myMeshType, SIGNAL( activated( int ) ), SLOT( onChangedMeshType( int ) ) ); // Disable controls if necessary setObjectShown( Mesh, false ); if ( theToCreate ) @@ -615,3 +637,36 @@ int SMESHGUI_MeshDlg::getActiveObject() return i; return -1; } +//================================================================================ +/*! + * \brief Sets available types of mesh + * \param theTypeMesh - list of available types of mesh + */ +//================================================================================ +void SMESHGUI_MeshDlg::setAvailableMeshType( const QStringList& theTypeMesh ) +{ + myMeshType->clear(); + myMeshType->addItems(theTypeMesh); +} +//================================================================================ +/*! + * \brief Emits selectMeshType( const int, const int ) signal + * + * SLOT is called when a combo box "mesh type" is selected. + */ +//================================================================================ +void SMESHGUI_MeshDlg::onChangedMeshType( const int isIndex ) +{ + emit selectMeshType( Dim3D - myTabWg->currentIndex(), isIndex ); +} +//================================================================================ +/*! + * \brief Get current index types of mesh + */ +//================================================================================ +int SMESHGUI_MeshDlg::currentMeshType( ) +{ + return myMeshType->currentIndex( ); +} + +