Revert back previous bad integration

This commit is contained in:
vsr 2010-11-04 12:48:58 +00:00
parent 6e55d5dca6
commit 8693dba253
2 changed files with 47 additions and 239 deletions

View File

@ -28,12 +28,9 @@
#include "SMESHGUI_VTKUtils.h" #include "SMESHGUI_VTKUtils.h"
#include "SMESHGUI_MeshUtils.h" #include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_MeshInfosBox.h" #include "SMESHGUI_MeshInfosBox.h"
#include "SMESH_TypeFilter.hxx"
#include "SMESH_LogicalFilter.hxx"
// SALOME GUI includes // SALOME GUI includes
#include <LightApp_SelectionMgr.h> #include <LightApp_SelectionMgr.h>
#include <SalomeApp_Tools.h>
#include <SUIT_Desktop.h> #include <SUIT_Desktop.h>
#include <SUIT_MessageBox.h> #include <SUIT_MessageBox.h>
@ -56,17 +53,14 @@
#include <QLabel> #include <QLabel>
#include <QPixmap> #include <QPixmap>
#include <QGroupBox> #include <QGroupBox>
#include <QRadioButton>
#include <QPushButton> #include <QPushButton>
#include <QLineEdit>
#include <QCheckBox>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QGridLayout>
// MESH includes // MESH includes
#include "SMDSAbs_ElementType.hxx" #include "SMDSAbs_ElementType.hxx"
#include "SMDSAbs_ElementType.hxx" #include "SMDSAbs_ElementType.hxx"
#define SPACING 6 #define SPACING 6
#define MARGIN 11 #define MARGIN 11
@ -154,97 +148,6 @@ void SMESHGUI_Make2DFrom3DDlg::SetMeshInfo(const SMESH::long_array& theInfo)
myFullInfo->SetMeshInfo( theInfo ); myFullInfo->SetMeshInfo( theInfo );
} }
// =========================================================================================
/*!
* \brief Copy Mesh dialog box
*/
//=======================================================================
SMESHGUI_CopyMeshDlg::SMESHGUI_CopyMeshDlg( QWidget* parent )
: SMESHGUI_Dialog( parent, false, true, OK | Apply | Close | Help )
{
setWindowTitle( tr("CAPTION") );
// mesh
setObjectPixmap( "SMESH", tr( "ICON_SELECT" ) );
createObject( tr( "MESH" ), mainFrame(), Mesh );
// mode
QGroupBox* aModeGrp = new QGroupBox( tr( "MODE" ), mainFrame() );
QHBoxLayout* aModeGrpLayout = new QHBoxLayout( aModeGrp );
aModeGrpLayout->setMargin( MARGIN );
aModeGrpLayout->setSpacing( SPACING );
QRadioButton* a2dFrom3dRB = new QRadioButton( tr( "2D_FROM_3D" ), aModeGrp );
QRadioButton* a1dFrom3dRB = new QRadioButton( tr( "1D_FROM_3D" ), aModeGrp );
QRadioButton* a1dFrom2dRB = new QRadioButton( tr( "1D_FROM_2D" ), aModeGrp );
aModeGrpLayout->addWidget( a2dFrom3dRB );
aModeGrpLayout->addWidget( a1dFrom3dRB );
aModeGrpLayout->addWidget( a1dFrom2dRB );
// target
QGroupBox* aTargetGrp = new QGroupBox( tr( "TARGET" ), mainFrame() );
QGridLayout* aTargetGrpLayout = new QGridLayout( aTargetGrp );
aTargetGrpLayout->setMargin( MARGIN );
aTargetGrpLayout->setSpacing( SPACING );
myThisMeshRB = new QRadioButton( tr( "THIS_MESH" ), aTargetGrp );
myNewMeshRB = new QRadioButton( tr( "NEW_MESH" ), aTargetGrp );
myMeshName = new QLineEdit( aTargetGrp );
myCopyCheck = new QCheckBox( tr( "COPY_SRC" ), aTargetGrp );
myMissingCheck = new QCheckBox( tr( "MISSING_ONLY" ), aTargetGrp );
aTargetGrpLayout->addWidget( myThisMeshRB, 0, 0 );
aTargetGrpLayout->addWidget( myNewMeshRB, 1, 0 );
aTargetGrpLayout->addWidget( myMeshName, 1, 1 );
aTargetGrpLayout->addWidget( myCopyCheck, 2, 0 );
aTargetGrpLayout->addWidget( myMissingCheck, 2, 1 );
myGroupCheck = new QCheckBox( tr( "CREATE_GROUP" ), mainFrame() );
myGroupName = new QLineEdit( mainFrame() );
// layout
QGridLayout* aDlgLay = new QGridLayout( mainFrame() );
aDlgLay->setMargin( 0 );
aDlgLay->setSpacing( SPACING );
aDlgLay->addWidget( objectWg( Mesh, Label ), 0, 0 );
aDlgLay->addWidget( objectWg( Mesh, Btn ), 0, 1 );
aDlgLay->addWidget( objectWg( Mesh, Control ), 0, 2 );
aDlgLay->addWidget( aModeGrp, 1, 0, 1, 3 );
aDlgLay->addWidget( aTargetGrp, 2, 0, 1, 3 );
aDlgLay->addWidget( myGroupCheck, 3, 0 );
aDlgLay->addWidget( myGroupName, 3, 1, 1, 2 );
//aDlgLay->setStretchFactor(aMainFrame, 1);
connect( myThisMeshRB, SIGNAL( clicked() ), this, SLOT( onTargetChanged() ) );
connect( myNewMeshRB, SIGNAL( clicked() ), this, SLOT( onTargetChanged() ) );
connect( myGroupCheck, SIGNAL( clicked() ), this, SLOT( onGroupChecked() ) );
a2dFrom3dRB->setChecked( true );
myThisMeshRB->setChecked( true );
onTargetChanged();
onGroupChecked();
enableControls( false );
}
SMESHGUI_CopyMeshDlg::~SMESHGUI_CopyMeshDlg()
{
}
void SMESHGUI_CopyMeshDlg::enableControls( bool on )
{
printf("SMESHGUI_CopyMeshDlg::enableControls:%d\n",on);
setButtonEnabled( on, QtxDialog::OK | QtxDialog::Apply );
}
void SMESHGUI_CopyMeshDlg::onTargetChanged()
{
myMeshName->setEnabled( myNewMeshRB->isChecked() );
myCopyCheck->setEnabled( myNewMeshRB->isChecked() );
myMissingCheck->setEnabled( myNewMeshRB->isChecked() );
}
void SMESHGUI_CopyMeshDlg::onGroupChecked()
{
myGroupName->setEnabled( myGroupCheck->isChecked() );
}
//================================================================================ //================================================================================
/*! /*!
* \brief Constructor * \brief Constructor
@ -252,8 +155,9 @@ void SMESHGUI_CopyMeshDlg::onGroupChecked()
//================================================================================ //================================================================================
SMESHGUI_Make2DFrom3DOp::SMESHGUI_Make2DFrom3DOp() SMESHGUI_Make2DFrom3DOp::SMESHGUI_Make2DFrom3DOp()
: SMESHGUI_SelectionOp() : SMESHGUI_Operation()
{ {
myDlg = new SMESHGUI_Make2DFrom3DDlg(desktop());
} }
//================================================================================ //================================================================================
@ -264,19 +168,6 @@ SMESHGUI_Make2DFrom3DOp::SMESHGUI_Make2DFrom3DOp()
SMESHGUI_Make2DFrom3DOp::~SMESHGUI_Make2DFrom3DOp() SMESHGUI_Make2DFrom3DOp::~SMESHGUI_Make2DFrom3DOp()
{ {
if ( myDlg )
delete myDlg;
}
//================================================================================
/*!
* \brief Gets dialog of this operation
* \retval LightApp_Dialog* - pointer to dialog of this operation
*/
//================================================================================
LightApp_Dialog* SMESHGUI_Make2DFrom3DOp::dlg() const
{
return myDlg;
} }
//================================================================================ //================================================================================
@ -287,25 +178,39 @@ LightApp_Dialog* SMESHGUI_Make2DFrom3DOp::dlg() const
void SMESHGUI_Make2DFrom3DOp::startOperation() void SMESHGUI_Make2DFrom3DOp::startOperation()
{ {
if( !myDlg ) myMesh = SMESH::SMESH_Mesh::_nil();
myDlg = new SMESHGUI_CopyMeshDlg( desktop() );
mySrc = SMESH::SMESH_IDSource::_nil(); // check selection
LightApp_SelectionMgr *Sel = selectionMgr();
SALOME_ListIO selected; Sel->selectedObjects( selected );
myHelpFileName = "copy_mesh_page.html"; int nbSel = selected.Extent();
if (nbSel != 1) {
SUIT_MessageBox::warning(desktop(),
tr("SMESH_WRN_WARNING"),
tr("SMESH_WRN_NO_AVAILABLE_DATA"));
onCancel();
return;
}
SMESHGUI_SelectionOp::startOperation(); Handle(SALOME_InteractiveObject) anIO = selected.First();
myMesh = SMESH::GetMeshByIO(anIO);
if (myMesh->_is_nil()) {
SUIT_MessageBox::warning(desktop(),
tr("SMESH_WRN_WARNING"),
tr("SMESH_WRN_NO_AVAILABLE_DATA"));
onCancel();
return;
}
SMESHGUI_Operation::startOperation();
myDlg->activateObject( SMESHGUI_CopyMeshDlg::Mesh );
myDlg->show();
selectionDone();
/*
// backup mesh info before 2D mesh computation // backup mesh info before 2D mesh computation
SMESH::long_array_var anOldInfo = myMesh->GetMeshInfo(); SMESH::long_array_var anOldInfo = myMesh->GetMeshInfo();
if (0){//!compute2DMesh()) { if (!compute2DMesh()) {
SUIT_MessageBox::warning(desktop(), SUIT_MessageBox::warning(desktop(),
tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_WARNING"),
tr("SMESH_WRN_COMPUTE_FAILED")); tr("SMESH_WRN_COMPUTE_FAILED"));
@ -324,62 +229,11 @@ void SMESHGUI_Make2DFrom3DOp::startOperation()
// show computated result // show computated result
_PTR(SObject) aMeshSObj = SMESH::FindSObject(myMesh); _PTR(SObject) aMeshSObj = SMESH::FindSObject(myMesh);
if ( aMeshSObj ) if ( aMeshSObj )
;//myDlg->SetMeshName( aMeshSObj->GetName().c_str() ); myDlg->SetMeshName( aMeshSObj->GetName().c_str() );
//myDlg->SetMeshInfo( aNewInfo ); myDlg->SetMeshInfo( aNewInfo );
myDlg->show(); myDlg->show(); /*exec();*/
//commit(); commit();
//SMESHGUI::Modified(); SMESHGUI::Modified();
*/
}
//================================================================================
/*!
* \brief Updates dialog's look and feel
*
* Virtual method redefined from the base class updates dialog's look and feel
*/
//================================================================================
void SMESHGUI_Make2DFrom3DOp::selectionDone()
{
bool on = false;
if ( dlg()->isVisible() ) {
SMESHGUI_SelectionOp::selectionDone();
try {
QString entry = myDlg->selectedObject( SMESHGUI_CopyMeshDlg::Mesh );
_PTR(SObject) sobj = studyDS()->FindObjectID( entry.toLatin1().constData() );
if ( sobj ) {
SMESH::SMESH_IDSource_var obj = SMESH::SObjectToInterface<SMESH::SMESH_IDSource>( sobj );
on = !obj->_is_nil();
}
}
catch ( const SALOME::SALOME_Exception& S_ex ) {
SalomeApp_Tools::QtCatchCorbaException( S_ex );
}
catch ( ... ) {
}
}
myDlg->enableControls( on );
}
//================================================================================
/*!
* \brief Creates selection filter
* \param theId - identifier of current selection widget
* \retval SUIT_SelectionFilter* - pointer to the created filter or null
*
* Creates selection filter in accordance with identifier of current selection widget
*/
//================================================================================
SUIT_SelectionFilter* SMESHGUI_Make2DFrom3DOp::createFilter( const int theId ) const
{
SUIT_SelectionFilter* f = 0;
if ( theId == SMESHGUI_CopyMeshDlg::Mesh ) {
QList<SUIT_SelectionFilter*> filters;
filters.append( new SMESH_TypeFilter( MESHorSUBMESH ) );
filters.append( new SMESH_TypeFilter( GROUP ) );
f = new SMESH_LogicalFilter( filters, SMESH_LogicalFilter::LO_OR );
}
return f;
} }
//================================================================================ //================================================================================
@ -390,12 +244,7 @@ SUIT_SelectionFilter* SMESHGUI_Make2DFrom3DOp::createFilter( const int theId ) c
bool SMESHGUI_Make2DFrom3DOp::compute2DMesh() bool SMESHGUI_Make2DFrom3DOp::compute2DMesh()
{ {
// SUIT_OverrideCursor wc; SUIT_OverrideCursor wc;
// SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
// return aMeshEditor->Make2DMeshFrom3D(); return aMeshEditor->Make2DMeshFrom3D();
}
bool SMESHGUI_Make2DFrom3DOp::onApply()
{
return false;
} }

