mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-11 16:19:17 +05:00
publish imported fields to study
This commit is contained in:
parent
a56b72922e
commit
73a4cdc781
@ -38,6 +38,7 @@ INCLUDE_DIRECTORIES(
|
||||
${PROJECT_SOURCE_DIR}/src/GEOMImpl
|
||||
${PROJECT_SOURCE_DIR}/src/GEOMGUI
|
||||
${PROJECT_SOURCE_DIR}/src/GEOMBase
|
||||
${PROJECT_SOURCE_DIR}/src/GEOM
|
||||
${PROJECT_SOURCE_DIR}/src/DlgRef
|
||||
${PROJECT_BINARY_DIR}/src/DlgRef
|
||||
)
|
||||
|
@ -19,12 +19,15 @@
|
||||
#include <DlgRef.h>
|
||||
#include <GeometryGUI.h>
|
||||
#include <GEOMBase.h>
|
||||
#include <GEOM_Field.hxx>
|
||||
|
||||
#include <SUIT_Session.h>
|
||||
#include <SUIT_ResourceMgr.h>
|
||||
#include <SUIT_OverrideCursor.h>
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <SalomeApp_Study.h>
|
||||
#include <LightApp_SelectionMgr.h>
|
||||
#include <SalomeApp_Tools.h>
|
||||
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
@ -43,6 +46,8 @@
|
||||
#include <GEOMImpl_Types.hxx>
|
||||
#include "ImportExportGUI_ImportXAODlg.h"
|
||||
|
||||
#include <SALOMEDS_wrap.hxx>
|
||||
|
||||
//=================================================================================
|
||||
// Constructor
|
||||
//=================================================================================
|
||||
@ -139,13 +144,52 @@ void ImportExportGUI_ImportXAODlg::ClickOnOk()
|
||||
// function : ClickOnApply()
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
bool ImportExportGUI_ImportXAODlg::ClickOnApply()
|
||||
/*bool ImportExportGUI_ImportXAODlg::ClickOnApply()
|
||||
{
|
||||
if (!onAccept())
|
||||
return false;
|
||||
|
||||
initName();
|
||||
|
||||
return true;
|
||||
}*/
|
||||
|
||||
bool ImportExportGUI_ImportXAODlg::ClickOnApply()
|
||||
{
|
||||
if(!isApplyAndClose()) {
|
||||
setIsDisableBrowsing( true );
|
||||
setIsDisplayResult( false );
|
||||
}
|
||||
|
||||
QString msg;
|
||||
if ( !isValid( msg ) ) {
|
||||
showError( msg );
|
||||
return false;
|
||||
}
|
||||
SUIT_OverrideCursor wc;
|
||||
SUIT_Session::session()->activeApplication()->putInfo( "" );
|
||||
|
||||
try {
|
||||
if ( openCommand() )
|
||||
if (!execute (/*isApplyAndClose()*/))
|
||||
{
|
||||
abortCommand();
|
||||
showError();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch( const SALOME::SALOME_Exception& e ) {
|
||||
SalomeApp_Tools::QtCatchCorbaException( e );
|
||||
abortCommand();
|
||||
return false;
|
||||
}
|
||||
commitCommand();
|
||||
|
||||
if(!isApplyAndClose()) {
|
||||
setIsDisableBrowsing( false );
|
||||
setIsDisplayResult( true );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -208,7 +252,7 @@ bool ImportExportGUI_ImportXAODlg::isValid(QString& msg)
|
||||
// function : execute
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
bool ImportExportGUI_ImportXAODlg::execute(ObjectList& objects)
|
||||
bool ImportExportGUI_ImportXAODlg::execute()
|
||||
{
|
||||
bool res = false;
|
||||
|
||||
@ -223,29 +267,70 @@ bool ImportExportGUI_ImportXAODlg::execute(ObjectList& objects)
|
||||
if (!shape->_is_nil())
|
||||
{
|
||||
m_mainShape = shape;
|
||||
objects.push_back(shape._retn());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_mainShape = NULL;
|
||||
}
|
||||
|
||||
if (m_mainShape != NULL)
|
||||
{
|
||||
addInStudy(m_mainShape, m_mainShape->GetName());
|
||||
|
||||
for (int i = 0; i < subShapes->length(); i++)
|
||||
{
|
||||
objects.push_back(GEOM::GEOM_Object::_duplicate(subShapes[i]));
|
||||
addInStudy(subShapes[i].in(), subShapes[i]->GetName());
|
||||
}
|
||||
for (int i = 0; i < groups->length(); i++)
|
||||
{
|
||||
objects.push_back(GEOM::GEOM_Object::_duplicate(groups[i]));
|
||||
addInStudy(groups[i].in(), groups[i]->GetName());
|
||||
}
|
||||
for (int i = 0; i < fields->length(); i++)
|
||||
{
|
||||
//objects.push_back(GEOM::GEOM_Field::_duplicate(fields[i]));
|
||||
addFieldInStudy(fields[i].in(), m_mainShape);
|
||||
}
|
||||
|
||||
updateObjBrowser();
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
QString ImportExportGUI_ImportXAODlg::addFieldInStudy( GEOM::GEOM_Field_ptr theField, GEOM::GEOM_Object_ptr theFather)
|
||||
{
|
||||
if ( !hasCommand() )
|
||||
return QString();
|
||||
|
||||
_PTR(Study) aStudy = getStudy()->studyDS();
|
||||
if ( !aStudy || theField->_is_nil() )
|
||||
return QString();
|
||||
|
||||
SALOMEDS::Study_var aStudyDS = GeometryGUI::ClientStudyToStudy(aStudy);
|
||||
|
||||
SALOMEDS::SObject_var aSO =
|
||||
getGeomEngine()->AddInStudy(aStudyDS, theField, theField->GetName(), theFather);
|
||||
|
||||
QString anEntry;
|
||||
if ( !aSO->_is_nil() ) {
|
||||
CORBA::String_var entry = aSO->GetID();
|
||||
anEntry = entry.in();
|
||||
}
|
||||
|
||||
// add steps
|
||||
GEOM::ListOfLong_var steps = theField->GetSteps();
|
||||
for (int i = 0; i < steps->length(); ++i)
|
||||
{
|
||||
GEOM::GEOM_FieldStep_ptr step = theField->GetStep(steps[i]);
|
||||
QString stepName = (tr("STEP") + " %1 %2").arg( step->GetID() ).arg( step->GetStamp() );
|
||||
SALOMEDS::SObject_wrap aSOField =
|
||||
getGeomEngine()->AddInStudy( aStudyDS, step, stepName.toLatin1().constData(), theField );
|
||||
}
|
||||
|
||||
aSO->UnRegister();
|
||||
|
||||
return anEntry;
|
||||
}
|
||||
|
||||
GEOM::GEOM_Object_ptr ImportExportGUI_ImportXAODlg::getFather(GEOM::GEOM_Object_ptr object)
|
||||
{
|
||||
GEOM::GEOM_Object_var fatherObj;
|
||||
|
@ -42,9 +42,10 @@ protected:
|
||||
// redefined from GEOMBase_Helper
|
||||
virtual GEOM::GEOM_IOperations_ptr createOperation();
|
||||
virtual bool isValid(QString&);
|
||||
virtual bool execute(ObjectList&);
|
||||
virtual bool execute();
|
||||
virtual GEOM::GEOM_Object_ptr getFather(GEOM::GEOM_Object_ptr object);
|
||||
virtual QString getObjectName(GEOM::GEOM_Object_ptr object) const;
|
||||
virtual QString addFieldInStudy( GEOM::GEOM_Field_ptr theField, GEOM::GEOM_Object_ptr theFather );
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
Loading…
Reference in New Issue
Block a user