-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
return SUIT_Session::session()->resourceMgr();
}
- _PTR(Study)
- GetCStudy(const SalomeApp_Study* theStudy)
- {
- return theStudy->studyDS();
- }
-
CORBA::Object_var
DataOwnerToObject(const LightApp_DataOwnerPtr& theOwner)
{
const Handle(SALOME_InteractiveObject)& anIO = theOwner->IO();
if(!anIO.IsNull()){
if(anIO->hasEntry()){
- _PTR(Study) aStudy = GetActiveStudyDocument();
- _PTR(SObject) aSObj = aStudy->FindObjectID(anIO->getEntry());
- anObj = SObjectToObject(aSObj,aStudy);
+ _PTR(SObject) aSObj = getStudy()->FindObjectID(anIO->getEntry());
+ anObj = SObjectToObject(aSObj);
}
}
}
return NULL;
}
- _PTR(Study) GetActiveStudyDocument()
+ _PTR(Study) getStudy()
{
- SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(GetActiveStudy());
- if (aStudy)
- return aStudy->studyDS();
- else
- return _PTR(Study)();
+ static _PTR(Study) _study;
+ if(!_study)
+ _study = SalomeApp_Application::getStudy();
+ return _study;
}
_PTR(SObject) FindSObject (CORBA::Object_ptr theObject)
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
(SUIT_Session::session()->activeApplication());
if (app && !CORBA::is_nil(theObject)) {
- if(_PTR(Study) aStudy = GetActiveStudyDocument()){
- CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
- if (strcmp(anIOR.in(), "") != 0)
- return aStudy->FindObjectIOR(anIOR.in());
- }
+ CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
+ if (strcmp(anIOR.in(), "") != 0)
+ return getStudy()->FindObjectIOR(anIOR.in());
}
return _PTR(SObject)();
}
void SetName (_PTR(SObject) theSObject, const QString& theName)
{
- _PTR(Study) aStudy = GetActiveStudyDocument();
- if (aStudy->GetProperties()->IsLocked())
+ if (getStudy()->GetProperties()->IsLocked())
return;
- SMESHGUI::GetSMESHGen()->SetName(theSObject->GetIOR().c_str(), theName.toLatin1().data());
+ SMESHGUI::GetSMESHGen()->SetName(theSObject->GetIOR().c_str(), theName.toUtf8().data());
}
void SetValue (_PTR(SObject) theSObject, const QString& theValue)
{
- _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(Study) aStudy = getStudy();
if (aStudy->GetProperties()->IsLocked())
return;
_PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
aBuilder->FindOrCreateAttribute(theSObject, "AttributeComment");
_PTR(AttributeComment) aComment = anAttr;
if (aComment)
- aComment->SetValue(theValue.toLatin1().data());
+ aComment->SetValue(theValue.toUtf8().data());
}
void setFileName (_PTR(SObject) theSObject, const QString& theValue)
{
- _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(Study) aStudy = getStudy();
if (aStudy->GetProperties()->IsLocked())
return;
_PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
aBuilder->FindOrCreateAttribute(theSObject, "AttributeExternalFileDef");
_PTR(AttributeExternalFileDef) aFileName = anAttr;
if (aFileName)
- aFileName->SetValue(theValue.toLatin1().data());
+ aFileName->SetValue(theValue.toUtf8().data());
}
void setFileType (_PTR(SObject) theSObject, const QString& theValue)
{
- _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(Study) aStudy = getStudy();
if (aStudy->GetProperties()->IsLocked())
return;
_PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
aBuilder->FindOrCreateAttribute(theSObject, "AttributeFileType");
_PTR(AttributeFileType) aFileType = anAttr;
if (aFileType)
- aFileType->SetValue(theValue.toLatin1().data());
+ aFileType->SetValue(theValue.toUtf8().data());
}
- CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
- _PTR(Study) theStudy)
+ CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject )
{
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
(SUIT_Session::session()->activeApplication());
_PTR(GenericAttribute) anAttr;
if (theSObject->FindAttribute(anAttr, "AttributeIOR")) {
_PTR(AttributeIOR) anIOR = anAttr;
- CORBA::String_var aVal = anIOR->Value().c_str();
+ std::string aVal = anIOR->Value();
// string_to_object() DOC: If the input string is not valid ...
// a CORBA::SystemException is thrown.
- if ( aVal && strlen( aVal ) > 0 )
- return app->orb()->string_to_object(aVal);
+ if ( aVal.size() > 0 )
+ return app->orb()->string_to_object( aVal.c_str() );
}
}
return CORBA::Object::_nil();
}
- CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject)
- {
- _PTR(Study) aStudy = GetActiveStudyDocument();
- return SObjectToObject(theSObject,aStudy);
- }
-
_PTR(SObject) ObjectToSObject( CORBA::Object_ptr theObject )
{
_PTR(SObject) res;
(SUIT_Session::session()->activeApplication());
if ( app ) {
CORBA::String_var ior = app->orb()->object_to_string( theObject );
- SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
- if ( study && strlen( ior ) > 0 )
- res = study->studyDS()->FindObjectIOR( ior.in() );
+ if ( strlen( ior ) > 0 )
+ res = getStudy()->FindObjectIOR( ior.in() );
}
return res;
}
{
if (!theIO.IsNull()) {
if (theIO->hasEntry()) {
- _PTR(Study) aStudy = GetActiveStudyDocument();
- _PTR(SObject) anObj = aStudy->FindObjectID(theIO->getEntry());
- return SObjectToObject(anObj,aStudy);
+ _PTR(SObject) anObj = getStudy()->FindObjectID(theIO->getEntry());
+ return SObjectToObject(anObj);
}
}
return CORBA::Object::_nil();
return app->orb()->string_to_object(theIOR.toLatin1().data());
}
+ CORBA::Object_var EntryToObject( const QString& theEntry )
+ {
+ _PTR(SObject) anObj = getStudy()->FindObjectID( theEntry.toLatin1().data() );
+ return SObjectToObject(anObj);
+ }
+
int GetNameOfSelectedIObjects(LightApp_SelectionMgr* theMgr, QString& theName)
{
if (!theMgr)
int aNbSel = selected.Extent();
if (aNbSel == 1) {
Handle(SALOME_InteractiveObject) anIObject = selected.First();
- theName = QString( anIObject->getName() ).trimmed();
+ theName = GetName( anIObject );
} else {
theName = QObject::tr("SMESH_OBJECTS_SELECTED").arg(aNbSel);
}
return aNbSel;
}
+ QString GetName( const Handle(SALOME_InteractiveObject)& theIO )
+ {
+ QString name;
+ if ( !theIO.IsNull() )
+ {
+ name = QString( theIO->getName() ).trimmed();
+
+ if ( name.isEmpty() && theIO->hasEntry() )
+ {
+ _PTR(SObject) sObj = getStudy()->FindObjectID( theIO->getEntry() );
+ if ( sObj )
+ name = sObj->GetName().c_str();
+ }
+ }
+ return name.trimmed();
+ }
+
_PTR(SObject) GetMeshOrSubmesh (_PTR(SObject) theSObject)
{
GEOM::GEOM_Object_var aShape = SObjectToInterface<GEOM::GEOM_Object>(theSObject);
return theSObject->GetFather();
}
- void ModifiedMesh (_PTR(SObject) theSObject, bool theIsNotModif, bool isEmptyMesh)
- {
- _PTR(Study) aStudy = GetActiveStudyDocument();
- if (aStudy->GetProperties()->IsLocked())
- return;
-
- _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
- _PTR(GenericAttribute) anAttr =
- aBuilder->FindOrCreateAttribute(theSObject,"AttributePixMap");
- _PTR(AttributePixMap) aPixmap = anAttr;
-
- std::string pmName;
- if (theIsNotModif)
- pmName = "ICON_SMESH_TREE_MESH";
- else if ( isEmptyMesh )
- pmName = "ICON_SMESH_TREE_MESH_WARN";
- else
- pmName = "ICON_SMESH_TREE_MESH_PARTIAL";
- aPixmap->SetPixMap( pmName );
-
- _PTR(ChildIterator) anIter = aStudy->NewChildIterator(theSObject);
- for (int i = 1; anIter->More(); anIter->Next(), i++) {
- _PTR(SObject) aSObj = anIter->Value();
- if (i >= 4) {
- _PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSObj);
- for ( ; anIter1->More(); anIter1->Next())
- {
- _PTR(SObject) aSObj1 = anIter1->Value();
-
- anAttr = aBuilder->FindOrCreateAttribute(aSObj1, "AttributePixMap");
- aPixmap = anAttr;
-
- std::string entry = aSObj1->GetID();
- int objType = SMESHGUI_Selection::type( entry.c_str(), aStudy );
-
- SMESH::SMESH_IDSource_var idSrc = SObjectToInterface<SMESH::SMESH_IDSource>( aSObj1 );
- if ( !idSrc->_is_nil() )
- {
- SMESH::SMESH_GroupOnFilter_var gof =
- SObjectToInterface<SMESH::SMESH_GroupOnFilter>( aSObj1 );
- const bool isGroupOnFilter = !gof->_is_nil();
-
- bool isEmpty = false;
- if ( !isGroupOnFilter ) // GetTypes() can be very long on isGroupOnFilter!
- {
- SMESH::array_of_ElementType_var elemTypes = idSrc->GetTypes();
- isEmpty = ( elemTypes->length() == 0 );
- }
- if ( isEmpty )
- aPixmap->SetPixMap("ICON_SMESH_TREE_MESH_WARN");
- else if ( objType != GROUP )
- aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
- else if ( isGroupOnFilter )
- aPixmap->SetPixMap( "ICON_SMESH_TREE_GROUP_ON_FILTER" );
- else
- aPixmap->SetPixMap( "ICON_SMESH_TREE_GROUP" );
- }
- else
- {
- if ( !theIsNotModif )
- aPixmap->SetPixMap( pmName );
- else if ( objType == GROUP )
- aPixmap->SetPixMap( "ICON_SMESH_TREE_GROUP" );
- else
- aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
- }
- }
- }
- }
- }
-
void ShowHelpFile (const QString& theHelpFileName)
{
LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
return fromUtf8( txt.c_str() );
}
- const char* toUtf8( const QString& txt )
+ toUtf8::toUtf8( const QString& txt )
{
#ifdef PAL22528_UNICODE
- return txt.toUtf8().constData();
+ assign( txt.toUtf8().constData() );
#else
- return txt.toLatin1().constData();
+ assign( txt.toLatin1().constData() );
#endif
}