View File

@ -28,16 +28,13 @@
#include "SMESH_SMESHGUI.hxx" #include "SMESH_SMESHGUI.hxx"
#include "SMESHGUI_Dialog.h" #include "SMESHGUI_Dialog.h"
#include "SMESHGUI_SelectionOp.h" #include "SMESHGUI_Operation.h"
// IDL includes // IDL includes
#include <SALOMEconfig.h> #include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Mesh) #include CORBA_SERVER_HEADER(SMESH_Mesh)
class QFrame; class QFrame;
class QCheckBox;
class QLineEdit;
class QRadioButton;
class SMESHGUI_MeshInfosBox; class SMESHGUI_MeshInfosBox;
/*! /*!
@ -48,79 +45,41 @@ class SMESHGUI_Make2DFrom3DDlg : public SMESHGUI_Dialog
{ {
Q_OBJECT Q_OBJECT
public: public:
SMESHGUI_Make2DFrom3DDlg( QWidget* ); SMESHGUI_Make2DFrom3DDlg( QWidget* );
virtual ~SMESHGUI_Make2DFrom3DDlg(); virtual ~SMESHGUI_Make2DFrom3DDlg();
void SetMeshName(const QString& theName); void SetMeshName(const QString& theName);
void SetMeshInfo(const SMESH::long_array& theInfo); void SetMeshInfo(const SMESH::long_array& theInfo);
private: private:
QFrame* createMainFrame( QWidget* ); QFrame* createMainFrame( QWidget* );
private: private:
QLabel* myMeshName; QLabel* myMeshName;
SMESHGUI_MeshInfosBox* myFullInfo; SMESHGUI_MeshInfosBox* myFullInfo;
}; };
/*!
* \brief Dialog to show result mesh statistic
*/
class SMESHGUI_CopyMeshDlg : public SMESHGUI_Dialog
{
Q_OBJECT
public:
enum { Mesh };
SMESHGUI_CopyMeshDlg( QWidget* );
virtual ~SMESHGUI_CopyMeshDlg();
void enableControls( bool );
private slots:
void onTargetChanged();
void onGroupChecked();
private:
QRadioButton* myThisMeshRB;
QRadioButton* myNewMeshRB;
QLineEdit* myMeshName;
QCheckBox* myCopyCheck;
QCheckBox* myMissingCheck;
QCheckBox* myGroupCheck;
QLineEdit* myGroupName;
};
/*! /*!
* \brief Operation to compute 2D mesh on 3D * \brief Operation to compute 2D mesh on 3D
*/ */
class SMESHGUI_Make2DFrom3DOp : public SMESHGUI_SelectionOp class SMESHGUI_Make2DFrom3DOp : public SMESHGUI_Operation
{ {
Q_OBJECT public:
public:
SMESHGUI_Make2DFrom3DOp(); SMESHGUI_Make2DFrom3DOp();
virtual ~SMESHGUI_Make2DFrom3DOp(); virtual ~SMESHGUI_Make2DFrom3DOp();
virtual LightApp_Dialog* dlg() const; protected:
protected:
virtual void startOperation(); virtual void startOperation();
virtual void selectionDone();
virtual SUIT_SelectionFilter* createFilter( const int ) const;
protected slots: private:
virtual bool onApply();
private:
bool compute2DMesh(); bool compute2DMesh();
private: private:
SMESH::SMESH_IDSource_var mySrc; SMESH::SMESH_Mesh_var myMesh;
QPointer<SMESHGUI_CopyMeshDlg> myDlg; QPointer<SMESHGUI_Make2DFrom3DDlg> myDlg;
}; };
#endif // SMESHGUI_Make2DFrom3DOp_H #endif // SMESHGUI_Make2DFrom3DOp_H