ADD_SUBDIRECTORY(GuiHelpers)
ADD_SUBDIRECTORY(TreeData)
ENDIF(NOT SALOME_LIGHT_ONLY)
+
+# package without CORBA (enabled with directive DISABE_ORB defined in ShaperApp/CMakeLists.txt)
+ADD_SUBDIRECTORY(ShaperApp)
+ADD_SUBDIRECTORY(Shaper)
_prefs_ = new LightApp_Preferences( resourceMgr() );
that->createPreferences( _prefs_ );
qAddPostRoutine( LightAppCleanUpAppResources );
- }
- that->myPrefs = _prefs_;
- connect( myPrefs, SIGNAL( preferenceChanged( QString&, QString&, QString& ) ),
- this, SLOT( onPreferenceChanged( QString&, QString&, QString& ) ), Qt::UniqueConnection );
- connect( myPrefs, SIGNAL( resetToDefaults() ),
- this, SIGNAL( preferenceResetToDefaults() ), Qt::UniqueConnection );
+ that->myPrefs = _prefs_;
+
+ connect( myPrefs, SIGNAL( preferenceChanged( QString&, QString&, QString& ) ),
+ this, SLOT( onPreferenceChanged( QString&, QString&, QString& ) ), Qt::UniqueConnection );
+ connect( myPrefs, SIGNAL( resetToDefaults() ),
+ this, SIGNAL( preferenceResetToDefaults() ), Qt::UniqueConnection );
+ }
if ( !crt )
return myPrefs;
return myResMgr;
}
+SUIT_ResourceMgr* & SUIT_Session::resourceMgr()
+{
+ return myResMgr;
+}
+
/*!
Removes the application from the list of launched applications.
If it is a last application the session will be closed.
{
myActiveApp = app;
}
+
+/*!
+ * \return name of the main Application launched by the executable
+ * -> SalomeApp, ShaperApp
+ */
+std::string SUIT_Session::executableAppName() const
+{
+ return myExecutableAppName;
+}
+
+/*!
+ * \return static name of the shaper executable application
+ */
+std::string SUIT_Session::shaperAppName() const
+{
+ return "ShaperApp";
+}
+
+/*!
+ * \return static name of the shaper executable application
+ */
+std::string SUIT_Session::salomeAppName() const
+{
+ return "SalomeApp";
+}
+
+/*!
+ * \brief sets thename of the main Application launched by the executable
+ * -> SalomeApp, ShaperApp
+ */
+void SUIT_Session::setExecutableAppName(const std::string & appName)
+{
+ myExecutableAppName = appName;
+}
SUIT_Application* activeApplication() const;
SUIT_ResourceMgr* resourceMgr() const;
+ SUIT_ResourceMgr*& resourceMgr();
void closeSession( int mode = ASK, int flags = 0 );
int exitFlags() const;
void insertApplication( SUIT_Application* );
+ std::string executableAppName() const;
+ std::string shaperAppName() const;
+ std::string salomeAppName() const;
+ void setExecutableAppName(const std::string & appName);
+
signals:
void applicationClosed( SUIT_Application* );
int myExitStatus;
int myExitFlags;
+ std::string myExecutableAppName;
};
#endif
# --- headers ---
# header files / to be processed by moc
-SET(_moc_HEADERS
- SalomeApp_Application.h
- SalomeApp_CheckFileDlg.h
- SalomeApp_DataModel.h
- SalomeApp_DoubleSpinBox.h
- SalomeApp_ExitDlg.h
- SalomeApp_IntSpinBox.h
- SalomeApp_ListView.h
- SalomeApp_LoadStudiesDlg.h
- SalomeApp_Module.h
- SalomeApp_Study.h
- SalomeApp_StudyPropertiesDlg.h
+SET(SalomeCommon_moc_HEADERS
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Application.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_CheckFileDlg.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DataModel.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DoubleSpinBox.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ExitDlg.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_IntSpinBox.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ListView.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_LoadStudiesDlg.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Module.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Study.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_StudyPropertiesDlg.h
)
+SET(_moc_HEADERS ${SalomeCommon_moc_HEADERS})
+
IF(SALOME_USE_PYCONSOLE)
LIST(APPEND _moc_HEADERS SalomeApp_NoteBook.h)
ENDIF()
# header files / no moc processing
-SET(_other_HEADERS
- SalomeApp.h
- SalomeApp_DataObject.h
- SalomeApp_Engine_i.h
- SalomeApp_ExceptionHandler.h
- SalomeApp_Filter.h
- SalomeApp_ImportOperation.h
- SalomeApp_Tools.h
- SalomeApp_TypeFilter.h
- SalomeApp_VisualState.h
+SET(SalomeCommon_other_HEADERS
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DataObject.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ExceptionHandler.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Filter.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ImportOperation.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Tools.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_TypeFilter.h
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_VisualState.h
)
+SET(_other_HEADERS ${SalomeCommon_other_HEADERS}
+ SalomeApp_Engine_i.h)
+
IF(SALOME_USE_PYCONSOLE)
LIST(APPEND _other_HEADERS SalomeApp_PyInterp.h)
ENDIF()
QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
# sources / static
-SET(_other_SOURCES
- SalomeApp_Application.cxx
- SalomeApp_CheckFileDlg.cxx
- SalomeApp_DataModel.cxx
- SalomeApp_DataObject.cxx
- SalomeApp_DoubleSpinBox.cxx
- SalomeApp_Engine_i.cxx
- SalomeApp_ExceptionHandler.cxx
- SalomeApp_ExitDlg.cxx
- SalomeApp_Filter.cxx
- SalomeApp_ImportOperation.cxx
- SalomeApp_IntSpinBox.cxx
- SalomeApp_ListView.cxx
- SalomeApp_LoadStudiesDlg.cxx
- SalomeApp_Module.cxx
- SalomeApp_Study.cxx
- SalomeApp_StudyPropertiesDlg.cxx
- SalomeApp_Tools.cxx
- SalomeApp_TypeFilter.cxx
- SalomeApp_VisualState.cxx
+SET(SalomeCommon_other_SOURCES
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Application.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_CheckFileDlg.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DataModel.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DataObject.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_DoubleSpinBox.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ExceptionHandler.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ExitDlg.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Filter.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ImportOperation.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_IntSpinBox.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_ListView.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_LoadStudiesDlg.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Module.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Study.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_StudyPropertiesDlg.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_Tools.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_TypeFilter.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_VisualState.cxx
)
+SET(_other_SOURCES ${SalomeCommon_other_SOURCES}
+ SalomeApp_Engine_i.cxx)
+
+# export for Shaper application
+SET(SalomeCommon_moc_HEADERS ${SalomeCommon_moc_HEADERS} PARENT_SCOPE)
+SET(SalomeCommon_other_SOURCES ${SalomeCommon_other_SOURCES} PARENT_SCOPE)
+SET(SalomeCommon_other_HEADERS ${SalomeCommon_other_HEADERS} PARENT_SCOPE)
+
IF(SALOME_USE_PYCONSOLE)
LIST(APPEND _other_SOURCES SalomeApp_PyInterp.cxx SalomeApp_NoteBook.cxx)
ENDIF()
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//#include <OB_ListItem.h>
+#ifndef DISABLE_ORB
#include <Utils_ORB_INIT.hxx>
#include <Utils_SINGLETON.hxx>
#include <SALOME_LifeCycleCORBA.hxx>
+#endif
#include <QApplication>
#include <QWidget>
#include <QMenu>
#include <QtDebug>
+#ifndef DISABLE_ORB
#include <SALOMEDSClient_ClientFactory.hxx>
+#endif
#include <Basics_Utils.hxx>
#include <SALOME_ListIO.hxx>
tr( "MEN_DESK_CATALOG_GENERATOR" ), tr( "PRP_DESK_CATALOG_GENERATOR" ),
Qt::ALT+Qt::SHIFT+Qt::Key_G, desk, false, this, SLOT( onCatalogGen() ) );
+#ifndef DISABLE_ORB
//! Registry Display
createAction( RegDisplayId, tr( "TOT_DESK_REGISTRY_DISPLAY" ), QIcon(),
tr( "MEN_DESK_REGISTRY_DISPLAY" ), tr( "PRP_DESK_REGISTRY_DISPLAY" ),
/*Qt::SHIFT+Qt::Key_D*/0, desk, false, this, SLOT( onRegDisplay() ) );
+#endif
createAction( ConnectId, tr( "TOT_DESK_CONNECT_STUDY" ), QIcon(),
tr( "MEN_DESK_CONNECT" ), tr( "PRP_DESK_CONNECT" ),
int toolsMenu = createMenu( tr( "MEN_DESK_TOOLS" ), -1, MenuToolsId, 50 );
createMenu( CatalogGenId, toolsMenu, 10, -1 );
+#ifndef DISABLE_ORB
createMenu( RegDisplayId, toolsMenu, 10, -1 );
+#endif
createMenu( separator(), toolsMenu, -1, 15, -1 );
createExtraActions();
//MessageLocker ml( myToIgnoreMessages );
bool killServers = false;
+#ifdef DISABLE_ORB
+ killServers = true;
+#endif
bool result = true;
if ( exitConfirmation() ) {
SalomeApp_ExitDlg dlg( desktop() );
result = dlg.exec() == QDialog::Accepted;
+#ifndef DISABLE_ORB
killServers = dlg.isServersShutdown();
+#endif
}
if ( result ) {
if( so )
{
try {
+#ifndef DISABLE_ORB
stdDS->Copy(so);
+#else
+ //TODO stdDS->Copy(*so);
+#endif
onSelectionChanged();
}
catch(...) {
if( so )
{
try {
+#ifndef DISABLE_ORB
stdDS->Paste(so);
+#else
+ //TODO stdDS->Paste(*so);
+#endif
updateObjectBrowser( true );
updateActions(); //SRN: BugID IPAL9377, case 3
}
_PTR(SObject) so = getStudy()->FindObjectID(it.Value()->getEntry());
if ( so ) {
+#ifndef DISABLE_ORB
canCopy = canCopy || getStudy()->CanCopy(so);
canPaste = canPaste || getStudy()->CanPaste(so);
+#else
+ //TODO canCopy = canCopy || getStudy()->CanCopy(so);
+ //TODO canPaste = canPaste || getStudy()->CanPaste(so);
+#endif
}
}
return;
_PTR(Study) aStudyDS = getStudy();
- _PTR(StudyBuilder) aStudyBuilder = aStudyDS->NewBuilder();
+ auto aStudyBuilder = aStudyDS->NewBuilder();
_PTR(SObject) anObj;
for( SALOME_ListIteratorOfListIO it( aList ); it.More(); it.Next() )
bool res;
{
SUIT_OverrideCursor wc;
+#ifndef SHAPER_STANDALONE
ensureShaperIsActivated();
+#endif
res = appStudy->dump( aFileName, toPublish, isMultiFile, toSaveGUI );
}
if ( !res )
if ( !aFile.isEmpty() )
{
- QString command = QString("exec(compile(open('%1', 'rb').read(), '%1', 'exec'))").arg(aFile);
+ QString command = QString("exec(open(\"%1\", \"rb\").read())").arg(aFile);
#ifndef DISABLE_PYCONSOLE
PyConsole_Console* pyConsole = pythonConsole();
}
}
+#ifndef DISABLE_ORB
/*!Gets CORBA::ORB_var*/
CORBA::ORB_var SalomeApp_Application::orb()
{
return _orb;
}
+#endif
/*!Create and return SALOMEDS_Study.*/
_PTR(Study) SalomeApp_Application::getStudy()
{
static _PTR(Study) _study;
if(!_study) {
+#ifndef DISABLE_ORB
CORBA::Object_var aSObject = namingService()->Resolve("/Study");
SALOMEDS::Study_var aStudy = SALOMEDS::Study::_narrow(aSObject);
_study = ClientFactory::Study(aStudy);
+#else
+ _study = _PTR(Study)( new _CLASS(Study));
+#endif
}
return _study;
}
+#ifndef DISABLE_ORB
/*!Create and return SALOME_NamingService.*/
SALOME_NamingService* SalomeApp_Application::namingService()
{
static SALOME_LifeCycleCORBA _lcc( namingService() );
return &_lcc;
}
+#endif
/*!Private SLOT. On preferences.*/
void SalomeApp_Application::onProperties()
if( !study )
return;
- _PTR(StudyBuilder) SB = study->studyDS()->NewBuilder();
+ auto SB = study->studyDS()->NewBuilder();
SB->NewCommand();
SalomeApp_StudyPropertiesDlg aDlg( desktop() );
if( it.Value()->hasEntry() )
{
_PTR(SObject) aSObject = getStudy()->FindObjectID( it.Value()->getEntry() ), aRefObj = aSObject;
- while( aRefObj && aRefObj->ReferencedObject( anObj ) )
- aRefObj = anObj;
+ while( aRefObj && aRefObj->ReferencedObject( anObj ) )
+ aRefObj = anObj;
if( aRefObj && aRefObj!=aSObject && QString( aRefObj->GetName().c_str() ).isEmpty() )
isInvalidRefs = true;
_PTR( GenericAttribute ) anAttr;
std::string auid = "AttributeUserID";
auid += Kernel_Utils::GetGUID(Kernel_Utils::ObjectdID);
- if ( aSO->FindAttribute( anAttr, auid ) ) {
+ if ( aSO->FindAttribute( anAttr, auid ) ) {
_PTR(AttributeUserID) aAttrID = anAttr;
QString aId = aAttrID->Value().c_str();
if ( myExtActions.contains( aId ) ) {
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>(activeStudy());
if ( study )
{
+#ifndef DISABLE_ORB
for ( _PTR(SComponentIterator) it ( getStudy()->NewComponentIterator() ); it->More(); it->Next() )
{
_PTR(SComponent) aComponent ( it->Value() );
+#else
+ for ( _PTR(SComponentIterator) it ( getStudy()->GetNewComponentIterator()); it->More(); it->Next() )
+ {
+ _PTR(SComponent) aComponent ( it->GetValue() );
+#endif
#ifndef WITH_SALOMEDS_OBSERVER
// with GUI observers this check is not needed anymore
aDlg.exec();
}
+#ifndef DISABLE_ORB
/*!Display Registry Display dialog */
void SalomeApp_Application::onRegDisplay()
{
regWnd->raise();
regWnd->activateWindow();
}
+#endif
/*!find original object by double click on item */
void SalomeApp_Application::onDblClick( SUIT_DataObject* theObj )
int savePoint;
_PTR(AttributeParameter) ap;
+#ifndef DISABLE_ORB
_PTR(IParameters) ip = ClientFactory::getIParameters(ap);
if(ip->isDumpPython()) ip->setDumpPython(); //Unset DumpPython flag.
if ( toSaveGUI ) { //SRN: Store a visual state of the study at the save point for DumpStudy method
savePoint = SalomeApp_VisualState( this ).storeState(); //SRN: create a temporary save point
}
bool ok = getStudy()->DumpStudy( aTmpDir.toStdString(), aScriptName.toStdString(), toPublish, isMultiFile );
+#else
+ _PTR(IParameters) ip; //TODO = ClientFactory::getIParameters(ap);
+ //TODO if(ip->isDumpPython()) ip->setDumpPython(); //Unset DumpPython flag.
+ if ( toSaveGUI ) { //SRN: Store a visual state of the study at the save point for DumpStudy method
+ //TODO ip->setDumpPython();
+ savePoint = SalomeApp_VisualState( this ).storeState(); //SRN: create a temporary save point
+ }
+ bool ok = 0; //TODO getStudy()->DumpStudy( aTmpDir.toStdString(), aScriptName.toStdString(), toPublish, isMultiFile );
+#endif
if ( toSaveGUI )
study->removeSavePoint(savePoint); //SRN: remove the created temporary save point.
#endif // DISABLE_PYCONSOLE
+#ifndef SHAPER_STANDALONE
void SalomeApp_Application::ensureShaperIsActivated()
{
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>(activeStudy());
study->dataModels( models );
for( int i = 0; i < models.count() && !shaperIsActive; i++ )
shaperIsActive = models[i]->module()->moduleName() == "Shaper";
-
+
if (shaper && !shaperIsActive)
onDesktopMessage("register_module_in_study/Shaper");
}
}
+#endif
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "SalomeApp.h"
#include <LightApp_Application.h>
+#ifndef DISABLE_ORB
#include <omniORB4/CORBA.h>
//#include <SALOMEconfig.h>
#include <SALOME_NamingService.hxx>
#include "SALOMEDSClient.hxx"
+#else
+#include "SALOMEDSImplAdapt.hxx"
+#endif
#include <QPointer>
class SalomeApp_NoteBook;
#endif
class SUIT_Desktop;
+#ifndef DISABLE_ORB
class SALOME_LifeCycleCORBA;
+#endif
#ifdef WIN32
virtual bool checkExistingDoc();
+#ifndef DISABLE_ORB
static CORBA::ORB_var orb();
+#endif
static _PTR(Study) getStudy();
+#ifndef DISABLE_ORB
static SALOME_NamingService* namingService();
static SALOME_LifeCycleCORBA* lcc();
+#endif
SUIT_ViewManager* newViewManager(const QString&);
void updateSavePointDataObjects( SalomeApp_Study* );
void onRestoreGUIState();
void onCatalogGen();
+#ifndef DISABLE_ORB
void onRegDisplay();
+#endif
void onOpenWith();
void onExtAction();
private:
void createExtraActions();
+#ifndef SHAPER_STANDALONE
void ensureShaperIsActivated();
+#endif
private:
#ifndef DISABLE_PYCONSOLE
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SUIT_TreeSync.h>
#include <SUIT_DataObjectIterator.h>
+#ifndef DISABLE_ORB
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SALOME_Exception)
+#endif
typedef _PTR(SObject) kerPtr;
typedef SUIT_DataObject* suitPtr;
QString name = so->GetName().c_str();
_PTR( GenericAttribute ) anAttr;
bool isDraw = true;
- if ( so->FindAttribute(anAttr, "AttributeDrawable") )
+ if ( so->FindAttribute(anAttr, "AttributeDrawable") )
{
_PTR(AttributeDrawable) aAttrDraw = anAttr;
- isDraw = aAttrDraw->IsDrawable();
+ isDraw = aAttrDraw->IsDrawable();
}
- bool res = so && ( so->GetName().size() || so->ReferencedObject( refObj ) ) && isDraw;
+ bool res = so && ( so->GetName().size() || so->ReferencedObject( refObj ) ) && isDraw;
return res;
}
if ( expandable ) {
// tmp??
- _PTR(UseCaseBuilder) aUseCaseBuilder = myStudy->GetUseCaseBuilder();
+ auto aUseCaseBuilder = myStudy->GetUseCaseBuilder();
if (aUseCaseBuilder->HasChildren(obj)) {
_PTR(UseCaseIterator) it ( aUseCaseBuilder->GetUseCaseIterator( obj ) );
for ( ; it->More(); it->Next() )
+#ifndef DISABLE_ORB
ch.append( it->Value() );
+#else
+ ch.append( _PTR(SObject)(it->GetValue()) );
+#endif
}
else {
_PTR(ChildIterator) it ( myStudy->NewChildIterator( obj ) );
for ( ; it->More(); it->Next() )
+#ifndef DISABLE_ORB
ch.append( it->Value() );
+#else
+ ch.append( _PTR(SObject)(it->GetValue()) );
+#endif
}
}
if ( anId.isEmpty() )
return true; // Probably nothing to load
- _PTR(SComponent) aSComp ( SalomeApp_Application::getStudy()->FindComponentID( std::string( anId.toUtf8() ) ) );
+ _PTR(SComponent) aSComp ( SalomeApp_Application::getStudy()->FindComponentID( anId.toUtf8().data() ) );
if ( aSComp )
updateTree( aSComp, aDoc );
studyRoot = dynamic_cast<LightApp_RootObject*>( aSStudy->root() );
QString anId = getRootEntry( aSStudy );
if ( !anId.isEmpty() ){ // if nothing is published in the study for this module -> do nothing
- sobj = SalomeApp_Application::getStudy()->FindComponentID( std::string( anId.toUtf8() ) );
+ sobj = SalomeApp_Application::getStudy()->FindComponentID( anId.toUtf8().data() );
}
}
}
aSStudy = dynamic_cast<SalomeApp_Study*>( studyRoot->study() ); // <study> value should not change here theoretically, but just to make sure
if ( aSStudy ) {
// modelRoot->object() cannot be reused here: it is about to be deleted by buildTree() soon
- sobj = SalomeApp_Application::getStudy()->FindComponentID( std::string( modelRoot->entry().toUtf8() ) );
+ sobj = SalomeApp_Application::getStudy()->FindComponentID(modelRoot->entry().toUtf8().data() );
}
}
}
anEntry = anObj->entry();
}
else if ( study && study->studyDS() ) { // this works even if <myRoot> is null
- _PTR(SComponent) aSComp( study->studyDS()->FindComponent( module()->name().toStdString() ) );
+ _PTR(SComponent) aSComp( study->studyDS()->FindComponent( module()->name().toUtf8().data() ) );
if ( aSComp )
anEntry = aSComp->GetID().c_str();
}
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "SalomeApp.h"
#include "LightApp_DataModel.h"
+#ifndef DISABLE_ORB
#include "SALOMEDSClient.hxx"
+#else
+#include "SALOMEDSImplAdapt.hxx"
+#endif
class SalomeApp_Module;
class SalomeApp_Study;
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SUIT_Application.h>
#include <SUIT_ResourceMgr.h>
+#ifndef DISABLE_ORB
#include <SALOME_LifeCycleCORBA.hxx>
+#endif
#include <Basics_Utils.hxx>
#include <QObject>
_PTR(GenericAttribute) anAttr;
if ( myObject->FindAttribute( anAttr, "AttributeTextColor" ) ) {
_PTR(AttributeTextColor) aColAttr = anAttr;
+#ifndef DISABLE_ORB
c = QColor( (int)aColAttr->TextColor().R, (int)aColAttr->TextColor().G, (int)aColAttr->TextColor().B );
+#else
+ c = QColor( (int)aColAttr->TextColor()[0], (int)aColAttr->TextColor()[1], (int)aColAttr->TextColor()[2] );
+#endif
}
}
break;
_PTR(GenericAttribute) anAttr;
if( myObject->FindAttribute ( anAttr, "AttributeTextHighlightColor") ) {
_PTR(AttributeTextHighlightColor) aHighColAttr = anAttr;
- c = QColor( (int)(aHighColAttr->TextHighlightColor().R),
- (int)(aHighColAttr->TextHighlightColor().G),
+#ifndef DISABLE_ORB
+ c = QColor( (int)(aHighColAttr->TextHighlightColor().R),
+ (int)(aHighColAttr->TextHighlightColor().G),
(int)(aHighColAttr->TextHighlightColor().B));
+#else
+ c = QColor( (int)(aHighColAttr->TextHighlightColor()[0]),
+ (int)(aHighColAttr->TextHighlightColor()[1]),
+ (int)(aHighColAttr->TextHighlightColor()[2]));
+#endif
}
}
break;
return c;
}
+#ifndef DISABLE_ORB
/*!
\brief Get data object tooltip for the specified column.
\param id column id (not used)
return QString( "Object \'%1\', module \'%2\', ID=%3" ).arg( name() ).arg( componentDataType() ).arg( entry() );
}
+#endif // DISABLE_ORB
/*!
\brief Get font to be used for data object rendering in the item views
bool ok = false;
// tmp??
- _PTR(UseCaseBuilder) aUseCaseBuilder = SalomeApp_Application::getStudy()->GetUseCaseBuilder();
+ auto aUseCaseBuilder = SalomeApp_Application::getStudy()->GetUseCaseBuilder();
if (aUseCaseBuilder->IsUseCaseNode(myObject)) {
ok = aUseCaseBuilder->HasChildren(myObject);
// TODO: check name as below?
else {
_PTR(ChildIterator) it ( SalomeApp_Application::getStudy()->NewChildIterator( myObject ) );
for ( ; it->More() && !ok; it->Next() ) {
+#ifndef DISABLE_ORB
_PTR(SObject) obj = it->Value();
+#else
+ _PTR(SObject) obj(it->GetValue());
+#endif
if ( obj ) {
_PTR(SObject) refObj;
//if ( obj->ReferencedObject( refObj ) ) continue; // omit references
/*!
\brief Get data object value.
\param obj data object
- \return data object value or empty string if there is no
+ \return data object value or empty string if there is no
value associated to the object
*/
QString SalomeApp_DataObject::value( const _PTR(SObject)& obj ) const
std::string str = strAttr->Value();
QString aStrings = fromUtf8( str );
- //Special case to show NoteBook variables in the "Value" column of the OB
+ //Special case to show NoteBook variables in the "Value" column of the OB
bool ok = false;
QStringList aSectionList = aStrings.split( "|" );
if ( !aSectionList.isEmpty() )
*/
SalomeApp_ModuleObject::SalomeApp_ModuleObject( const _PTR(SObject)& sobj,
SUIT_DataObject* parent )
-: CAM_DataObject( parent ),
- LightApp_DataObject( parent ),
- SalomeApp_DataObject( sobj, parent ),
- CAM_ModuleObject( parent )
+ : CAM_DataObject( parent ),
+ LightApp_DataObject( parent ),
+ SalomeApp_DataObject( sobj, parent ),
+ CAM_ModuleObject( parent )
{
}
\param parent parent data object
*/
SalomeApp_ModuleObject::SalomeApp_ModuleObject( CAM_DataModel* dm,
- const _PTR(SObject)& sobj,
+ const _PTR(SObject)& sobj,
SUIT_DataObject* parent )
-: CAM_DataObject( parent ),
- LightApp_DataObject( parent ),
- SalomeApp_DataObject( sobj, parent ),
- CAM_ModuleObject( dm, parent )
+ : CAM_DataObject( parent ),
+ LightApp_DataObject( parent ),
+ SalomeApp_DataObject( sobj, parent ),
+ CAM_ModuleObject( dm, parent )
{
}
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "SalomeApp.h"
#include <LightApp_DataObject.h>
+#ifndef DISABLE_ORB
#include <SALOMEDSClient.hxx>
+#else
+#include "SALOMEDSImplAdapt.hxx"
+#endif
class SalomeApp_Study;
virtual QString text( const int = NameId ) const;
virtual QPixmap icon( const int = NameId ) const;
virtual QColor color( const ColorRole, const int = NameId ) const;
+#ifndef DISABLE_ORB
virtual QString toolTip( const int = NameId ) const;
+#endif
virtual QFont font( const int = NameId ) const;
virtual _PTR(SObject) object() const;
};
class SALOMEAPP_EXPORT SalomeApp_ModuleObject : public SalomeApp_DataObject,
- public CAM_ModuleObject
+ public CAM_ModuleObject
{
public:
SalomeApp_ModuleObject( SUIT_DataObject* = 0 );
};
class SALOMEAPP_EXPORT SalomeApp_RootObject : public SalomeApp_DataObject,
- public LightApp_RootObject
+ public LightApp_RootObject
{
public:
SalomeApp_RootObject( LightApp_Study* );
#include <SUIT_Session.h>
+#ifndef DISABLE_ORB
#include "SALOMEDSClient_ClientFactory.hxx"
#include CORBA_SERVER_HEADER(SALOMEDS)
+#endif
#include <QKeyEvent>
#include <QLineEdit>
//
#include "SalomeApp_ExceptionHandler.h"
+#ifndef DISABLE_ORB
#include "Utils_CorbaException.hxx"
+#endif
#include <OSD.hxx>
{
showMessage( title, QString( e.GetMessageString() ) );
}
+#ifndef DISABLE_ORB
catch( SALOME::SALOME_Exception& ex)
{
showMessage( title, QString( ex.details.text));
}
+#endif
#ifndef WIN32
catch(...)
{
m_lDescr->setText( tr( "QUE_DESK_EXIT" ) );
m_lDescr->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
+#ifndef DISABLE_ORB
myServersShutdown = new QCheckBox( tr( "SHUTDOWN_SERVERS" ), this );
myServersShutdown->setChecked( true );
-
+#endif
+
QVBoxLayout* m_vl1 = new QVBoxLayout();
m_vl1->setMargin( 10 ); m_vl1->setSpacing( 16 );
m_vl1->addWidget( m_lDescr );
+#ifndef DISABLE_ORB
m_vl1->addWidget( myServersShutdown );
+#endif
QHBoxLayout* m_hl1 = new QHBoxLayout();
m_hl1->setMargin( 0 ); m_hl1->setSpacing( 6 );
/*!
* \brief get the check box status
*/
+#ifndef DISABLE_ORB
bool SalomeApp_ExitDlg::isServersShutdown()
{
return myServersShutdown->isChecked();
}
-
+ #endif
+
SalomeApp_ExitDlg( QWidget* ) ;
~SalomeApp_ExitDlg();
+#ifndef DISABLE_ORB
bool isServersShutdown();
private:
QCheckBox* myServersShutdown;
+#endif
};
#endif // SALOMEAPP_EXITDLG_H
#include <SUIT_Session.h>
+#ifndef DISABLE_ORB
#include "SALOMEDSClient_ClientFactory.hxx"
#include CORBA_SERVER_HEADER(SALOMEDS)
+#endif
#include <QKeyEvent>
#include <QLineEdit>
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SALOME_ListIO.hxx>
#include <SALOME_InteractiveObject.hxx>
-
+
#include <LightApp_DataObject.h>
#include <SUIT_Session.h>
if( obj->hasEntry() )
{
_PTR(SObject) SO = study->studyDS()->FindObjectID( obj->getEntry() );
+#ifndef DISABLE_ORB
if( SO && QString( SO->GetID().c_str() ) == SO->GetFatherComponent()->GetID().c_str() )
{ //component is selected
_PTR(SComponent) SC( SO->GetFatherComponent() );
+#else
+ if( SO && QString( SO->GetID().c_str() ) == SO->GetFatherComponent().GetID().c_str() )
+ { //component is selected
+ _PTR(SComponent) SC( _CLASS(SComponent)(SO->GetFatherComponent()) );
+#endif
_PTR(ChildIterator) anIter ( study->studyDS()->NewChildIterator( SC ) );
anIter->InitEx( true );
while( anIter->More() )
{
+#ifndef DISABLE_ORB
_PTR(SObject) valSO ( anIter->Value() );
+#else
+ _PTR(SObject) valSO ( anIter->GetValue() );
+#endif
_PTR(SObject) refSO;
if( !valSO->ReferencedObject( refSO ) )
{
QString id = valSO->GetID().c_str(),
- comp = SC->ComponentDataType().c_str(),
- val = valSO->GetName().c_str();
+ comp = SC->ComponentDataType().c_str(),
+ val = valSO->GetName().c_str();
Handle( SALOME_InteractiveObject ) new_obj =
- new SALOME_InteractiveObject( id.toUtf8(), comp.toLatin1(), val.toLatin1() );
+ new SALOME_InteractiveObject( id.toUtf8(), comp.toLatin1(), val.toLatin1() );
dest.Append( new_obj );
}
anIter->Next();
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
if( aNumRows == 0 )
return true;
+#ifndef DISABLE_PYCONSOLE
bool aLastRowIsEmpty = myParentTable->myRows[ aNumRows - 1 ]->GetName().isEmpty() &&
myParentTable->myRows[ aNumRows - 1 ]->GetValue().isEmpty();
bool aResult = pyInterp->run(command.c_str());
pyConsole->setIsSuppressOutput(oldSuppressValue);
return !aResult;
+#else
+ return true;
+#endif
}
///////////////////////////////////////////////////////////////////////////
if( !myRows[i]->CheckName() || !IsUniqueName( myRows[i] ) || !myRows[i]->CheckValue() )
return false;
+#ifndef DISABLE_PYCONSOLE
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
PyConsole_Console* pyConsole = app->pythonConsole();
PyConsole_Interp* pyInterp = app->getPyInterp();
pyConsole->setIsSuppressOutput(oldSuppressValue);
return !aResult;
+#else
+ return true;
+#endif
}
//============================================================================
}
}
+#ifndef DISABLE_ORB
if( NoteBook_TableRow::IsIntegerValue(aValue,&anIVal) )
aStudy->SetInteger(std::string(aName.toUtf8().constData()),anIVal);
else
aStudy->SetString(std::string(aName.toUtf8().constData()),aValue.toStdString());
+#else
+ return;
+ //TODO
+#endif
}
}
myTable->ResetMaps();
SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
if(!app)
return;
+#ifndef DISABLE_PYCONSOLE
app->onUpdateStudy();
+#endif
}
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include "SalomeApp.h"
-#include "SALOMEDSClient_ClientFactory.hxx"
+#ifndef DISABLE_ORB
+#include "SALOMEDSClient_ClientFactory.hxx"
#include CORBA_SERVER_HEADER(SALOMEDS)
+#endif
#include <QWidget>
#include <QTableWidget>
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
#ifndef DISABLE_PYCONSOLE
- #include "SalomeApp_PyInterp.h" // WARNING! This include must be the first!
+#include "SalomeApp_PyInterp.h" // WARNING! This include must be the first!
#endif
#include "SalomeApp_Study.h"
#include "SalomeApp_DataObject.h"
#include "SalomeApp_DataModel.h"
#include "SalomeApp_Application.h"
+#ifndef DISABLE_ORB
#include "SalomeApp_Engine_i.h"
+#else
+#include "SalomeApp_EngineImpl.h"
+#include <Utils_SALOME_Exception.hxx>
+#endif
#include "SalomeApp_VisualState.h"
// temporary commented
#include "SALOMEDS_Tool.hxx"
+#ifndef DISABLE_ORB
#include "SALOMEDSClient_ClientFactory.hxx"
#include <SALOMEconfig.h>
switch(event) {
case 1:
- { //Add sobject
- _PTR(SObject) aSObj = SalomeApp_Application::getStudy()->FindObjectID(theID);
- _PTR(SComponent) aSComp = aSObj->GetFatherComponent();
+ { //Add sobject
+ _PTR(SObject) aSObj = SalomeApp_Application::getStudy()->FindObjectID(theID);
+ _PTR(SComponent) aSComp = aSObj->GetFatherComponent();
- if (!aSComp || aSComp->IsNull()) {
- MESSAGE("Entry " << theID << " has not father component. Problem ??");
+ if (!aSComp || aSComp->IsNull()) {
+ MESSAGE("Entry " << theID << " has not father component. Problem ??");
+ return;
+ }
+
+ // Mantis issue 0020136: Drag&Drop in OB
+ _PTR(UseCaseBuilder) aUseCaseBuilder = SalomeApp_Application::getStudy()->GetUseCaseBuilder();
+ if (aUseCaseBuilder->IsUseCaseNode(aSComp)) { // BEGIN: work with tree nodes structure
+ if (!aUseCaseBuilder->IsUseCaseNode(aSObj)) {
+ // tree node is not yet set, it is a normal situation
return;
}
- // Mantis issue 0020136: Drag&Drop in OB
- _PTR(UseCaseBuilder) aUseCaseBuilder = SalomeApp_Application::getStudy()->GetUseCaseBuilder();
- if (aUseCaseBuilder->IsUseCaseNode(aSComp)) { // BEGIN: work with tree nodes structure
- if (!aUseCaseBuilder->IsUseCaseNode(aSObj)) {
- // tree node is not yet set, it is a normal situation
- return;
- }
+ _PTR(SObject) aFatherSO = aUseCaseBuilder->GetFather(aSObj);
+ if (!aFatherSO || aFatherSO->IsNull()) {
+ MESSAGE("Father SObject is not found. Problem ??");
+ return;
+ }
- _PTR(SObject) aFatherSO = aUseCaseBuilder->GetFather(aSObj);
- if (!aFatherSO || aFatherSO->IsNull()) {
- MESSAGE("Father SObject is not found. Problem ??");
- return;
- }
+ std::string parent_id = aFatherSO->GetID();
+ EntryMapIter it = entry2SuitObject.find(parent_id.c_str());
+
+ if (it == entry2SuitObject.end()) {
+ MESSAGE("Father data object is not found. Problem ??");
+ return;
+ }
- std::string parent_id = aFatherSO->GetID();
- EntryMapIter it = entry2SuitObject.find(parent_id.c_str());
+ SalomeApp_DataObject* aFatherDO = it->second;
- if (it == entry2SuitObject.end()) {
- MESSAGE("Father data object is not found. Problem ??");
- return;
- }
+ it = entry2SuitObject.find(theID);
+ if (it != entry2SuitObject.end()) { // this SOobject is already added somewhere
+ suit_obj = it->second;
+ SUIT_DataObject* oldFather = suit_obj->parent();
+ if (oldFather) {
+ oldFather->removeChild(suit_obj, false);
+ SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( myStudy->application() );
+ // MESSAGE("myStudy: " << myStudy->id() << " app " << app);
+ // MESSAGE("objectBrowser: "<< app->objectBrowser());
+ if (!app->objectBrowser()) {
+ MESSAGE("Object Browser not found. Problem ??");
+ return;
+ }
+ SUIT_AbstractModel* model = dynamic_cast<SUIT_AbstractModel*>(app->objectBrowser()->model());
+ model->forgetObject( suit_obj );
- SalomeApp_DataObject* aFatherDO = it->second;
-
- it = entry2SuitObject.find(theID);
- if (it != entry2SuitObject.end()) { // this SOobject is already added somewhere
- suit_obj = it->second;
- SUIT_DataObject* oldFather = suit_obj->parent();
- if (oldFather) {
- oldFather->removeChild(suit_obj, false);
- SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( myStudy->application() );
-// MESSAGE("myStudy: " << myStudy->id() << " app " << app);
-// MESSAGE("objectBrowser: "<< app->objectBrowser());
- if (!app->objectBrowser()) {
- MESSAGE("Object Browser not found. Problem ??");
- return;
- }
- SUIT_AbstractModel* model = dynamic_cast<SUIT_AbstractModel*>(app->objectBrowser()->model());
- model->forgetObject( suit_obj );
-
- if (SalomeApp_DataObject* oldFatherSA = dynamic_cast<SalomeApp_DataObject*>(oldFather)) {
- oldFatherSA->updateItem();
- }
+ if (SalomeApp_DataObject* oldFatherSA = dynamic_cast<SalomeApp_DataObject*>(oldFather)) {
+ oldFatherSA->updateItem();
}
}
- else {
- suit_obj = new SalomeApp_DataObject(aSObj);
- entry2SuitObject[theID] = suit_obj;
- }
+ }
+ else {
+ suit_obj = new SalomeApp_DataObject(aSObj);
+ entry2SuitObject[theID] = suit_obj;
+ }
- suit_obj->updateItem();
- // define position in the data tree (in aFatherDO) to insert the aSObj
- int pos = aUseCaseBuilder->GetIndexInFather(aFatherSO, aSObj);
-
- aFatherDO->insertChildAtPos(suit_obj, pos);
- //aFatherDO->insertChild(suit_obj, pos);
- aFatherDO->updateItem();
-
- /* Define visibility state */
- bool isComponent = dynamic_cast<SalomeApp_ModuleObject*>( suit_obj ) != 0;
- if ( suit_obj && !isComponent && myStudy->visibilityState( theID.c_str() ) == Qtx::UnpresentableState ) {
- QString moduleTitle = ((CAM_Application*)myStudy->application())->moduleTitle(suit_obj->componentDataType());
- if (!moduleTitle.isEmpty()) {
- LightApp_Displayer* aDisplayer = LightApp_Displayer::FindDisplayer(moduleTitle,false);
- if (aDisplayer) {
- if(aDisplayer->canBeDisplayed(theID.c_str())) {
- myStudy->setVisibilityState( theID.c_str(), Qtx::HiddenState ); //hide the just added object
- //MESSAGE("Object with entry : "<< theID <<" CAN be displayed !!!");
- }
- //else
- //MESSAGE("Object with entry : "<< theID <<" CAN'T be displayed !!!");
+ suit_obj->updateItem();
+ // define position in the data tree (in aFatherDO) to insert the aSObj
+ int pos = aUseCaseBuilder->GetIndexInFather(aFatherSO, aSObj);
+
+ aFatherDO->insertChildAtPos(suit_obj, pos);
+ //aFatherDO->insertChild(suit_obj, pos);
+ aFatherDO->updateItem();
+
+ /* Define visibility state */
+ bool isComponent = dynamic_cast<SalomeApp_ModuleObject*>( suit_obj ) != 0;
+ if ( suit_obj && !isComponent && myStudy->visibilityState( theID.c_str() ) == Qtx::UnpresentableState ) {
+ QString moduleTitle = ((CAM_Application*)myStudy->application())->moduleTitle(suit_obj->componentDataType());
+ if (!moduleTitle.isEmpty()) {
+ LightApp_Displayer* aDisplayer = LightApp_Displayer::FindDisplayer(moduleTitle,false);
+ if (aDisplayer) {
+ if(aDisplayer->canBeDisplayed(theID.c_str())) {
+ myStudy->setVisibilityState( theID.c_str(), Qtx::HiddenState ); //hide the just added object
+ //MESSAGE("Object with entry : "<< theID <<" CAN be displayed !!!");
}
+ //else
+ //MESSAGE("Object with entry : "<< theID <<" CAN'T be displayed !!!");
}
}
- } // END: work with tree nodes structure
- else { // BEGIN: work with study structure
- EntryMapIter it = entry2SuitObject.find( theID );
- if ( it != entry2SuitObject.end() ) {
- MESSAGE("Entry " << theID << " is already added. Problem ??");
- return;
- }
+ }
+ } // END: work with tree nodes structure
+ else { // BEGIN: work with study structure
+ EntryMapIter it = entry2SuitObject.find( theID );
+ if ( it != entry2SuitObject.end() ) {
+ MESSAGE("Entry " << theID << " is already added. Problem ??");
+ return;
+ }
+
+ int last2Pnt_pos = (int)theID.rfind( ":" ); //!< TODO: conversion from size_t to int
+ std::string parent_id = theID.substr( 0, last2Pnt_pos );
+ int tag = atoi( theID.substr( last2Pnt_pos+1 ).c_str() );
- int last2Pnt_pos = (int)theID.rfind( ":" ); //!< TODO: conversion from size_t to int
- std::string parent_id = theID.substr( 0, last2Pnt_pos );
- int tag = atoi( theID.substr( last2Pnt_pos+1 ).c_str() );
+ if ( parent_id.length() == 3 ) // "0:1" - root item?
+ {
+ // It's probably a SComponent
+ if ( theID == aSComp->GetID() )
+ suit_obj = new SalomeApp_ModuleObject( aSComp );
+ else
+ suit_obj = new SalomeApp_DataObject( aSObj );
+ }
+ else
+ {
+ suit_obj = new SalomeApp_DataObject( aSObj );
+ }
+ it = entry2SuitObject.find( parent_id );
+ if ( it != entry2SuitObject.end() ) {
+ SalomeApp_DataObject* father = it->second;
+ father->insertChildAtTag( suit_obj, tag );
+ }
+ else {
if ( parent_id.length() == 3 ) // "0:1" - root item?
{
- // It's probably a SComponent
- if ( theID == aSComp->GetID() )
- suit_obj = new SalomeApp_ModuleObject( aSComp );
- else
- suit_obj = new SalomeApp_DataObject( aSObj );
+ // This should be for a module
+ SUIT_DataObject* father=myStudy->root();
+ father->appendChild(suit_obj);
}
else
{
- suit_obj = new SalomeApp_DataObject( aSObj );
- }
-
- it = entry2SuitObject.find( parent_id );
- if ( it != entry2SuitObject.end() ) {
- SalomeApp_DataObject* father = it->second;
- father->insertChildAtTag( suit_obj, tag );
- }
- else {
- if ( parent_id.length() == 3 ) // "0:1" - root item?
- {
- // This should be for a module
- SUIT_DataObject* father=myStudy->root();
- father->appendChild(suit_obj);
- }
- else
- {
- MESSAGE("SHOULD NEVER GET HERE!!!");
-
- //Try to find the SalomeApp_DataObject object parent
- std::string root_id = parent_id.substr( 0, 4 );
- std::string obj_id = parent_id.substr( 4 );
-
- std::string anID;
- std::string::size_type debut = 0;
- std::string::size_type fin;
- SalomeApp_DataObject* anObj = dynamic_cast<SalomeApp_DataObject*>( myStudy->root() );
- while ( anObj ) {
- fin = obj_id.find_first_of( ':', debut );
- if ( fin == std::string::npos ) {
- //last id
- anObj = dynamic_cast<SalomeApp_DataObject*>(anObj->childObject(atoi(obj_id.substr(debut).c_str())-1));
- if ( anObj )
- entry2SuitObject[parent_id] = anObj;
- break;
- }
- anID = root_id + obj_id.substr( 0, fin );
- EntryMapIter it2 = entry2SuitObject.find( anID );
- if ( it2 == entry2SuitObject.end() ) {
- //the ID is not known in entry2SuitObject
- anObj = dynamic_cast<SalomeApp_DataObject*>(anObj->childObject(atoi(obj_id.substr(debut, fin-debut).c_str())-1));
- if ( anObj )
- entry2SuitObject[anID] = anObj;
- }
- else
- anObj = it2->second;
- debut = fin+1;
+ MESSAGE("SHOULD NEVER GET HERE!!!");
+
+ //Try to find the SalomeApp_DataObject object parent
+ std::string root_id = parent_id.substr( 0, 4 );
+ std::string obj_id = parent_id.substr( 4 );
+
+ std::string anID;
+ std::string::size_type debut = 0;
+ std::string::size_type fin;
+ SalomeApp_DataObject* anObj = dynamic_cast<SalomeApp_DataObject*>( myStudy->root() );
+ while ( anObj ) {
+ fin = obj_id.find_first_of( ':', debut );
+ if ( fin == std::string::npos ) {
+ //last id
+ anObj = dynamic_cast<SalomeApp_DataObject*>(anObj->childObject(atoi(obj_id.substr(debut).c_str())-1));
+ if ( anObj )
+ entry2SuitObject[parent_id] = anObj;
+ break;
}
- if ( anObj )
- anObj->insertChildAtTag( suit_obj, tag );
+ anID = root_id + obj_id.substr( 0, fin );
+ EntryMapIter it2 = entry2SuitObject.find( anID );
+ if ( it2 == entry2SuitObject.end() ) {
+ //the ID is not known in entry2SuitObject
+ anObj = dynamic_cast<SalomeApp_DataObject*>(anObj->childObject(atoi(obj_id.substr(debut, fin-debut).c_str())-1));
+ if ( anObj )
+ entry2SuitObject[anID] = anObj;
+ }
+ else
+ anObj = it2->second;
+ debut = fin+1;
}
+ if ( anObj )
+ anObj->insertChildAtTag( suit_obj, tag );
}
- entry2SuitObject[theID] = suit_obj;
- } // END: work with study structure
- break;
- }
- case 2:
- { // Remove sobject
- EntryMapIter it = entry2SuitObject.find( theID );
- if ( it != entry2SuitObject.end() )
- {
- suit_obj = it->second;
- suit_obj->updateItem();
- SUIT_DataObject* father=suit_obj->parent();
- if(father)
- father->removeChild(suit_obj);
- entry2SuitObject.erase(it);
- }
- else
- {
- MESSAGE("Want to remove an unknown object" << theID);
}
- break;
+ entry2SuitObject[theID] = suit_obj;
+ } // END: work with study structure
+ break;
+ }
+ case 2:
+ { // Remove sobject
+ EntryMapIter it = entry2SuitObject.find( theID );
+ if ( it != entry2SuitObject.end() )
+ {
+ suit_obj = it->second;
+ suit_obj->updateItem();
+ SUIT_DataObject* father=suit_obj->parent();
+ if(father)
+ father->removeChild(suit_obj);
+ entry2SuitObject.erase(it);
+ }
+ else
+ {
+ MESSAGE("Want to remove an unknown object" << theID);
}
+ break;
+ }
case 0:
- { //modify sobject
- //MESSAGE("Want to modify an object " << theID);
- EntryMapIter it = entry2SuitObject.find( theID );
- if ( it != entry2SuitObject.end() )
- {
- suit_obj = it->second;
- suit_obj->updateItem();
- }
- else
- {
- MESSAGE("Want to modify an unknown object" << theID);
- }
- break;
+ { //modify sobject
+ //MESSAGE("Want to modify an object " << theID);
+ EntryMapIter it = entry2SuitObject.find( theID );
+ if ( it != entry2SuitObject.end() )
+ {
+ suit_obj = it->second;
+ suit_obj->updateItem();
}
- case 5: //IOR of the object modified
+ else
{
- EntryMapIter it = entry2SuitObject.find( theID );
- if ( it != entry2SuitObject.end() )
- suit_obj = it->second;
-
- /* Define visibility state */
- bool isComponent = dynamic_cast<SalomeApp_ModuleObject*>( suit_obj ) != 0;
- if ( suit_obj && !isComponent ) {
- QString moduleTitle = ((CAM_Application*)myStudy->application())->moduleTitle(suit_obj->componentDataType());
- if (!moduleTitle.isEmpty()) {
- LightApp_Displayer* aDisplayer = LightApp_Displayer::FindDisplayer(moduleTitle,false);
- if (aDisplayer) {
- if(aDisplayer->canBeDisplayed(theID.c_str())) {
- myStudy->setVisibilityState( theID.c_str(), Qtx::HiddenState );
- //MESSAGE("Object with entry : "<< theID <<" CAN be displayed !!!");
- }
- //else
- //MESSAGE("Object with entry : "<< theID <<" CAN'T be displayed !!!");
+ MESSAGE("Want to modify an unknown object" << theID);
+ }
+ break;
+ }
+ case 5: //IOR of the object modified
+ {
+ EntryMapIter it = entry2SuitObject.find( theID );
+ if ( it != entry2SuitObject.end() )
+ suit_obj = it->second;
+
+ /* Define visibility state */
+ bool isComponent = dynamic_cast<SalomeApp_ModuleObject*>( suit_obj ) != 0;
+ if ( suit_obj && !isComponent ) {
+ QString moduleTitle = ((CAM_Application*)myStudy->application())->moduleTitle(suit_obj->componentDataType());
+ if (!moduleTitle.isEmpty()) {
+ LightApp_Displayer* aDisplayer = LightApp_Displayer::FindDisplayer(moduleTitle,false);
+ if (aDisplayer) {
+ if(aDisplayer->canBeDisplayed(theID.c_str())) {
+ myStudy->setVisibilityState( theID.c_str(), Qtx::HiddenState );
+ //MESSAGE("Object with entry : "<< theID <<" CAN be displayed !!!");
}
+ //else
+ //MESSAGE("Object with entry : "<< theID <<" CAN'T be displayed !!!");
}
}
- break;
}
+ break;
+ }
#ifndef DISABLE_PYCONSOLE
case 6: //NoteBook variables were modified
- {
- myStudy->onNoteBookVarUpdate( QString( theID.c_str() ) );
- break;
- }
+ {
+ myStudy->onNoteBookVarUpdate( QString( theID.c_str() ) );
+ break;
+ }
#endif
default:MESSAGE("Unknown event: " << event);break;
} //switch
SalomeApp_Study* myStudy;
EntryMap entry2SuitObject;
};
+#endif // DISABLE_ORB
/*!
Constructor.
*/
SalomeApp_Study::SalomeApp_Study( SUIT_Application* app )
-: LightApp_Study( app ), myObserver( 0 )
+ : LightApp_Study( app )
+ #ifndef DISABLE_ORB
+ , myObserver( 0 )
+ #endif
{
myStudyDS = SalomeApp_Application::getStudy();
}
*/
SalomeApp_Study::~SalomeApp_Study()
{
+#ifndef DISABLE_ORB
if ( myObserver ) {
PortableServer::ObjectId_var oid = myObserver->_default_POA()->servant_to_id( myObserver );
myObserver->_default_POA()->deactivate_object( oid.in() );
myObserver = 0;
}
+#endif
}
#ifndef DISABLE_PYCONSOLE
bool aRet = CAM_Study::createDocument( theStr );
+#ifndef DISABLE_ORB
#ifdef WITH_SALOMEDS_OBSERVER
myObserver = new Observer_i(this);
//attach an observer to the study with notification of modifications
myStudyDS->attach(myObserver->_this(),true);
#endif
+#else
+ //TODO
+#endif
emit created( this );
// read HDF file
bool res = false;
bool showError = !application()->property("open_study_from_command_line").isValid() ||
- !application()->property("open_study_from_command_line").toBool();
+ !application()->property("open_study_from_command_line").toBool();
try {
res = myStudyDS->Open( theFileName.toUtf8().data() );
}
// but tree that corresponds to not-loaded data models will be updated any way.
((SalomeApp_Application*)application())->updateObjectBrowser( false );
+#ifndef DISABLE_ORB
#ifdef WITH_SALOMEDS_OBSERVER
dynamic_cast<SalomeApp_RootObject*>( root() )->setToSynchronize(false);
myObserver = new Observer_i(this);
//attach an observer to the study with notification of modifications
myStudyDS->attach(myObserver->_this(),true);
#endif
+#else
+ //TODO
+#endif
res = CAM_Study::openDocument( theFileName );
// but tree that corresponds to not-loaded data models will be updated any way.
((SalomeApp_Application*)application())->updateObjectBrowser( false );
+#ifndef DISABLE_ORB
#ifdef WITH_SALOMEDS_OBSERVER
dynamic_cast<SalomeApp_RootObject*>( root() )->setToSynchronize(false);
myObserver = new Observer_i(this);
//attach an observer to the study with notification of modifications
myStudyDS->attach(myObserver->_this(),true);
#endif
+#else
+ //TODO
+#endif
bool restore = application()->resourceMgr()->booleanValue( "Study", "store_visual_state", true );
if ( restore ) {
while ( it.hasNext() ) {
// Cast to LightApp class in order to give a chance
// to light modules to save their data
- if ( LightApp_DataModel* aModel =
+ if ( LightApp_DataModel* aModel =
dynamic_cast<LightApp_DataModel*>( it.next() ) ) {
listOfFiles.clear();
aModel->saveAs( theFileName, this, listOfFiles );
bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false );
bool isAscii = resMgr->booleanValue( "Study", "ascii_file", false );
+#ifndef DISABLE_ORB
bool res = studyDS()->SaveAs( theFileName.toUtf8().data(), isMultiFile, isAscii )
- && CAM_Study::saveDocumentAs( theFileName );
+ && CAM_Study::saveDocumentAs( theFileName );
+#else
+ // create engine for data model if not existing
+ it.toFront();
+ while ( it.hasNext() ) {
+ SalomeApp_EngineImpl::EngineIORForComponent(it.next()->module()->name().toUtf8().data(), true);
+ }
+ SALOMEDSImpl_DriverFactory* theDriversFactory = dynamic_cast<SALOMEDSImpl_DriverFactory*>(SalomeApp_EngineImplFactory::instance());
+ bool res = studyDS()->SaveAs( theFileName.toUtf8().data(), theDriversFactory, isMultiFile, isAscii )
+ && CAM_Study::saveDocumentAs( theFileName );
+#endif
res = res && saveStudyData(theFileName, 0); // 0 means persistence file
while ( it.hasNext() ) {
// Cast to LightApp class in order to give a chance
// to light modules to save their data
- if ( LightApp_DataModel* aModel =
+ if ( LightApp_DataModel* aModel =
dynamic_cast<LightApp_DataModel*>( it.next() ) ) {
listOfFiles.clear();
aModel->save(listOfFiles);
bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false );
bool isAscii = resMgr->booleanValue( "Study", "ascii_file", false );
+#ifndef DISABLE_ORB
bool res = studyDS()->Save( isMultiFile, isAscii ) && CAM_Study::saveDocument();
+#else
+ SALOMEDSImpl_DriverFactory* theDriversFactory = dynamic_cast<SALOMEDSImpl_DriverFactory*>(SalomeApp_EngineImplFactory::instance());
+ bool res = studyDS()->Save(theDriversFactory, isMultiFile, isAscii )
+ && CAM_Study::saveDocument();
+#endif
res = res && saveStudyData(studyName(), 0); // 0 means persistence file
if ( res )
{
LightApp_Study::closeDocument(permanently);
+#ifndef DISABLE_ORB
// close SALOMEDS document
if ( myObserver )
myStudyDS->detach( myObserver->_this() );
+#else
+ //TODO
+#endif
if ( permanently ) {
SUIT_Desktop* desk = SUIT_Session::session()->activeApplication()->desktop();
bool isBlocked = desk->signalsBlocked();
to participate in dump study operation.
\param theFileName - full path to the output Python file
- \param toPublish - if true, all objects are published in a study
- by the output script, including those not orignally present
+ \param toPublish - if true, all objects are published in a study
+ by the output script, including those not orignally present
in the current study.
- \param isMultiFile - if true, each module's dump is written into
+ \param isMultiFile - if true, each module's dump is written into
a separate Python file, otherwise a single output file is written
\param toSaveGUI - if true, the GUI state is written
\return - true if the operation succeeds, and false otherwise.
*/
bool SalomeApp_Study::dump( const QString& theFileName,
- bool toPublish,
+ bool toPublish,
bool isMultiFile,
bool toSaveGUI )
{
int savePoint = 0;
_PTR(AttributeParameter) ap;
+#ifndef DISABLE_ORB
_PTR(IParameters) ip = ClientFactory::getIParameters(ap);
if( ip->isDumpPython() )
if ( toSaveGUI ) { //SRN: Store a visual state of the study at the save point for DumpStudy method
ip->setDumpPython();
+#else
+ //auto aParam = ClientFactory::getIParameters(*ap);
+ //_PTR(IParameters) ip = _OBJ2PTR(IParameters, new SALOMEDSImpl_IParameters(ap));
+ //TODO if( ip->isDumpPython() )
+ //TODO ip->setDumpPython(); //Unset DumpPython flag.
+
+ if ( toSaveGUI ) { //SRN: Store a visual state of the study at the save point for DumpStudy method
+ //TODO ip->setDumpPython();
+#endif
//SRN: create a temporary save point
- savePoint = SalomeApp_VisualState(
- dynamic_cast<SalomeApp_Application*>( application() ) ).storeState();
+ savePoint = SalomeApp_VisualState(
+ dynamic_cast<SalomeApp_Application*>( application() ) ).storeState();
}
// Issue 21377 - Each data model is asked to dump its data not present in SALOMEDS study.
// This is an optional but important step, it gives a chance to light modules
// to dump their data as a part of common dump study operation
- ModelList list;
+ ModelList list;
dataModels( list );
QListIterator<CAM_DataModel*> it( list );
QStringList listOfFiles;
while ( it.hasNext() ) {
- if ( LightApp_DataModel* aModel =
+ if ( LightApp_DataModel* aModel =
dynamic_cast<LightApp_DataModel*>( it.next() ) ) {
listOfFiles.clear();
- if ( aModel->dumpPython( theFileName, this, isMultiFile, listOfFiles ) &&
+ if ( aModel->dumpPython( theFileName, this, isMultiFile, listOfFiles ) &&
!listOfFiles.isEmpty() )
// This call simply passes the data model's dump output to SalomeApp_Engine servant.
// This code is shared with persistence mechanism.
}
}
- // Now dump SALOMEDS part that also involves SalomeApp_Engine in case if
+ // Now dump SALOMEDS part that also involves SalomeApp_Engine in case if
// any light module is present in the current configuration
QFileInfo aFileInfo( theFileName );
+#ifndef DISABLE_ORB
bool res = myStudyDS->DumpStudy( aFileInfo.absolutePath().toUtf8().data(),
- aFileInfo.baseName().toUtf8().data(),
- toPublish,
- isMultiFile);
+ aFileInfo.baseName().toUtf8().data(),
+ toPublish,
+ isMultiFile);
+#else
+ // create engine for data model if not existing
+ it.toFront();
+ while ( it.hasNext() ) {
+ SalomeApp_EngineImpl::EngineIORForComponent(it.next()->module()->name().toUtf8().data(), true);
+ }
+ SALOMEDSImpl_DriverFactory* theDriversFactory = dynamic_cast<SALOMEDSImpl_DriverFactory*>(SalomeApp_EngineImplFactory::instance());
+
+ bool res = myStudyDS->DumpStudy( aFileInfo.absolutePath().toUtf8().data(),
+ aFileInfo.baseName().toUtf8().data(),
+ toPublish,
+ isMultiFile, theDriversFactory);
+#endif
if ( toSaveGUI )
removeSavePoint( savePoint ); //SRN: remove the created temporary save point.
ModelList list; dataModels( list );
QListIterator<CAM_DataModel*> it( list );
while ( it.hasNext() ){
- LightApp_DataModel* aLModel =
- dynamic_cast<LightApp_DataModel*>( it.next() );
+ LightApp_DataModel* aLModel =
+ dynamic_cast<LightApp_DataModel*>( it.next() );
// It is safe to call SetListOfFiles() for any kind of module
// because SetListOfFiles() does nothing for full modules :)
if ( aLModel )
if ( !res ){
_PTR(SComponent) aComp = myStudyDS->FindComponent(
- theDataModel->module()->name().toStdString() );
+ theDataModel->module()->name().toUtf8().data());
if ( !aComp )
return res;
if (!aModule) {
// Check SComponent existance
- std::string aCompDataType = dm->module()->name().toStdString();
+ QString aCompDataType = dm->module()->name();
- _PTR(SComponent) aComp = myStudyDS->FindComponent(aCompDataType);
+ _PTR(SComponent) aComp = myStudyDS->FindComponent(aCompDataType.toUtf8().data());
if (!aComp) {
// Create SComponent
- _PTR(StudyBuilder) aBuilder = myStudyDS->NewBuilder();
- aComp = aBuilder->NewComponent(aCompDataType);
+ auto aBuilder = myStudyDS->NewBuilder();
+ aComp = aBuilder->NewComponent(aCompDataType.toUtf8().data());
aBuilder->SetName(aComp, dm->module()->moduleName().toStdString());
QString anIconName = dm->module()->iconName();
if (!anIconName.isEmpty()) {
anAttr->SetPixMap(anIconName.toStdString());
}
+#ifndef DISABLE_ORB
// Set default engine IOR
// Issue 21377 - using separate engine for each type of light module
- std::string anEngineIOR = SalomeApp_Engine_i::EngineIORForComponent( aCompDataType.c_str(),
+ std::string anEngineIOR = SalomeApp_Engine_i::EngineIORForComponent( aCompDataType.toUtf8().data(),
true );
+#else
+ std::string anEngineIOR = SalomeApp_EngineImpl::EngineIORForComponent( aCompDataType.toUtf8().data(),
+ true );
+#endif
aBuilder->DefineComponentInstance(aComp, anEngineIOR);
//SalomeApp_DataModel::BuildTree( aComp, root(), this, /*skipExisitng=*/true );
SalomeApp_DataModel::synchronize( aComp, this );
}
else {
- _PTR(StudyBuilder) aBuilder = myStudyDS->NewBuilder();
+ auto aBuilder = myStudyDS->NewBuilder();
aBuilder->SetName(aComp, dm->module()->moduleName().toStdString());
QString anIconName = dm->module()->iconName();
if (!anIconName.isEmpty()) {
// 1. aModule == 0 means that this is a light module (no CORBA enigine)
if (!aModule) {
// Issue 21377 - using separate engine for each type of light module
- std::string aCompDataType = dm->module()->name().toStdString();
- anEngine = SalomeApp_Engine_i::EngineIORForComponent( aCompDataType.c_str(), true ).c_str();
- aSComp = myStudyDS->FindComponent( aCompDataType );
+ QString aCompDataType = dm->module()->name();
+#ifndef DISABLE_ORB
+ anEngine = SalomeApp_Engine_i::EngineIORForComponent( aCompDataType.toUtf8().data(), true ).c_str();
+#else
+ anEngine = SalomeApp_EngineImpl::EngineIORForComponent( aCompDataType.toUtf8().data(), true ).c_str();
+#endif
+ aSComp = myStudyDS->FindComponent( aCompDataType.toUtf8().data() );
}
else {
SalomeApp_DataModel* aDM = dynamic_cast<SalomeApp_DataModel*>( dm );
anEngine = aDM->getModule()->engineIOR();
if ( anEngine.isEmpty() )
return false;
- aSComp = myStudyDS->FindComponentID( std::string( anId.toLatin1() ) );
+ aSComp = myStudyDS->FindComponentID( anId.toUtf8().data() );
}
}
if ( aSComp ) {
- _PTR(StudyBuilder) aBuilder( myStudyDS->NewBuilder() );
+ auto aBuilder( myStudyDS->NewBuilder() );
+#ifndef DISABLE_ORB
if ( aBuilder ) {
try {
aBuilder->LoadWith( aSComp, std::string( anEngine.toLatin1() ) );
}
catch( const SALOME::SALOME_Exception& ) {
+#else
+ if ( aBuilder ) {
+ try {
+ SALOMEDSImpl_Driver* aDriver = SalomeApp_EngineImplFactory::instance()->GetDriverByIOR(anEngine.toUtf8().data());
+ aBuilder->LoadWith(*aSComp, aDriver);
+ }
+ catch( const SALOME_Exception& ) {
+#endif
// Oops, something went wrong while loading -> return an error
return false;
}
std::vector<std::string> SalomeApp_Study::GetListOfFiles( const char* theModuleName, int type ) const
{
// Issue 21377 - using separate engine for each type of light module
+#ifndef DISABLE_ORB
SalomeApp_Engine_i* aDefaultEngine = SalomeApp_Engine_i::GetInstance( theModuleName, false );
+#else
+ SalomeApp_EngineImpl* aDefaultEngine = SalomeApp_EngineImpl::GetInstance( theModuleName, false );
+#endif
if (aDefaultEngine)
return aDefaultEngine->GetListOfFiles( type );
const std::vector<std::string> theListOfFiles )
{
// Issue 21377 - using separate engine for each type of light module
+#ifndef DISABLE_ORB
SalomeApp_Engine_i* aDefaultEngine = SalomeApp_Engine_i::GetInstance( theModuleName, false );
+#else
+ SalomeApp_EngineImpl* aDefaultEngine = SalomeApp_EngineImpl::GetInstance( theModuleName, false );
+#endif
if (aDefaultEngine)
aDefaultEngine->SetListOfFiles(type, theListOfFiles);
}
std::vector<std::string> aSeq;
aSeq.reserve(n);
for (int i = 0; i < n; i++)
+#ifndef DISABLE_ORB
aSeq.push_back(CORBA::string_dup(aListOfFiles[i + 1].c_str()));
SalomeApp_Engine_i* engine = SalomeApp_Engine_i::GetInstance( theModuleName, false );
+#else
+ aSeq.push_back(std::string(aListOfFiles[i + 1].c_str()));
+ SalomeApp_EngineImpl* engine = SalomeApp_EngineImpl::GetInstance( theModuleName, false );
+#endif
bool toRemove = force || ( engine && !engine->keepFiles() );
if ( toRemove ) {
LightApp_DataObject* SalomeApp_Study::findObjectByEntry( const QString& theEntry )
{
LightApp_DataObject* o = 0;
+#ifndef DISABLE_ORB
if ( myObserver ) {
o = dynamic_cast<LightApp_DataObject*>( myObserver->findObject( theEntry.toUtf8().constData() ) );
}
+#endif
if ( !o ) {
o = LightApp_Study::findObjectByEntry( theEntry );
}
*/
void SalomeApp_Study::deleteReferencesTo( _PTR( SObject ) obj )
{
- _PTR(StudyBuilder) sb = studyDS()->NewBuilder();
+ auto sb = studyDS()->NewBuilder();
std::vector<_PTR(SObject)> aRefs = studyDS()->FindDependances( obj );
for( size_t i=0, n=aRefs.size(); i<n; i++ )
{
_PTR( SObject ) o = aRefs[i];
+#ifndef DISABLE_ORB
if( o->GetFatherComponent()->ComponentDataType()==obj->GetFatherComponent()->ComponentDataType() )
+#else
+ if( o->GetFatherComponent().ComponentDataType()==obj->GetFatherComponent().ComponentDataType() )
+#endif
{
sb->RemoveReference( o );
sb->RemoveObjectWithChildren( o );
*/
QString SalomeApp_Study::referencedToEntry( const QString& entry ) const
{
- _PTR(SObject) obj = studyDS()->FindObjectID( entry.toStdString() );
+ _PTR(SObject) obj = studyDS()->FindObjectID( entry.toUtf8().data() );
_PTR(SObject) refobj;
if( obj && obj->ReferencedObject( refobj ) )
*/
QString SalomeApp_Study::componentDataType( const QString& entry ) const
{
- _PTR(SObject) obj( studyDS()->FindObjectID( entry.toStdString() ) );
+ _PTR(SObject) obj( studyDS()->FindObjectID( entry.toUtf8().data() ) );
+#ifndef DISABLE_ORB
if ( !obj )
return LightApp_Study::componentDataType( entry );
return obj->GetFatherComponent()->ComponentDataType().c_str();
+#else
+ if ( !obj )
+ return LightApp_Study::componentDataType( entry );
+ return obj->GetFatherComponent().ComponentDataType().c_str();
+#endif
}
/*!
*/
bool SalomeApp_Study::isComponent( const QString& entry ) const
{
- _PTR(SObject) obj( studyDS()->FindObjectID( entry.toStdString() ) );
+ _PTR(SObject) obj( studyDS()->FindObjectID( entry.toUtf8().data() ) );
+#ifndef DISABLE_ORB
return obj && QString( obj->GetID().c_str() ) == obj->GetFatherComponent()->GetID().c_str();
+#else
+ return obj && QString( obj->GetID().c_str() ) == obj->GetFatherComponent().GetID().c_str();
+#endif
}
/*!
*/
void SalomeApp_Study::children( const QString& entry, QStringList& child_entries ) const
{
- _PTR(SObject) SO = studyDS()->FindObjectID( entry.toStdString() );
+ _PTR(SObject) SO = studyDS()->FindObjectID( entry.toUtf8().data() );
_PTR(ChildIterator) anIter ( studyDS()->NewChildIterator( SO ) );
anIter->InitEx( true );
while( anIter->More() )
{
- _PTR(SObject) val( anIter->Value() );
+ auto val( anIter->Value() );
+#ifndef DISABLE_ORB
child_entries.append( val->GetID().c_str() );
+#else
+ child_entries.append( val.GetID().c_str() );
+#endif
anIter->Next();
}
}
*/
void SalomeApp_Study::components( QStringList& comps ) const
{
+#ifndef DISABLE_ORB
for( _PTR(SComponentIterator) it ( studyDS()->NewComponentIterator() ); it->More(); it->Next() )
{
_PTR(SComponent) aComponent ( it->Value() );
+#else
+ for( _PTR(SComponentIterator) it ( studyDS()->GetNewComponentIterator()); it->More(); it->Next() )
+ {
+ _PTR(SComponent) aComponent ( it->GetValue() );
+#endif
// skip the magic "Interface Applicative" component
if ( aComponent && aComponent->ComponentDataType() != getVisualComponentName().toLatin1().constData() )
comps.append( aComponent->ComponentDataType().c_str() );
QString SalomeApp_Study::centry( const QString& comp ) const
{
QString e;
+#ifndef DISABLE_ORB
for( _PTR(SComponentIterator) it ( studyDS()->NewComponentIterator() ); it->More() && e.isEmpty(); it->Next() )
{
_PTR(SComponent) aComponent ( it->Value() );
+#else
+ for( _PTR(SComponentIterator) it ( studyDS()->GetNewComponentIterator()); it->More() && e.isEmpty(); it->Next() )
+ {
+ _PTR(SComponent) aComponent ( it->GetValue() );
+#endif
if ( aComponent && comp == aComponent->ComponentDataType().c_str() )
e = aComponent->GetID().c_str();
}
_PTR(SObject) so = studyDS()->FindComponent( getVisualComponentName().toLatin1().constData() );
if(!so) return v;
- _PTR(StudyBuilder) builder = studyDS()->NewBuilder();
- _PTR(ChildIterator) anIter ( studyDS()->NewChildIterator( so ) );
+ auto builder = studyDS()->NewBuilder();
+ auto anIter ( studyDS()->NewChildIterator( so ) );
for(; anIter->More(); anIter->Next())
{
+#ifndef DISABLE_ORB
_PTR(SObject) val( anIter->Value() );
+#else
+ _PTR(SObject) val( anIter->GetValue() );
+#endif
_PTR(GenericAttribute) genAttr;
if(builder->FindAttribute(val, genAttr, "AttributeParameter")) v.push_back(val->Tag());
}
void SalomeApp_Study::removeSavePoint(int savePoint)
{
if(savePoint <= 0) return;
- _PTR(AttributeParameter) AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
- _PTR(SObject) so = AP->GetSObject();
- _PTR(StudyBuilder) builder = studyDS()->NewBuilder();
+ auto AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
+ auto so = AP->GetSObject();
+ auto builder = studyDS()->NewBuilder();
builder->RemoveObjectWithChildren(so);
}
*/
QString SalomeApp_Study::getNameOfSavePoint(int savePoint)
{
+#ifndef DISABLE_ORB
_PTR(AttributeParameter) AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
_PTR(IParameters) ip = ClientFactory::getIParameters(AP);
+#else
+ _CLASS(AttributeParameter)* AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
+ _PTR(IParameters) ip; //TODO = ClientFactory::getIParameters(AP);
+#endif
return ip->getProperty("AP_SAVEPOINT_NAME").c_str();
}
*/
void SalomeApp_Study::setNameOfSavePoint(int savePoint, const QString& nameOfSavePoint)
{
+#ifndef DISABLE_ORB
_PTR(AttributeParameter) AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
_PTR(IParameters) ip = ClientFactory::getIParameters(AP);
+#else
+ _CLASS(AttributeParameter)* AP = studyDS()->GetCommonParameters(getVisualComponentName().toLatin1().constData(), savePoint);
+ _PTR(IParameters) ip; //TODO = ClientFactory::getIParameters(AP);
+#endif
ip->setProperty("AP_SAVEPOINT_NAME", nameOfSavePoint.toStdString());
}
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#pragma warning( disable:4251 )
#endif
+#ifndef DISABLE_ORB
#include "SALOMEDSClient.hxx"
+#else
+#include "SALOMEDSImplAdapt.hxx"
+#endif
class SALOMEAPP_EXPORT SalomeApp_Study : public LightApp_Study
{
virtual void dataModelInserted( const CAM_DataModel* );
virtual bool openDataModel( const QString&, CAM_DataModel* );
- virtual CAM_ModuleObject* createModuleObject( LightApp_DataModel* theDataModel,
+ virtual CAM_ModuleObject* createModuleObject( LightApp_DataModel* theDataModel,
SUIT_DataObject* theParent ) const;
protected slots:
virtual void updateModelRoot( const CAM_DataModel* );
private:
_PTR(Study) myStudyDS;
+#ifndef DISABLE_ORB
Observer_i* myObserver;
+#endif
#ifndef DISABLE_PYCONSOLE
- signals:
+signals:
void notebookVarUpdated( QString theVarName );
#endif
};
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SUIT_Desktop.h>
#include <SUIT_MessageBox.h>
+#ifndef DISABLE_ORB
// CORBA Headers
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes)
+#endif
// QT Includes
#include <QPushButton>
void SalomeApp_StudyPropertiesDlg::initData()
{
bool hasData = (SalomeApp_Application::getStudy() != NULL);
- _PTR(AttributeStudyProperties) propAttr;
+ /* _PTR(AttributeStudyProperties) propAttr;
if (hasData)
propAttr = SalomeApp_Application::getStudy()->GetProperties();
- hasData = hasData && propAttr;
+ hasData = hasData && propAttr;*/
if (hasData) {
+ auto propAttr = SalomeApp_Application::getStudy()->GetProperties();
+ if(propAttr){
//Creator and creation date
+#ifndef DISABLE_ORB
myAuthor->setText(propAttr->GetUserName().c_str());
+#else
+ //TODO
+#endif
+
int minutes, hours, day, month, year;
if (propAttr->GetCreationDate(minutes, hours, day, month, year)) {
QString strDate;
//Modifications
std::vector<std::string> aUsers;
std::vector<int> aMins, aHours, aDays, aMonths, aYears;
+#ifndef DISABLE_ORB
propAttr->GetModificationsList(aUsers, aMins, aHours, aDays, aMonths, aYears, false);
+#else
+ //TODO
+#endif
int aCnt = aUsers.size();
for ( int i = 0; i < (int)aCnt; i++ ) {
QString date;
myVersions->addTopLevelItem(item);
}
}
+ }
adjustSize();
}
*/
void SalomeApp_StudyPropertiesDlg::clickOnOk()
{
- _PTR(AttributeStudyProperties) propAttr = SalomeApp_Application::getStudy()->GetProperties();
+ auto propAttr = SalomeApp_Application::getStudy()->GetProperties();
//Firstly, store locked flag
if(propAttr) {
bool bLocked = myLocked->isChecked();
bool needWarning = false;
//Author
+#ifndef DISABLE_ORB
if (QString(propAttr->GetUserName().c_str()) != myAuthor->text().trimmed()) {
if(!propAttr->IsLocked()) {
propAttr->SetUserName(myAuthor->text().trimmed().toStdString());
}
}
+#else
+ //TODO
+ /*if (QString(propAttr->GetUserName().c_str()) != myAuthor->text().trimmed()) {
+ if(!propAttr->IsLocked()) {
+ propAttr->SetUserName(myAuthor->text().trimmed().toStdString());
+ myIsChanged = true;
+ } else {
+ needWarning = true;
+ }
+ }
+ */
+#endif
//Unit
if (QString(propAttr->GetUnits().c_str()) != myUnits->currentText()) {
if(!propAttr->IsLocked()) {
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <QDialog>
+#ifndef DISABLE_ORB
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SALOMEDS)
#include <SALOMEDSClient_Study.hxx>
+#else
+#include "SALOMEDSImpl_Study.hxx"
+#endif
class QLineEdit;
class QLabel;
return QColor( (int)( c.Red() * 255 ), (int)( c.Green() * 255 ), (int)( c.Blue() * 255 ) );
}
+#ifndef DISABLE_ORB
/*!
Gets message on exception \a S_ex.
*/
title, message );
}
+#endif //DISABLE_ORB
class Quantity_Color;
+#ifndef DISABLE_ORB
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(SALOME_Exception)
+#endif
/*!
Class which provide color converter and exception message box.
static Quantity_Color color( const QColor& );
static QColor color( const Quantity_Color& );
+#ifndef DISABLE_ORB
static QString ExceptionToString( const SALOME::SALOME_Exception& );
static void QtCatchCorbaException( const SALOME::SALOME_Exception& );
+#endif
};
#endif
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
{
QString entry = owner->entry();
- _PTR(SObject) aSObj( SalomeApp_Application::getStudy()->FindObjectID( entry.toStdString() ) );
+ _PTR(SObject) aSObj( SalomeApp_Application::getStudy()->FindObjectID( entry.toUtf8().data() ) );
if (aSObj)
{
- _PTR(SComponent) aComponent(aSObj->GetFatherComponent());
+#ifndef DISABLE_ORB
+ _PTR(SComponent) aComponent(aSObj->GetFatherComponent());
+#else
+ _PTR(SComponent) aComponent(_CLASS(SComponent)(aSObj->GetFatherComponent()));
+#endif
if ( aComponent && (aComponent->ComponentDataType() == myKind.toStdString()) )
return true;
}
-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <QApplication>
#include <QMultiHash>
+#ifndef DISABLE_ORB
#include <SALOMEDSClient_ClientFactory.hxx>//?
#include <SALOMEDSClient_IParameters.hxx>//?
+#else
+#include <SALOMEDSImpl_IParameters.hxx>
+#endif
#include <vector>//?
#include <string>//?
if ( savePoints.size() > 0)
savePoint = savePoints[savePoints.size()-1] + 1;
- _PTR(AttributeParameter) ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName().toLatin1().constData(),
+#ifndef DISABLE_ORB
+ _PTR(AttributeParameter) ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName().toLatin1().constData(),
savePoint );
- _PTR(IParameters) ip = ClientFactory::getIParameters( ap );
+ _PTR(IParameters) ip = ClientFactory::getIParameters( ap );
+#else
+ auto ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName().toLatin1().constData(),
+ savePoint);
+ _PTR(IParameters) ip; //TODO = ClientFactory::getIParameters( ap );
+#endif
ViewManagerList lst;
myApp->viewManagers( lst );
if ( !study )
return;
+#ifndef DISABLE_ORB
_PTR(AttributeParameter) ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName().toLatin1().constData(),
savePoint );
- _PTR(IParameters) ip = ClientFactory::getIParameters(ap);
+ _PTR(IParameters) ip = ClientFactory::getIParameters(ap);
+#else
+ auto ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName().toLatin1().constData(),
+ savePoint );
+ _PTR(IParameters) ip ; //TODO = ClientFactory::getIParameters(ap);
+#endif
qApp->installEventFilter( this );
for ( int i = 0; i < nbViewers; i++ )
{
std::string viewerEntry = ip->getValue( "AP_VIEWERS_LIST", i );
+ #ifndef DISABLE_ORB
std::vector<std::string> veiewerParams = ip->parseValue(viewerEntry,'_');
+#else
+ //TODO
+ std::vector<std::string> veiewerParams;
+ return;
+ // = ip->getValues(viewerEntry,'_');
+#endif
std::string type = veiewerParams[0];
std::string viewerID = veiewerParams[1];
SUIT_ViewManager* vm = myApp->newViewManager( type.c_str() );
QApplication::addLibraryPath( qtdir );
// Add application library path (to search style plugin etc...)
+
QString path = SUIT_Tools::addSlash( Qtx::getenv( "GUI_ROOT_DIR" ) ) + "bin/salome";
QApplication::addLibraryPath( QDir::toNativeSeparators( path ) );
// Load SalomeApp dynamic library
MESSAGE( "creation SUIT_Application" );
SUIT_Application* aGUIApp = aGUISession->startApplication( "SalomeApp", 0, 0 );
+ // Fill the executable name in session
+ aGUISession->setExecutableAppName(aGUISession->salomeAppName());
if ( aGUIApp )
{
#ifdef USE_SALOME_STYLE
--- /dev/null
+# Copyright (C) 2012-2020 CEA/DEN, EDF R&D, CSGROUP
+#
+# 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, 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
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+cmake_policy(SET CMP0060 NEW)
+
+INCLUDE(UseQtExt)
+
+# --- options ---
+
+# additional include directories
+INCLUDE_DIRECTORIES(
+ ${QT_INCLUDES}
+ ${Boost_INCLUDE_DIRS}
+ ${PYTHON_INCLUDE_DIRS}
+ ${OpenCASCADE_INCLUDE_DIR}
+ ${PTHREAD_INCLUDE_DIR}
+ ${PROJECT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}/idl
+ ${PROJECT_SOURCE_DIR}/src/Qtx
+ ${PROJECT_SOURCE_DIR}/src/SUIT
+ ${PROJECT_SOURCE_DIR}/src/Event
+ ${PROJECT_SOURCE_DIR}/src/Style
+ ${PROJECT_SOURCE_DIR}/src/SUIT
+ ${PROJECT_SOURCE_DIR}/src/STD
+ ${PROJECT_SOURCE_DIR}/src/CAM
+ ${PROJECT_SOURCE_DIR}/src/OBJECT
+ ${PROJECT_SOURCE_DIR}/src/LightApp
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp
+ ${PROJECT_SOURCE_DIR}/../../../SHAPER/src/SHAPERGUI
+ ${PROJECT_SOURCE_DIR}/../../../SHAPER/src/XGUI
+ ${PROJECT_SOURCE_DIR}/../../../SHAPER/src/ModuleBase
+ ${PROJECT_SOURCE_DIR}/../../../SHAPER/src/Config
+ ${PROJECT_SOURCE_DIR}/../../../SHAPER/src/Events
+ ${PROJECT_SOURCE_DIR}/src/OCCViewer
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp
+ )
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+ ${QT_DEFINITIONS}
+ ${BOOST_DEFINITIONS}
+ ${PYTHON_DEFINITIONS}
+ ${OpenCASCADE_DEFINITIONS}
+ -DHAVE_SALOME
+ -DDISABLE_ORB
+ #-DDISABLE_PYCONSOLE
+)
+
+# libraries to link to
+SET(_link_LIBRARIES
+ ${QT_LIBRARIES}
+ ShaperApp
+)
+
+
+ADD_EXECUTABLE(shaper Shaper.cxx)
+TARGET_LINK_LIBRARIES(shaper ${_link_LIBRARIES})
+INSTALL(TARGETS shaper EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_BINS})
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef DISABLE_PYCONSOLE
+#include <Container_init_python.hxx> // this include must be the first one as it includes Python.h
+#endif
+#include <Utils_SALOME_Exception.hxx>
+#include <utilities.h>
+
+#include "GUI_version.h"
+#include "Qtx.h"
+#include "QtxMsgHandler.h"
+#include "QtxSplash.h"
+//#include "SALOME_Event.h"
+#ifdef USE_SALOME_STYLE
+#include "Style_Salome.h"
+#endif // USE_SALOME_STYLE
+#include "SUIT_Application.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_ExceptionHandler.h"
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_Tools.h"
+
+#ifdef WIN32
+#define sleep _sleep
+#include <windows.h>
+#include <stdio.h>
+#include <shellapi.h>
+#endif
+#include <time.h>
+
+#include <QApplication>
+#include <QDir>
+#include <QFile>
+#include <QMutex>
+#include <QRegExp>
+#include <QTextStream>
+#include <QWaitCondition>
+#include <QThread>
+
+//! CORBA server for SALOME GUI session
+/*!
+ * SALOME_Session_Server launches a SALOME session servant.
+ * The servant registers to the Naming Service.
+ * See SALOME_Session.idl for interface specification.
+ * Main services offered by the servant are:
+ * - launch GUI
+ * - stop Session ( must be idle )
+ * - get session state
+ *
+ * Also, session server:
+ * - reads arguments,
+ * - defines list of embedded services to launch with their arguments,
+ * - defines list of standalone services to connect/wait,
+ * - waits for naming service to finish its initalization,
+ * - creates and runs a separate thread to launch/initialize all services.
+ */
+
+#include "SalomeApp_Application.h"
+
+
+namespace myAppNameSpace{
+ const QString myAppName("ShaperApp");
+ const QString myLightAppName("LightShaperApp");
+ }
+
+namespace
+{
+ //! Custom handler to manage Qt messages
+ class MsgHandler: public QtxMsgHandlerCallback
+ {
+ public:
+ MsgHandler() {}
+ void qtMessage( QtMsgType type, const QMessageLogContext& /*context*/, const QString& message )
+ {
+ (void)message; // unused in debug mode
+ switch ( type )
+ {
+ case QtDebugMsg:
+#ifdef QT_DEBUG_MESSAGE
+ MESSAGE( "Debug: " << qPrintable( message ) );
+#endif
+ break;
+ case QtWarningMsg:
+ MESSAGE( "Warning: " << qPrintable( message ) );
+ break;
+ case QtCriticalMsg:
+ MESSAGE( "Critical: " << qPrintable( message ) );
+ break;
+ case QtFatalMsg:
+ MESSAGE( "Fatal: " << qPrintable( message ) );
+ break;
+ case QtInfoMsg:
+ default:
+ MESSAGE( "Information: " << qPrintable( message ) );
+ break;
+ }
+ }
+ };
+
+ //! Get version of SALOME GUI module
+ QString salomeVersion()
+ {
+ return GUI_VERSION_STR;
+ }
+
+ //! Custom resources manager, that allows customization of application name/version
+ // via configuration/translation files.
+ class ResourceMgr : public SUIT_ResourceMgr
+ {
+ public:
+ ResourceMgr( const QString& appName = myAppNameSpace::myAppName ) : SUIT_ResourceMgr( appName, "%1Config" )
+ {
+ customize(); // activate customization
+ setCurrentFormat( "xml" );
+ setOption( "translators", QString( "%P_msg_%L.qm|%P_icons.qm|%P_images.qm" ) );
+ }
+
+ QString customName() const { return myCustomAppName; }
+ QString version() const { return myCustomAppVersion; }
+
+ private:
+ static void customize()
+ {
+ // Try to retrieve actual application name and version from translation files.
+ // We create temporary resource manager and load LightApp and ShaperApp translations.
+ // This procedure is supposed to be done only once, at first call.
+ if ( myCustomAppName.isNull() ) {
+ SUIT_ResourceMgr mgr( myAppNameSpace::myAppName, "%1Config" );
+ mgr.setCurrentFormat( "xml" );
+ mgr.setWorkingMode( IgnoreUserValues ); // prevent reading data from user's file
+ mgr.loadLanguage( myAppNameSpace::myLightAppName, "en" );
+ mgr.loadLanguage( myAppNameSpace::myAppName, "en" );
+
+ // actual application name can be customized via APP_NAME resource key
+ myCustomAppName = QObject::tr( "APP_NAME" ).trimmed();
+ if ( myCustomAppName == "APP_NAME" || myCustomAppName.toLower() == "shaper" )
+ myCustomAppName = myAppNameSpace::myAppName; // fallback name
+
+ // actual application name can be customized via APP_VERSION resource key
+ myCustomAppVersion = QObject::tr( "APP_VERSION" ).trimmed();
+ if ( myCustomAppVersion == "APP_VERSION" )
+ myCustomAppVersion = myCustomAppName == myAppNameSpace::myAppName ? salomeVersion() : ""; // fallback version
+ }
+ }
+
+ protected:
+ QString userFileName( const QString& /*appName*/, const bool forLoad ) const
+ {
+ if ( version().isEmpty() ) return "";
+ return SUIT_ResourceMgr::userFileName( myCustomAppName, forLoad );
+ }
+
+ virtual long userFileId( const QString& _fname ) const
+ {
+ //////////////////////////////////////////////////////////////////////////////////////////////
+ // In SALOME and SALOME-based applications the user preferences file is named as
+ // - <AppName>.xml.<AppVersion> on Windows
+ // - <AppName>rc.<AppVersion> on Linux
+ // where
+ // * AppName is application name, defaults to SalomeApp. Can be customized in SALOME-based
+ // applications, see ResourceMgr above for more details.
+ // * AppVersion is application version, defaults to current version of SALOME GUI module
+ // if AppName is not customize, otherwise empty. Can be customized in SALOME-based
+ // applications, see ResourceMgr above for more details.
+ //
+ // Since version 6.5.0 of SALOME, user file is stored in the ~/.config/salome
+ // directory. For backward compatibility, when user preferences from nearest
+ // version of application is searched, user home directory is also looked through,
+ // with lower priority.
+ //
+ // Since version 6.6.0 of SALOME, user file name on Linux is no more prefixed by dot
+ // symbol since it is stored in the hidden ~/.config/salome directory. However, dot-prefixed
+ // files are also taken into account (with lower priority) for backward compatibility.
+ //
+ // Notes:
+ // - Currently the following format of version number is supported:
+ // <major>[.<minor>[.<release>[<type><dev>]]]
+ // Parts in square brackets are considered optional. Here:
+ // * major - major version id
+ // * minor - minor version id
+ // * release - maintenance version id
+ // * type - dev or patch marker; it can be either one alphabetical symbol (from 'a' to 'z')
+ // or 'rc' to point release candidate (case-insensitive)
+ // * dev - dev version or patch number
+ // All numerical values must be of range [1-99].
+ // Examples: 1.0, 6.5.0, 1.2.0a1, 3.3.3rc3 (release candidate 3), 11.0.0p1 (patch 1)
+ //
+ // - Versioning approach can be customized by implementing and using own resource manager class,
+ // see QtxResurceMgr, SUIT_ResourceMgr classes, and ResourceMgr class above in this file.
+ //////////////////////////////////////////////////////////////////////////////////////////////
+
+ long id = -1;
+ if ( !myCustomAppName.isEmpty() ) {
+#ifdef WIN32
+ // On Windows, user file name is something like SalomeApp.xml.6.5.0 where
+ // - SalomeApp is an application name (can be customized)
+ // - xml is a file format (xml or ini)
+ // - 6.5.0 is an application version, can include alfa/beta/rc marks, e.g. 6.5.0a3, 6.5.0rc1
+ QRegExp exp( QString( "%1\\.%2\\.([a-zA-Z0-9.]+)" ).arg( myCustomAppName ).arg( currentFormat() ) );
+#else
+ // On Linux, user file name is something like SalomeApprc.6.5.0 where
+ // - SalomeApp is an application name (can be customized)
+ // - 6.5.0 is an application version, can include alfa/beta/rc marks, e.g. 6.5.0a3, 6.5.0rc1
+
+ // VSR 24/09/2012: issue 0021781: since version 6.6.0 user filename is not prepended with "."
+ // when it is stored in the ~/.config/<appname> directory;
+ // for backward compatibility we also check files prepended with "." with lower priority
+ QRegExp exp( QString( "\\.?%1rc\\.([a-zA-Z0-9.]+)" ).arg( myCustomAppName ) );
+#endif
+ QString fname = QFileInfo( _fname ).fileName();
+ if ( exp.exactMatch( fname ) ) {
+ long fid = Qtx::versionToId( exp.cap( 1 ) );
+ if ( fid > 0 ) id = fid;
+ }
+ }
+ return id;
+ }
+
+ private:
+ static QString myCustomAppName;
+ static QString myCustomAppVersion;
+ };
+ QString ResourceMgr::myCustomAppName;
+ QString ResourceMgr::myCustomAppVersion;
+
+ //! Custom session, to use custom resource manager class.
+ class Session : public SUIT_Session
+ {
+ public:
+ virtual SUIT_ResourceMgr* createResourceMgr( const QString& appName ) const
+ {
+ return new ResourceMgr( appName );
+ }
+ };
+
+ //! Custom QApplication class, redefines notify() method, to transfer all events
+ // via centralized exception handling mechanism.
+ class Application : public QApplication
+ {
+ public:
+ Application( int& argc, char** argv )
+ : QApplication( argc, argv ),
+ myHandler ( 0 )
+ {
+ myDebug = !Qtx::getenv( "SALOME_DEBUG_EXCEPTIONS" ).isEmpty();
+ }
+
+ virtual bool notify( QObject* receiver, QEvent* e )
+ {
+ if ( myDebug || !myHandler ) {
+ return QApplication::notify( receiver, e );
+ }
+ else {
+ try {
+ return myHandler->handle( receiver, e );
+ }
+ catch ( std::exception& e ) {
+ std::cerr << "notify(): Caught exception : " << e.what() << std::endl;
+ }
+ catch (...) {
+ std::cerr << "notify(): Caught unknown exception : there's probably a bug in SALOME platform" << std::endl;
+ }
+ return false; // return false when exception is caught
+ }
+ }
+
+ SUIT_ExceptionHandler* handler() const { return myHandler; }
+ void setHandler( SUIT_ExceptionHandler* h ) { myHandler = h; }
+
+ private:
+ SUIT_ExceptionHandler* myHandler;
+ bool myDebug;
+ };
+
+ //! Checks command line for presense of given option(s).
+ // Option that results to \c true is specified via \a trueOption parameter.
+ // Option that results to \c false is specified via \a falseOption parameter (empty for default).
+ // Default value for the result (returned if both \a trueOption \a falseOption are not given) is specified via \c defValue parameter.
+ bool boolCmdOption( const QString trueOption, const QString falseOption = QString(), bool defValue = false )
+ {
+ bool value = defValue;
+
+ QStringList args = QApplication::arguments();
+ foreach ( QString arg, args )
+ {
+ if ( arg == trueOption )
+ value = true;
+ else if ( arg == falseOption )
+ value = false;
+ }
+ return value;
+ }
+
+} // end of anonymous namespace
+
+// ---------------------------- MAIN -----------------------
+int main( int argc, char **argv )
+{
+ if( myAppNameSpace::myAppName == "ShaperApp")
+ qputenv(QString(myAppNameSpace::myAppName + "Config").toUtf8().data(),
+ qgetenv("SalomeAppConfig"));
+
+ // Set-up application settings configuration (as for QSettings)
+ // Note: these are default settings which can be customized (see below)
+ QApplication::setOrganizationName( "salome" );
+ QApplication::setApplicationName( "shaper" );
+ QApplication::setApplicationVersion( salomeVersion() );
+
+ // Install Qt debug messages handler
+ MsgHandler msgHandler;
+ qInstallMessageHandler( QtxMsgHandler );
+
+ // Add <qtdir>/plugins dir to the pluins search path for image plugins
+ QString qtdir = Qtx::qtDir( "plugins" );
+ if ( !qtdir.isEmpty() )
+ QApplication::addLibraryPath( qtdir );
+
+ // Add application library path (to search style plugin etc...)
+
+ QString path = SUIT_Tools::addSlash( Qtx::getenv( "GUI_ROOT_DIR" ) ) + "bin/salome";
+ QApplication::addLibraryPath( QDir::toNativeSeparators( path ) );
+
+ // QSurfaceFormat should be set before creation of QApplication,
+ // so to avoid conflicts beetween SALOME and ParaView QSurfaceFormats we should merge theirs formats
+ // (see void Qtx::initDefaultSurfaceFormat()) and set the resultant format here.
+ Qtx::initDefaultSurfaceFormat();
+
+ // Create Qt application instance: this should be done as early as possible!
+ // Note: QApplication forces setting locale LC_ALL to system one: setlocale(LC_ALL, "").
+ Application app( argc, argv );
+
+ // Initialize Python (only once)
+ // Note: Python forces setting locale LC_CTYPE to system one: setlocale(LC_CTYPE, "").
+#ifndef DISABLE_PYCONSOLE
+ char* py_argv[] = {(char*)""};
+ KERNEL_PYTHON::init_python( 1, py_argv );
+#endif
+ // Create auxiliary resource manager to access application settings
+ ResourceMgr resMgr;
+ resMgr.setWorkingMode( ResourceMgr::IgnoreUserValues );
+ resMgr.loadLanguage( myAppNameSpace::myLightAppName, "en" );
+ resMgr.loadLanguage( myAppNameSpace::myAppName, "en" );
+ resMgr.loadLanguage( "Session" );
+
+ // Set-up application settings configuration possible customized via resources
+ if ( resMgr.customName() != myAppNameSpace::myAppName ) {
+ QApplication::setApplicationName( resMgr.customName() );
+ QApplication::setApplicationVersion( resMgr.version() );
+ }
+
+ // Force default "C" locale if requested via user's preferences
+ // Note: this does not change whole application locale (changed via setlocale() function),
+ // but only affects GUI behavior
+ resMgr.setWorkingMode( ResourceMgr::AllowUserValues ); // we must take into account user preferences
+ if ( resMgr.booleanValue( "language", "locale", true ) )
+ QLocale::setDefault( QLocale::c() );
+ resMgr.setWorkingMode( ResourceMgr::IgnoreUserValues );
+
+ bool isGUI = boolCmdOption( "--show-desktop", "--hide-desktop", true ); // true by default
+ bool isSplash = boolCmdOption( "--show-splash", "--hide-splash", true ); // true by default
+ isSplash = false;
+ // Show splash screen (only if both the "GUI" and "SPLASH" options are true)
+ QtxSplash* splash = 0;
+ if ( isGUI && isSplash ) {
+ splash = QtxSplash::splash( QPixmap() );
+ splash->readSettings( &resMgr );
+ if ( splash->pixmap().isNull() )
+ splash->setPixmap( resMgr.loadPixmap(myAppNameSpace::myLightAppName, QObject::tr( "ABOUT_SPLASH" ) ) );
+ if ( splash->pixmap().isNull() ) {
+ delete splash;
+ splash = 0;
+ }
+ else {
+ splash->setOption( "%A", QObject::tr( "APP_NAME" ) );
+ splash->setOption( "%V", QObject::tr( "ABOUT_VERSION" ).arg( resMgr.version() ) );
+ splash->setOption( "%L", QObject::tr( "ABOUT_LICENSE" ) );
+ splash->setOption( "%C", QObject::tr( "ABOUT_COPYRIGHT" ) );
+ splash->show();
+ QApplication::instance()->processEvents();
+ }
+ }
+
+ // Initialization
+ int result = -1;
+
+ SUIT_Session* aGUISession = 0;
+
+#if defined(WIN32) && defined(UNICODE)
+ char** new_argv = NULL;
+#endif
+
+ bool shutdownAll = false;
+ bool debugExceptions = boolCmdOption( "--no-exception-handler" ) ||
+ resMgr.booleanValue( "launch", "noexcepthandler", false );
+
+ while ( true ) {
+ // SUIT_Session creation
+ aGUISession = new Session();
+
+ MESSAGE( "creation SUIT_Application" );
+
+ aGUISession->resourceMgr() = new ResourceMgr( myAppNameSpace::myAppName );
+ aGUISession->resourceMgr()->loadLanguage();
+
+ SalomeApp_Application* aGUIApp = new SalomeApp_Application();
+ aGUIApp->setObjectName(myAppNameSpace::myAppName);
+ aGUISession->insertApplication(aGUIApp);
+ aGUIApp->start();
+
+ // Fill the executable name in session
+ aGUISession->setExecutableAppName(aGUISession->shaperAppName());
+ if ( aGUIApp )
+
+ {
+#ifdef USE_SALOME_STYLE
+ Style_Salome::initialize( aGUIApp->resourceMgr() );
+ if ( aGUIApp->resourceMgr()->booleanValue( "Style", "use_salome_style", true ) )
+ Style_Salome::apply();
+#endif // USE_SALOME_STYLE
+
+ if ( !debugExceptions )
+ app.setHandler( aGUISession->handler() ); // after loading SalomeApp application
+ // aGUISession contains SalomeApp_ExceptionHandler
+
+ // Run GUI loop
+ MESSAGE( "run(): starting the main event loop" );
+
+ if ( splash )
+ splash->finish( aGUIApp->desktop() );
+
+ result = app.exec();
+
+ splash = 0;
+
+ if ( result == SUIT_Session::NORMAL ) {
+ // desktop is explicitly closed by user from GUI
+ // exit flags says if it's necessary to shutdown all servers
+ // all session server only
+ shutdownAll = aGUISession->exitFlags();
+ }
+
+ }
+ break;
+ delete aGUISession;
+ aGUISession = 0;
+
+ }
+
+ delete aGUISession;
+
+#if defined(WIN32) && defined(UNICODE)
+ delete[] new_argv;
+#endif
+#ifndef DISABLE_PYCONSOLE
+ // Finalize Python
+ if ( Py_IsInitialized() )
+ {
+ PyGILState_Ensure();
+ Py_Finalize();
+ }
+#endif
+ MESSAGE( "shaper: end" );
+
+ return result;
+}
--- /dev/null
+# Copyright (C) 2012-2020 CEA/DEN, EDF R&D, CSGROUP
+#
+# 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, 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
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+INCLUDE(UseQtExt)
+
+# --- options ---
+
+# additional include directories
+INCLUDE_DIRECTORIES(
+ ${OpenCASCADE_INCLUDE_DIR}
+ ${QT_INCLUDES}
+ ${QWT_INCLUDE_DIR}
+ ${Boost_INCLUDE_DIRS}
+ ${PTHREAD_INCLUDE_DIR}
+ ${PROJECT_BINARY_DIR}/idl
+ ${PROJECT_SOURCE_DIR}/src/CAM
+ ${PROJECT_SOURCE_DIR}/src/CASCatch
+ ${PROJECT_SOURCE_DIR}/src/Event
+ ${PROJECT_SOURCE_DIR}/src/LightApp
+ ${PROJECT_SOURCE_DIR}/src/OBJECT
+ ${PROJECT_SOURCE_DIR}/src/ObjBrowser
+ ${PROJECT_SOURCE_DIR}/src/Prs
+ ${PROJECT_SOURCE_DIR}/src/Qtx
+ ${PROJECT_SOURCE_DIR}/src/STD
+ ${PROJECT_SOURCE_DIR}/src/SUIT
+ ${PROJECT_SOURCE_DIR}/src/SVTK
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI
+ ${PROJECT_SOURCE_DIR}/src/VTKViewer
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp
+ SALOMEDSImplAdapt
+)
+
+IF(SALOME_USE_PYCONSOLE)
+ INCLUDE_DIRECTORIES(
+ ${PYTHON_INCLUDE_DIRS}
+ ${PROJECT_SOURCE_DIR}/tools/PyConsole/src
+ ${PROJECT_SOURCE_DIR}/tools/PyInterp/src
+ )
+ENDIF()
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+ ${QT_DEFINITIONS}
+ ${QWT_DEFINITIONS}
+ ${OpenCASCADE_DEFINITIONS}
+ ${BOOST_DEFINITIONS}
+ -DDISABLE_ORB
+ -DSHAPER_STANDALONE
+ #-DDISABLE_PYCONSOLE
+ )
+
+IF(SALOME_USE_PYCONSOLE)
+ ADD_DEFINITIONS(${PYTHON_DEFINITIONS})
+ENDIF()
+
+# ---- add static ToolsGUI in SALOMEDSImpl mode ------------------
+# header files / to be processed by moc
+SET(ToolsGUI_moc_HEADERS
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.h
+ )
+
+# header files / to install
+SET(ToolsGUI_HEADERS ${ToolsGUI_moc_HEADERS} ${ToolsGUI_other_HEADERS})
+# --- resources ---
+# resource files / to be processed by lrelease
+SET(ToolsGUI_ts_RESOURCES
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI/resources/ToolsGUI_msg_en.ts
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI/resources/ToolsGUI_msg_fr.ts
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI/resources/ToolsGUI_msg_ja.ts
+)
+# sources / static
+SET(ToolsGUI_other_SOURCES
+ ${PROJECT_SOURCE_DIR}/src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.cxx
+)
+# sources / to compile
+SET(ToolsGUI_SOURCES ${ToolsGUI_other_SOURCES} ${ToolsGUI_moc_SOURCES})
+
+# ---- add static TOOLSDS in SALOMEDSImpl mode ------------------
+# sources / static
+SET(TOOLSDS_SOURCES
+ ${PROJECT_SOURCE_DIR}/../KERNEL/src/TOOLSDS/SALOMEDS_Tool.cxx
+ ${PROJECT_SOURCE_DIR}/../KERNEL/src/Utils/Utils_SALOME_Exception.cxx
+ ${PROJECT_SOURCE_DIR}/../KERNEL/src/Utils/duplicate.cxx
+ )
+
+# ------------------------------------------------------------------
+
+# libraries to link to
+SET(_link_LIBRARIES
+ ${QT_LIBRARIES}
+ ${KERNEL_SalomeDSImpl}
+ LightApp
+ )
+
+IF(SALOME_USE_VTKVIEWER)
+ LIST(APPEND _link_LIBRARIES VTKViewer SVTK)
+ENDIF()
+
+IF(SALOME_USE_PYCONSOLE)
+ LIST(APPEND _link_LIBRARIES PyInterp PyConsole)
+ENDIF()
+
+IF(SALOME_USE_GLVIEWER)
+ LIST(APPEND _link_LIBRARIES GLViewer)
+ENDIF()
+
+IF(SALOME_USE_PLOT2DVIEWER)
+ LIST(APPEND _link_LIBRARIES Plot2d)
+ IF(SALOME_USE_SALOMEOBJECT)
+ LIST(APPEND _link_LIBRARIES SPlot2d)
+ ENDIF(SALOME_USE_SALOMEOBJECT)
+ENDIF(SALOME_USE_PLOT2DVIEWER)
+
+IF(SALOME_USE_OCCVIEWER)
+ LIST(APPEND _link_LIBRARIES OCCViewer)
+ IF(SALOME_USE_SALOMEOBJECT)
+ LIST(APPEND _link_LIBRARIES SOCC)
+ ENDIF(SALOME_USE_SALOMEOBJECT)
+ENDIF()
+
+IF(SALOME_USE_PVVIEWER)
+ LIST(APPEND _link_LIBRARIES PVViewer)
+ENDIF()
+
+IF(SALOME_USE_SALOMEOBJECT)
+ LIST(APPEND _link_LIBRARIES SalomeObject)
+ENDIF()
+
+IF(NOT SALOME_LIGHT_ONLY)
+ LIST(APPEND _link_LIBRARIES SalomeIDLGUI)
+ LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeContainer})
+ENDIF()
+
+# --- headers ---
+
+# header files / to be processed by moc
+
+SET(_moc_HEADERS ${SalomeCommon_moc_HEADERS})
+
+IF(SALOME_USE_PYCONSOLE)
+ LIST(APPEND _moc_HEADERS ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_NoteBook.h)
+ENDIF()
+
+# header files / no moc processing
+
+SET(_other_HEADERS ${SalomeCommon_other_HEADERS}
+ SalomeApp_EngineImpl.h)
+
+IF(SALOME_USE_PYCONSOLE)
+ LIST(APPEND _other_HEADERS ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_PyInterp.h)
+ENDIF()
+
+# header files / to install
+SET(ShaperApp_HEADERS ${_moc_HEADERS} ${_other_HEADERS})
+
+# --- resources ---
+
+# resource files / to be processed by lrelease
+SET(_ts_RESOURCES
+ resources/ShaperApp_images.ts
+ resources/ShaperApp_msg_en.ts
+ resources/ShaperApp_msg_fr.ts
+ resources/ShaperApp_msg_ja.ts
+ resources/LightShaperApp_images.ts
+ resources/LightShaperApp_msg_en.ts
+ resources/LightShaperApp_msg_fr.ts
+ resources/LightShaperApp_msg_ja.ts
+)
+
+# resource files / static
+SET(_other_RESOURCES
+ resources/ShaperApp.xml
+ resources/LightShaperApp.xml
+ resources/shaper.png
+)
+SET(SALOME_RESOURCES_FILES
+ shaper.png
+)
+# --- sources ---
+
+# sources / moc wrappings
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS} ${ToolsGUI_moc_HEADERS})
+
+# sources / static
+
+SET(_other_SOURCES ${SalomeCommon_other_SOURCES}
+ SalomeApp_EngineImpl.cxx)
+
+IF(SALOME_USE_PYCONSOLE)
+ LIST(APPEND _other_SOURCES ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_PyInterp.cxx
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/SalomeApp_NoteBook.cxx)
+ENDIF()
+
+# adapter sources for GUI without CORBA
+ADD_SUBDIRECTORY(SALOMEDSImplAdapt)
+
+# sources / to compile
+SET(ShaperApp_SOURCES ${_other_SOURCES} ${_moc_SOURCES} ${ToolsGUI_SOURCES} ${TOOLSDS_SOURCES} ${SALOMEDSImplAdapt_SOURCES})
+
+# --- scripts ---
+
+# scripts / bin
+SET(_bin_SCRIPTS
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/addvars2notebook.py
+)
+
+# scripts / python
+SET(_py_SCRIPTS
+ ${PROJECT_SOURCE_DIR}/src/SalomeApp/salome_pluginsmanager.py
+)
+
+# --- rules ---
+
+ADD_LIBRARY(ShaperApp ${ShaperApp_SOURCES})
+TARGET_LINK_LIBRARIES(ShaperApp ${_link_LIBRARIES})
+INSTALL(TARGETS ShaperApp EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+
+INSTALL(FILES ${ShaperApp_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
+QT_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}")
+
+INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
+
+SALOME_INSTALL_SCRIPTS("${_py_SCRIPTS}" ${SALOME_INSTALL_PYTHON})
+SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_PYTHON})
+
+
+
--- /dev/null
+# Copyright (C) 2012-2020 CEA/DEN, EDF R&D, CSGROUP
+#
+# 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, 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
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+
+SET(SALOMEDSImplAdapt_SOURCES
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_ChildIterator.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_SComponent.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_SComponentIterator.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_SObject.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_StudyBuilder.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_Study.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_UseCaseBuilder.cxx
+ ${PROJECT_SOURCE_DIR}/src/ShaperApp/SALOMEDSImplAdapt/SALOMEDSImplAdapt_UseCaseIterator.cxx
+ )
+
+# export for Shaper application
+SET(SALOMEDSImplAdapt_SOURCES ${SALOMEDSImplAdapt_SOURCES} PARENT_SCOPE)
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef SALOMEDSIMPL_HXX__
+#define SALOMEDSIMPL_HXX__
+
+#include "SALOMEDSImpl_AttributeComment.hxx"
+#include "SALOMEDSImpl_AttributeDrawable.hxx"
+#include "SALOMEDSImpl_AttributeExpandable.hxx"
+#include "SALOMEDSImpl_AttributeExternalFileDef.hxx"
+#include "SALOMEDSImpl_AttributeFileType.hxx"
+#include "SALOMEDSImpl_AttributeFlags.hxx"
+#include "SALOMEDSImpl_AttributeGraphic.hxx"
+#include "SALOMEDSImpl_AttributeIOR.hxx"
+#include "SALOMEDSImpl_AttributeInteger.hxx"
+#include "SALOMEDSImpl_AttributeLocalID.hxx"
+#include "SALOMEDSImpl_AttributeName.hxx"
+#include "SALOMEDSImpl_AttributeOpened.hxx"
+#include "SALOMEDSImpl_AttributePersistentRef.hxx"
+#include "SALOMEDSImpl_AttributePixMap.hxx"
+#include "SALOMEDSImpl_AttributePythonObject.hxx"
+#include "SALOMEDSImpl_AttributeReal.hxx"
+#include "SALOMEDSImpl_AttributeSelectable.hxx"
+#include "SALOMEDSImpl_AttributeSequenceOfInteger.hxx"
+#include "SALOMEDSImpl_AttributeSequenceOfReal.hxx"
+#include "SALOMEDSImpl_AttributeStudyProperties.hxx"
+#include "SALOMEDSImpl_AttributeTableOfInteger.hxx"
+#include "SALOMEDSImpl_AttributeTableOfReal.hxx"
+#include "SALOMEDSImpl_AttributeTableOfString.hxx"
+#include "SALOMEDSImpl_AttributeTarget.hxx"
+#include "SALOMEDSImpl_AttributeTextColor.hxx"
+#include "SALOMEDSImpl_AttributeTextHighlightColor.hxx"
+#include "SALOMEDSImpl_AttributeTreeNode.hxx"
+#include "SALOMEDSImpl_AttributeUserID.hxx"
+#include "SALOMEDSImpl_AttributeParameter.hxx"
+#include "SALOMEDSImpl_AttributeString.hxx"
+#include "SALOMEDSImpl_ChildIterator.hxx"
+#include "SALOMEDSImpl_GenericAttribute.hxx"
+#include "SALOMEDSImpl_GenericVariable.hxx"
+#include "SALOMEDSImpl_SComponent.hxx"
+#include "SALOMEDSImpl_SComponentIterator.hxx"
+#include "SALOMEDSImpl_SObject.hxx"
+#include "SALOMEDSImpl_Study.hxx"
+#include "SALOMEDSImpl_StudyBuilder.hxx"
+#include "SALOMEDSImpl_UseCaseBuilder.hxx"
+#include "SALOMEDSImpl_UseCaseIterator.hxx"
+#include "SALOMEDSImpl_IParameters.hxx"
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef SALOMEDSIMPL_ADAPT_HXX
+#define SALOMEDSIMPL_ADAPT_HXX
+
+#include "SALOMEDSImplAdaptTypes.hxx"
+
+#include "SALOMEDSImplAdapt_SObject.hxx"
+#include "SALOMEDSImplAdapt_SComponent.hxx"
+#include "SALOMEDSImplAdapt_StudyBuilder.hxx"
+#include "SALOMEDSImplAdapt_UseCaseBuilder.hxx"
+#include "SALOMEDSImplAdapt_Study.hxx"
+#include "SALOMEDSImplAdapt_UseCaseIterator.hxx"
+#include "SALOMEDSImplAdapt_SComponentIterator.hxx"
+#include "SALOMEDSImplAdapt_ChildIterator.hxx"
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef SALOMEDSIMPL_ADAPT_CopyAttribute_HXX
+#define SALOMEDSIMPL_ADAPT_CopyAttribute_HXX
+
+#include "SALOMEDSImplAdapt_definitions.hxx"
+#include <cstring>
+#include "SALOMEDSImplAdaptTypes.hxx"
+
+namespace{
+
+#define __CreateAttributeClass(className) if (strcmp(aTypeOfAttribute.c_str(), #className) == 0) { \
+ anAttr = _PTR(className)( new _CLASS(className)); \
+}
+
+#define __CreateGenerictAttributeClass \
+ __CreateAttributeClass(AttributeReal) \
+ __CreateAttributeClass(AttributeInteger) \
+ __CreateAttributeClass(AttributeSequenceOfReal) \
+ __CreateAttributeClass(AttributeSequenceOfInteger) \
+ __CreateAttributeClass(AttributeName) \
+ __CreateAttributeClass(AttributeComment) \
+ __CreateAttributeClass(AttributeIOR) \
+ __CreateAttributeClass(AttributePixMap) \
+ __CreateAttributeClass(AttributeLocalID) \
+ __CreateAttributeClass(AttributeTableOfInteger) \
+ __CreateAttributeClass(AttributeTableOfReal) \
+ __CreateAttributeClass(AttributeTableOfString) \
+ __CreateAttributeClass(AttributePythonObject) \
+ __CreateAttributeClass(AttributePersistentRef) \
+ __CreateAttributeClass(AttributeDrawable) \
+ __CreateAttributeClass(AttributeSelectable) \
+ __CreateAttributeClass(AttributeExpandable) \
+ __CreateAttributeClass(AttributeOpened) \
+ __CreateAttributeClass(AttributeTextColor) \
+ __CreateAttributeClass(AttributeTextHighlightColor) \
+ __CreateAttributeClass(AttributeTarget) \
+ __CreateAttributeClass(AttributeStudyProperties) \
+ __CreateAttributeClass(AttributeExternalFileDef) \
+ __CreateAttributeClass(AttributeFileType) \
+ __CreateAttributeClass(AttributeFlags) \
+ __CreateAttributeClass(AttributeGraphic) \
+ __CreateAttributeClass(AttributeTreeNode) \
+ __CreateAttributeClass(AttributeUserID) \
+ __CreateAttributeClass(AttributeParameter) \
+ __CreateAttributeClass(AttributeString)
+
+ inline _PTR(GenericAttribute) copyAttribute(_CLASS(GenericAttribute) * aFilledAttr)
+ {
+ _PTR(GenericAttribute) anAttr;
+ std::string aTypeOfAttribute = aFilledAttr->GetClassType();
+ __CreateGenerictAttributeClass
+ // fill using implicit-defined copy assignent operator
+ *anAttr = *aFilledAttr;
+ return anAttr;
+ }
+}
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef SALOMEDSIMPL_ADAPT_TYPES_HXX
+#define SALOMEDSIMPL_ADAPT_TYPES_HXX
+
+#include "SALOMEDSImplAdapt_definitions.hxx"
+#include "SALOMEDSImpl.hxx"
+
+typedef SALOMEDSImpl_AttributeComment SALOMEDSImplAdapt_AttributeComment;
+typedef SALOMEDSImpl_AttributeDrawable SALOMEDSImplAdapt_AttributeDrawable;
+typedef SALOMEDSImpl_AttributeExpandable SALOMEDSImplAdapt_AttributeExpandable;
+typedef SALOMEDSImpl_AttributeExternalFileDef SALOMEDSImplAdapt_AttributeExternalFileDef;
+typedef SALOMEDSImpl_AttributeFileType SALOMEDSImplAdapt_AttributeFileType;
+typedef SALOMEDSImpl_AttributeFlags SALOMEDSImplAdapt_AttributeFlags;
+typedef SALOMEDSImpl_AttributeGraphic SALOMEDSImplAdapt_AttributeGraphic;
+typedef SALOMEDSImpl_AttributeIOR SALOMEDSImplAdapt_AttributeIOR;
+typedef SALOMEDSImpl_AttributeInteger SALOMEDSImplAdapt_AttributeInteger;
+typedef SALOMEDSImpl_AttributeLocalID SALOMEDSImplAdapt_AttributeLocalID;
+typedef SALOMEDSImpl_AttributeName SALOMEDSImplAdapt_AttributeName;
+typedef SALOMEDSImpl_AttributeOpened SALOMEDSImplAdapt_AttributeOpened;
+typedef SALOMEDSImpl_AttributePersistentRef SALOMEDSImplAdapt_AttributePersistentRef;
+typedef SALOMEDSImpl_AttributePixMap SALOMEDSImplAdapt_AttributePixMap;
+typedef SALOMEDSImpl_AttributePythonObject SALOMEDSImplAdapt_AttributePythonObject;
+typedef SALOMEDSImpl_AttributeReal SALOMEDSImplAdapt_AttributeReal;
+typedef SALOMEDSImpl_AttributeSelectable SALOMEDSImplAdapt_AttributeSelectable;
+typedef SALOMEDSImpl_AttributeSequenceOfInteger SALOMEDSImplAdapt_AttributeSequenceOfInteger;
+typedef SALOMEDSImpl_AttributeSequenceOfReal SALOMEDSImplAdapt_AttributeSequenceOfReal;
+typedef SALOMEDSImpl_AttributeStudyProperties SALOMEDSImplAdapt_AttributeStudyProperties;
+typedef SALOMEDSImpl_AttributeTableOfInteger SALOMEDSImplAdapt_AttributeTableOfInteger;
+typedef SALOMEDSImpl_AttributeTableOfReal SALOMEDSImplAdapt_AttributeTableOfReal;
+typedef SALOMEDSImpl_AttributeTableOfString SALOMEDSImplAdapt_AttributeTableOfString;
+typedef SALOMEDSImpl_AttributeTarget SALOMEDSImplAdapt_AttributeTarget;
+typedef SALOMEDSImpl_AttributeTextColor SALOMEDSImplAdapt_AttributeTextColor;
+typedef SALOMEDSImpl_AttributeTextHighlightColor SALOMEDSImplAdapt_AttributeTextHighlightColor;
+typedef SALOMEDSImpl_AttributeTreeNode SALOMEDSImplAdapt_AttributeTreeNode;
+typedef SALOMEDSImpl_AttributeUserID SALOMEDSImplAdapt_AttributeUserID;
+typedef SALOMEDSImpl_AttributeParameter SALOMEDSImplAdapt_AttributeParameter;
+typedef SALOMEDSImpl_AttributeString SALOMEDSImplAdapt_AttributeString;
+typedef SALOMEDSImpl_GenericAttribute SALOMEDSImplAdapt_GenericAttribute;
+typedef SALOMEDSImpl_GenericVariable SALOMEDSImplAdapt_GenericVariable;
+typedef SALOMEDSImpl_IParameters SALOMEDSImplAdapt_IParameters;
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+
+#include "SALOMEDSImplAdapt_ChildIterator.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_ChildIterator::SALOMEDSImplAdapt_ChildIterator(const SALOMEDSImpl_SObject& theObject):
+ SALOMEDSImpl_ChildIterator(theObject){}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_ChildIterator* SALOMEDSImplAdapt_ChildIterator::GetPersistentCopy() const
+{
+ SALOMEDSImplAdapt_ChildIterator* itr = new SALOMEDSImplAdapt_ChildIterator();
+ itr->_it = _it;
+ itr->_so = _so;
+ return itr;
+}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SObject SALOMEDSImplAdapt_ChildIterator::GetValue() {
+ return SALOMEDSImplAdapt_SObject(SALOMEDSImpl_ChildIterator::Value());
+}
+
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_ChildIterator.hxx
+// purpose: adaper for class SALOMEDSImpl_ChildIterator in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_ChildIterator_HXX
+#define SALOMEDSIMPL_ADAPT_ChildIterator_HXX
+
+#include "SALOMEDSImpl_ChildIterator.hxx"
+
+class SALOMEDSImplAdapt_SObject;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_ChildIterator: public SALOMEDSImpl_ChildIterator
+{
+public:
+ SALOMEDSImplAdapt_ChildIterator() = default;
+ explicit SALOMEDSImplAdapt_ChildIterator(const SALOMEDSImpl_SObject& theObject);
+ virtual ~SALOMEDSImplAdapt_ChildIterator() = default;
+
+ SALOMEDSImplAdapt_ChildIterator* GetPersistentCopy() const;
+ SALOMEDSImplAdapt_SObject GetValue();
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "SALOMEDSImplAdapt_SComponent.hxx"
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponent::SALOMEDSImplAdapt_SComponent(const SALOMEDSImpl_SComponent& theSCO)
+ :SALOMEDSImpl_SComponent(theSCO), SALOMEDSImplAdapt_SObject()
+{}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponent::SALOMEDSImplAdapt_SComponent(){}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponent* SALOMEDSImplAdapt_SComponent::GetPersistentCopy() const
+{
+ SALOMEDSImplAdapt_SComponent* sco = new SALOMEDSImplAdapt_SComponent();
+ sco->_lab = _lab;
+ sco->_name = _name;
+ sco->_type = _type;
+ sco->_value = _value;
+ return sco;
+}
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_SComponent.hxx
+// purpose: adaper for class SALOMEDSImpl_SComponent in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_SComponent_HXX
+#define SALOMEDSIMPL_ADAPT_SComponent_HXX
+
+#include "SALOMEDSImpl_SComponent.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+
+class SALOMEDSImplAdapt_SComponent: public virtual SALOMEDSImpl_SComponent,
+ public virtual SALOMEDSImplAdapt_SObject
+{
+public:
+ SALOMEDSImplAdapt_SComponent(const SALOMEDSImpl_SComponent& theSCO);
+ SALOMEDSImplAdapt_SComponent();
+ virtual ~SALOMEDSImplAdapt_SComponent() = default;
+
+ SALOMEDSImplAdapt_SComponent* GetPersistentCopy() const;
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "SALOMEDSImplAdapt_SComponentIterator.hxx"
+#include "SALOMEDSImplAdapt_SComponent.hxx"
+
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponentIterator::SALOMEDSImplAdapt_SComponentIterator(DF_Document* doc):
+ SALOMEDSImpl_SComponentIterator(doc){}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponentIterator* SALOMEDSImplAdapt_SComponentIterator::GetPersistentCopy() const
+{
+ SALOMEDSImplAdapt_SComponentIterator* itr = new SALOMEDSImplAdapt_SComponentIterator();
+ itr->_lab = _lab;
+ itr->_it = _it;
+ return itr;
+}
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SComponent SALOMEDSImplAdapt_SComponentIterator::GetValue() {
+ return SALOMEDSImplAdapt_SComponent(SALOMEDSImpl_SComponentIterator::Value());
+}
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_SComponentIterator.hxx
+// purpose: adaper for class SALOMEDSImpl_SComponentIterator in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_SComponentIterator_HXX
+#define SALOMEDSIMPL_ADAPT_SComponentIterator_HXX
+
+#include "SALOMEDSImpl_SComponentIterator.hxx"
+
+class SALOMEDSImplAdapt_SComponent;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_SComponentIterator: public SALOMEDSImpl_SComponentIterator
+{
+public:
+ SALOMEDSImplAdapt_SComponentIterator() = default;
+ explicit SALOMEDSImplAdapt_SComponentIterator(DF_Document* doc);
+ virtual ~SALOMEDSImplAdapt_SComponentIterator() = default;
+
+ SALOMEDSImplAdapt_SComponentIterator* GetPersistentCopy() const;
+ SALOMEDSImplAdapt_SComponent GetValue();
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "SALOMEDSImplAdapt_SObject.hxx"
+#include "SALOMEDSImpl_GenericAttribute.hxx"
+#include "SALOMEDSImplAdaptCopyAttribute.hxx"
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_SObject::SALOMEDSImplAdapt_SObject(const SALOMEDSImpl_SObject& theSObject):
+ SALOMEDSImpl_SObject(theSObject){}
+
+bool SALOMEDSImplAdapt_SObject::SALOMEDSImplAdapt_SObject::ReferencedObject(_PTR(SObject) & theObject) const
+{
+ SALOMEDSImpl_SObject anObj;
+ bool aResult = SALOMEDSImpl_SObject::ReferencedObject(anObj);
+ if(aResult){
+ theObject = _PTR(SObject)(new _CLASS(SObject)(anObj));
+ }
+ return aResult;
+}
+
+bool SALOMEDSImplAdapt_SObject::FindAttribute( _PTR(GenericAttribute) & anAttr, const std::string aTypeOfAttribute)
+{
+ DF_Attribute* aFilledAttr = nullptr;
+ bool isFound = SALOMEDSImpl_SObject::FindAttribute(aFilledAttr, aTypeOfAttribute);
+ if(isFound){
+ anAttr = copyAttribute(_CAST(GenericAttribute, aFilledAttr));
+ return true;
+ }
+ return false;
+}
+
+SALOMEDSImplAdapt_SObject* SALOMEDSImplAdapt_SObject::GetPersistentCopy() const
+{
+ SALOMEDSImplAdapt_SObject* so = new SALOMEDSImplAdapt_SObject;
+ so->_lab = _lab;
+ so->_name = _name;
+ so->_type = _type;
+ so->_value = _value;
+ return so;
+}
+// ----------------------------------------------------------------------------------------
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_SObject.hxx
+// purpose: adaper for class SALOMEDSImpl_SObject in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_SObject_HXX
+#define SALOMEDSIMPL_ADAPT_SObject_HXX
+
+#include "SALOMEDSImplAdapt_definitions.hxx"
+#include "SALOMEDSImpl_SObject.hxx"
+#include <string>
+
+class SALOMEDSImpl_GenericAttribute;
+typedef SALOMEDSImpl_GenericAttribute SALOMEDSImplAdapt_GenericAttribute;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_SObject: public virtual SALOMEDSImpl_SObject
+{
+public:
+ SALOMEDSImplAdapt_SObject() = default;
+ SALOMEDSImplAdapt_SObject(const SALOMEDSImpl_SObject& theSObject);
+ virtual ~SALOMEDSImplAdapt_SObject() = default;
+
+ bool ReferencedObject(_PTR(SObject) & theObject) const;
+ bool FindAttribute( _PTR(GenericAttribute) & anAttr, const std::string aTypeOfAttribute);
+ SALOMEDSImplAdapt_SObject* GetPersistentCopy() const;
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "SALOMEDSImplAdapt_Study.hxx"
+#include "SALOMEDSImplAdapt_ChildIterator.hxx"
+#include "SALOMEDSImplAdapt_SComponentIterator.hxx"
+#include "SALOMEDSImplAdapt_StudyBuilder.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+#include "SALOMEDSImplAdapt_UseCaseBuilder.hxx"
+#include "SALOMEDSImplAdapt_SComponent.hxx"
+#include "SALOMEDSImpl_GenericVariable.hxx"
+
+typedef SALOMEDSImpl_GenericVariable SALOMEDSImplAdapt_GenericVariable;
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_Study::SALOMEDSImplAdapt_Study()
+ :_myNewBuilder(nullptr), _myUseCaseBuilder(nullptr)
+{}
+
+// ----------------------------------------------------------------------------------------
+_PTR(SObject) SALOMEDSImplAdapt_Study::FindObjectID(const QString& anObjectID)
+{
+ auto aFound = SALOMEDSImpl_Study::FindObjectID(anObjectID.toUtf8().data());
+ if(!aFound.IsNull())
+ return _PTR(SObject) (new _CLASS(SObject)(aFound));
+ return nullptr;
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::CanOpen(const std::string & url)
+{
+ SALOMEDSImpl_Study aTmp;
+ return aTmp.Open(url);
+}
+
+// ----------------------------------------------------------------------------------------
+_CLASS(StudyBuilder)* SALOMEDSImplAdapt_Study::NewBuilder()
+{
+ _myNewBuilder = std::unique_ptr<_CLASS(StudyBuilder)>
+ (new _CLASS(StudyBuilder)(SALOMEDSImpl_Study::NewBuilder()));
+ return _myNewBuilder.get();
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(SComponent) SALOMEDSImplAdapt_Study::FindComponent (const QString& aComponentName)
+{
+ return _PTR(SComponent)(_CLASS(SComponent)(
+ SALOMEDSImpl_Study::FindComponent(aComponentName.toUtf8().data())));
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(SComponent) SALOMEDSImplAdapt_Study::FindComponentID(const QString& aComponentID){
+ return _PTR(SComponent)(_CLASS(SComponent)(
+ SALOMEDSImpl_Study::FindComponentID(aComponentID.toUtf8().data())));
+}
+
+// ----------------------------------------------------------------------------------------
+std::vector<_PTR(SObject)> SALOMEDSImplAdapt_Study::FindDependances(const _PTR(SObject) & obj)
+{
+ std::vector<_PTR(SObject)> aResult;
+ if(obj){
+ auto aRefs = SALOMEDSImpl_Study::FindDependances(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(obj) );
+ for(auto aVal : aRefs)
+ aResult.push_back(_PTR(SObject)(new _CLASS(SObject) (aVal)));
+ }
+ return aResult;
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(ChildIterator) SALOMEDSImplAdapt_Study::NewChildIterator(const _PTR(SObject)& aSO)
+{
+ if(aSO)
+ return _PTR(ChildIterator) (_CLASS(ChildIterator)(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(aSO)
+ ).GetPersistentCopy());
+ return nullptr;
+}
+
+// ----------------------------------------------------------------------------------------
+_CLASS(UseCaseBuilder)* SALOMEDSImplAdapt_Study::GetUseCaseBuilder()
+{
+ _myUseCaseBuilder = std::unique_ptr<_CLASS(UseCaseBuilder)>(
+ new _CLASS(UseCaseBuilder)(SALOMEDSImpl_Study::GetUseCaseBuilder()));
+ return _myUseCaseBuilder.get();
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(SComponentIterator) SALOMEDSImplAdapt_Study::GetNewComponentIterator()
+{
+ return _PTR(SComponentIterator)( new SALOMEDSImplAdapt_SComponentIterator(GetDocument()));
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::IsReal(const std::string & aName)
+{
+ return IsTypeOf(aName, _CLASS(GenericVariable)::REAL_VAR);
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::IsInteger(const std::string & aName)
+{
+ return IsTypeOf(aName, _CLASS(GenericVariable)::INTEGER_VAR);
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::IsString(const std::string & aName)
+{
+ return IsTypeOf(aName, _CLASS(GenericVariable)::STRING_VAR);
+}
+
+// ----------------------------------------------------------------------------------------
+int SALOMEDSImplAdapt_Study::GetInteger( const std::string & aName )
+{
+ return GetVariableValue(aName);
+}
+
+// ----------------------------------------------------------------------------------------
+double SALOMEDSImplAdapt_Study::GetReal( const std::string & aName)
+{
+ return GetVariableValue(aName);
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::IsBoolean(const std::string & aName)
+{
+ return IsTypeOf(aName, _CLASS(GenericVariable)::BOOLEAN_VAR);
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_Study::GetBoolean(const std::string & aName)
+{
+ return GetVariableValue(aName);
+}
+
+// ----------------------------------------------------------------------------------------
+std::string SALOMEDSImplAdapt_Study::GetString(const std::string & aName)
+{
+ return GetStringVariableValue(aName);
+}
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_Study.hxx
+// purpose: adaper for class SALOMEDSImpl_Study in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_Study_HXX
+#define SALOMEDSIMPL_ADAPT_Study_HXX
+
+#include "SALOMEDSImplAdapt_definitions.hxx"
+#include "SALOMEDSImpl_Study.hxx"
+#include "SALOMEDSImplAdapt_StudyBuilder.hxx"
+#include "SALOMEDSImplAdapt_UseCaseBuilder.hxx"
+
+#include <QString>
+#include <memory>
+
+class SALOMEDSImplAdapt_ChildIterator;
+class SALOMEDSImplAdapt_SComponentIterator;
+class SALOMEDSImplAdapt_SObject;
+class SALOMEDSImplAdapt_SComponent;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_Study: public SALOMEDSImpl_Study
+{
+public:
+ SALOMEDSImplAdapt_Study();
+ virtual ~SALOMEDSImplAdapt_Study() = default;
+
+ _CLASS(StudyBuilder)* NewBuilder();
+ _CLASS(UseCaseBuilder)* GetUseCaseBuilder();
+
+ _PTR(SObject) FindObjectID(const QString& anObjectID);
+ _PTR(SComponent) FindComponent(const QString& aComponentName);
+ _PTR(SComponent) FindComponentID(const QString& aComponentID);
+ _PTR(ChildIterator) NewChildIterator(const _PTR(SObject)& aSO);
+ _PTR(SComponentIterator) GetNewComponentIterator();
+
+ std::vector<_PTR(SObject)> FindDependances(const _PTR(SObject) & obj);
+
+ bool CanOpen(const std::string & url);
+ bool IsReal(const std::string & aName);
+ bool IsInteger(const std::string & aName);
+ bool IsString(const std::string & aName);
+ bool IsBoolean(const std::string & aName);
+ inline bool Modified(){return IsModified();}
+ int GetInteger( const std::string & aName);
+ bool GetBoolean(const std::string & aName);
+ std::string GetString(const std::string & aName);
+ double GetReal( const std::string & aName);
+
+private:
+ std::unique_ptr<_CLASS(StudyBuilder)> _myNewBuilder;
+ std::unique_ptr<_CLASS(UseCaseBuilder)> _myUseCaseBuilder;
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+
+#include "SALOMEDSImplAdapt_StudyBuilder.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+#include "SALOMEDSImplAdapt_SComponent.hxx"
+#include "SALOMEDSImpl_GenericAttribute.hxx"
+#include "SALOMEDSImplAdaptCopyAttribute.hxx"
+
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_StudyBuilder::SALOMEDSImplAdapt_StudyBuilder(SALOMEDSImpl_StudyBuilder* theBuilder):
+ SALOMEDSImpl_StudyBuilder(theBuilder->GetOwner()){}
+
+// ----------------------------------------------------------------------------------------
+void SALOMEDSImplAdapt_StudyBuilder::RemoveReference(_PTR(SObject) & aSObject){
+ if(aSObject)
+ SALOMEDSImpl_StudyBuilder::RemoveReference(*std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(aSObject));
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(SComponent) SALOMEDSImplAdapt_StudyBuilder::NewComponent (const QString& ComponentDataType){
+ return _PTR(SComponent)(_CLASS(SComponent)(
+ SALOMEDSImpl_StudyBuilder::NewComponent(ComponentDataType.toUtf8().data())));
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_StudyBuilder::SetName(const _PTR(SComponent)& theSO, const std::string& theValue){
+ if(theSO){
+ return SALOMEDSImpl_StudyBuilder::SetName(*std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(theSO), theValue);
+ }
+ return false;
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(GenericAttribute) SALOMEDSImplAdapt_StudyBuilder::FindOrCreateAttribute(const _PTR(SComponent)& anObject,
+ const std::string& aTypeOfAttribute){
+ if(anObject)
+ {
+ auto aResult = SALOMEDSImpl_StudyBuilder::FindOrCreateAttribute(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(anObject), aTypeOfAttribute);
+ if(aResult){
+ return copyAttribute(_CAST(GenericAttribute, aResult));
+ }
+ }
+ return nullptr;
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_StudyBuilder::DefineComponentInstance(const _PTR(SComponent)& aComponent, const std::string& IOR){
+ if(aComponent){
+ return SALOMEDSImpl_StudyBuilder::DefineComponentInstance(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(aComponent), IOR);
+ }
+ return false;
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_StudyBuilder::RemoveObjectWithChildren(const _PTR(SObject) &object){
+ if(object)
+ return SALOMEDSImpl_StudyBuilder::RemoveObjectWithChildren(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(object));
+ return false;
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_StudyBuilder::RemoveObjectWithChildren(const SALOMEDSImpl_SObject& anObject){
+ return SALOMEDSImpl_StudyBuilder::RemoveObjectWithChildren(anObject);
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_StudyBuilder::FindAttribute(const _PTR(SObject)& anObject,
+ _PTR(GenericAttribute)& anAttribute,
+ const std::string& aTypeOfAttribute)
+{
+ DF_Attribute* anAttr = nullptr;
+ if(anObject){
+ bool aResult = SALOMEDSImpl_StudyBuilder::FindAttribute(*std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(anObject),
+ anAttr, aTypeOfAttribute);
+ anAttribute = _PTR(GenericAttribute)(_CAST(GenericAttribute, anAttr));
+ return aResult;
+ }
+ return false;
+}
+
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_StudyBuilder.hxx
+// purpose: adaper for class SALOMEDSImpl_StudyBuilder in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_StudyBuilder_HXX
+#define SALOMEDSIMPL_ADAPT_StudyBuilder_HXX
+
+#include "SALOMEDSImplAdapt_definitions.hxx"
+#include "SALOMEDSImpl_StudyBuilder.hxx"
+
+#include <QString>
+
+class SALOMEDSImpl_SObject;
+class SALOMEDSImplAdapt_SObject;
+class SALOMEDSImplAdapt_SComponent;
+class SALOMEDSImpl_GenericAttribute;
+typedef SALOMEDSImpl_GenericAttribute SALOMEDSImplAdapt_GenericAttribute;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_StudyBuilder: public SALOMEDSImpl_StudyBuilder
+{
+public:
+ SALOMEDSImplAdapt_StudyBuilder() = default;
+ explicit SALOMEDSImplAdapt_StudyBuilder(SALOMEDSImpl_StudyBuilder* theBuilder);
+ virtual ~SALOMEDSImplAdapt_StudyBuilder() = default;
+
+ void RemoveReference(_PTR(SObject) & aSObject);
+
+ _PTR(SComponent) NewComponent (const QString& ComponentDataType);
+ _PTR(GenericAttribute) FindOrCreateAttribute(const _PTR(SComponent)& anObject,
+ const std::string& aTypeOfAttribute);
+
+ bool SetName(const _PTR(SComponent)& theSO, const std::string& theValue);
+ bool DefineComponentInstance(const _PTR(SComponent)& aComponent, const std::string& IOR);
+ bool RemoveObjectWithChildren(const _PTR(SObject) &object);
+ bool RemoveObjectWithChildren(const SALOMEDSImpl_SObject& anObject) override;
+
+ bool FindAttribute(const _PTR(SObject)& anObject,
+ _PTR(GenericAttribute)& anAttribute,
+ const std::string& aTypeOfAttribute);
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+
+
+#include "SALOMEDSImplAdapt_UseCaseBuilder.hxx"
+#include "SALOMEDSImplAdapt_UseCaseIterator.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_UseCaseBuilder::SALOMEDSImplAdapt_UseCaseBuilder(SALOMEDSImpl_UseCaseBuilder* aCopy):
+ SALOMEDSImpl_UseCaseBuilder(aCopy){}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_UseCaseBuilder::HasChildren(const _PTR(SObject) & theObject){
+ if(theObject)
+ return SALOMEDSImpl_UseCaseBuilder::HasChildren(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(theObject));
+ return false;
+}
+
+// ----------------------------------------------------------------------------------------
+bool SALOMEDSImplAdapt_UseCaseBuilder::IsUseCaseNode(const _PTR(SObject) & theObject){
+ if(theObject)
+ return SALOMEDSImpl_UseCaseBuilder::IsUseCaseNode(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(theObject));
+ return false;
+}
+
+// ----------------------------------------------------------------------------------------
+_PTR(UseCaseIterator) SALOMEDSImplAdapt_UseCaseBuilder::GetUseCaseIterator(const _PTR(SObject) & theObject){
+ if(theObject){
+ return _PTR(UseCaseIterator)(_CLASS(UseCaseIterator)(
+ std::unique_ptr<SALOMEDSImpl_UseCaseIterator>(
+ SALOMEDSImpl_UseCaseBuilder::GetUseCaseIterator(
+ *std::dynamic_pointer_cast<SALOMEDSImpl_SObject>(theObject)
+ ).GetPersistentCopy())
+ ).GetPersistentCopy());
+ }
+ return nullptr;
+}
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_UseCaseBuilder.hxx
+// purpose: adaper for class SALOMEDSImpl_UseCaseBuilder in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_UseCaseBuilder_HXX
+#define SALOMEDSIMPL_ADAPT_UseCaseBuilder_HXX
+
+#include "SALOMEDSImpl_UseCaseBuilder.hxx"
+#include "SALOMEDSImplAdapt_definitions.hxx"
+
+class SALOMEDSImplAdapt_UseCaseIterator;
+class SALOMEDSImplAdapt_SObject;
+
+
+class SALOMEDSImplAdapt_UseCaseBuilder: public SALOMEDSImpl_UseCaseBuilder
+{
+public:
+ SALOMEDSImplAdapt_UseCaseBuilder() = default;
+ SALOMEDSImplAdapt_UseCaseBuilder(SALOMEDSImpl_UseCaseBuilder* aCopy);
+ virtual ~SALOMEDSImplAdapt_UseCaseBuilder() = default;
+
+ bool HasChildren(const _PTR(SObject) & theObject);
+ bool IsUseCaseNode(const _PTR(SObject) & theObject);
+ _PTR(UseCaseIterator) GetUseCaseIterator(const _PTR(SObject) & theObject);
+};
+
+#endif
--- /dev/null
+
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+
+#include "SALOMEDSImplAdapt_UseCaseIterator.hxx"
+#include "SALOMEDSImplAdapt_SObject.hxx"
+
+// ----------------------------------------------------------------------------------------
+SALOMEDSImplAdapt_UseCaseIterator::SALOMEDSImplAdapt_UseCaseIterator(const std::unique_ptr<SALOMEDSImpl_UseCaseIterator> refIterator):
+ SALOMEDSImpl_UseCaseIterator(refIterator.get()){}
+
+SALOMEDSImplAdapt_UseCaseIterator* SALOMEDSImplAdapt_UseCaseIterator::GetPersistentCopy() const
+{
+ SALOMEDSImplAdapt_UseCaseIterator* itr = new SALOMEDSImplAdapt_UseCaseIterator();
+ itr->_it = _it;
+ itr->_node = _node;
+ itr->_guid = _guid;
+ itr->_levels = _levels;
+ return itr;
+}
+
+SALOMEDSImplAdapt_SObject SALOMEDSImplAdapt_UseCaseIterator::GetValue() {
+ return SALOMEDSImplAdapt_SObject(SALOMEDSImpl_UseCaseIterator::Value());
+}
+// ----------------------------------------------------------------------------------------
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//=======================================================================================
+// file: SALOMEDSImplAdapt_UseCaseIterator.hxx
+// purpose: adaper for class SALOMEDSImpl_UseCaseIterator in Salome GUI without CORBA
+//=======================================================================================
+
+#ifndef SALOMEDSIMPL_ADAPT_UseCaseIterator_HXX
+#define SALOMEDSIMPL_ADAPT_UseCaseIterator_HXX
+
+#include "SALOMEDSImpl_UseCaseIterator.hxx"
+
+#include <memory>
+
+class SALOMEDSImplAdapt_SObject;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImplAdapt_UseCaseIterator: public SALOMEDSImpl_UseCaseIterator
+{
+public:
+ SALOMEDSImplAdapt_UseCaseIterator() = default;
+ explicit SALOMEDSImplAdapt_UseCaseIterator(const std::unique_ptr<SALOMEDSImpl_UseCaseIterator> refIterator);
+ virtual ~SALOMEDSImplAdapt_UseCaseIterator() = default;
+
+ SALOMEDSImplAdapt_UseCaseIterator* GetPersistentCopy() const;
+ SALOMEDSImplAdapt_SObject GetValue();
+};
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef SALOMEDSIMPL_ADAPT_DEF_HXX
+#define SALOMEDSIMPL_ADAPT_DEF_HXX
+
+#ifdef WIN32
+# if defined SALOMEDSIMPL_EXPORTS || defined SalomeDSImpl_EXPORTS
+# define SALOMEDSIMPL_EXPORT __declspec( dllexport )
+# else
+# define SALOMEDSIMPL_EXPORT __declspec( dllimport )
+# endif
+#else
+# define SALOMEDSIMPL_EXPORT
+#endif
+
+#include <memory>
+
+template<class T> class clt_std_shared_ptr: public std::shared_ptr<T>
+{
+public:
+ clt_std_shared_ptr() {}
+ clt_std_shared_ptr(std::nullptr_t p): std::shared_ptr<T>(p){}
+
+ template<class Y>
+ explicit clt_std_shared_ptr(Y * p)
+ {
+ std::shared_ptr<T>::reset(p);
+ }
+
+ template<class Y>
+ explicit clt_std_shared_ptr(const Y & p)
+ {
+ std::shared_ptr<T>::reset(p.IsNull()? 0:p.GetPersistentCopy());
+ }
+
+ template<class Y>
+ clt_std_shared_ptr(clt_std_shared_ptr<Y> const & r):
+ std::shared_ptr<T>(std::dynamic_pointer_cast<T>(r))
+ {}
+
+ template<class Y>
+ clt_std_shared_ptr & operator=(clt_std_shared_ptr<Y> const & r)
+ {
+ clt_std_shared_ptr<T>(r).swap(*this);
+ return *this;
+ }
+
+ template<class Y> clt_std_shared_ptr& operator()(Y * p) // Y must be complete
+ {
+ if(T* pt = dynamic_cast<T*>(p))
+ std::shared_ptr<T>::reset(pt);
+ else
+ throw std::exception(std::bad_cast());
+ return *this;
+ }
+
+};
+
+#define _CLASS(Class) SALOMEDSImplAdapt_##Class
+#define _CAST(Class, ptr_Obj) dynamic_cast<_CLASS(Class)*>(ptr_Obj)
+#define _PTR(Class) clt_std_shared_ptr<_CLASS(Class)>
+
+#endif
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "SalomeApp_EngineImpl.h"
+#include "SalomeApp_Application.h"
+#include "SalomeApp_Study.h"
+#include "SUIT_Session.h"
+#include "CAM_Module.h"
+#include "LightApp_DataModel.h"
+
+#include <SALOMEDS_Tool.hxx>
+#include <Utils_SALOME_Exception.hxx>
+#include <utilities.h>
+#include "SALOMEDSImpl_SComponent.hxx"
+
+#include <QApplication>
+#include <QDir>
+#include <QFile>
+#include <QUuid>
+
+#include <iostream>
+
+/*!
+ Constructor
+*/
+SalomeApp_EngineImpl::SalomeApp_EngineImpl( const char* theComponentName )
+ : _myKeepFiles( false ), _myComponentName( theComponentName )
+{
+ MESSAGE("SalomeApp_EngineImpl::SalomeApp_EngineImpl(): myComponentName = " <<
+ qPrintable( _myComponentName.c_str() ) << ", this = " << this);
+}
+
+/*!
+ Destructor
+*/
+SalomeApp_EngineImpl::~SalomeApp_EngineImpl()
+{
+ SalomeApp_EngineImplFactory::instance()->removeEngine(_myComponentName);
+
+ MESSAGE("SalomeApp_EngineImpl::~SalomeApp_EngineImpl(): _myComponentName = " <<
+ qPrintable( _myComponentName.c_str() ) << ", this = " << this);
+}
+
+std::map<std::string, std::string> SalomeApp_EngineImpl::_myComponentIORS =
+{{"SHAPER", "1efa48dd-ce57-4e7b-a22d-e562b0563ddf"}};
+
+SalomeApp_EngineImplFactory::~SalomeApp_EngineImplFactory()
+{
+ for(auto aEnginePair: _myEnginesMap)
+ {
+ if(aEnginePair.second){
+ delete aEnginePair.second;
+ aEnginePair.second = nullptr;
+ }
+ }
+}
+
+SALOMEDSImpl_Driver* SalomeApp_EngineImplFactory::GetDriverByType(const std::string& theComponentType)
+{
+ auto theFatory = instance();
+ auto anIt = theFatory->_myEnginesMap.find(theComponentType);
+ if(anIt != theFatory->_myEnginesMap.end())
+ {
+ if(anIt->second)
+ return dynamic_cast<SALOMEDSImpl_Driver*>(anIt->second);
+ }
+ return nullptr;
+}
+
+void SalomeApp_EngineImplFactory::removeEngine(const std::string& theComponentName)
+{
+ _myEnginesMap.erase(theComponentName);
+}
+
+SALOMEDSImpl_Driver* SalomeApp_EngineImplFactory::GetDriverByIOR(const std::string& theIOR)
+{
+ for(auto aCompIOR : SalomeApp_EngineImpl::getComponentIORS()){
+ if(aCompIOR.second == theIOR){
+ return GetDriverByType(aCompIOR.first);
+ }
+ }
+ return nullptr;
+}
+
+SalomeApp_EngineImplFactory* SalomeApp_EngineImplFactory::instance()
+{
+ static std::unique_ptr<SalomeApp_EngineImplFactory> myFactory(new SalomeApp_EngineImplFactory());
+ return myFactory.get();
+}
+
+SalomeApp_EngineImpl* SalomeApp_EngineImplFactory::makeEngine(const char* theComponentName, bool toCreate)
+{
+ SalomeApp_EngineImpl* anEngine = nullptr;
+ auto theFactory = SalomeApp_EngineImplFactory::instance();
+ auto myItEngine = theFactory->_myEnginesMap.find(theComponentName);
+ if(myItEngine != theFactory->_myEnginesMap.end())
+ anEngine = myItEngine->second;
+ // Activating a new engine
+ if ( toCreate && !anEngine ){
+ anEngine = new SalomeApp_EngineImpl(theComponentName);
+ theFactory->_myEnginesMap[theComponentName] = anEngine;
+ }
+ return anEngine;
+}
+
+
+std::string SalomeApp_EngineImpl::GetIOR()
+{
+ return _myComponentIORS[_myComponentName];
+}
+
+SALOMEDSImpl_TMPFile *SalomeApp_EngineImpl::Save(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL,
+ long& theStreamLength, bool isMultiFile )
+{
+ SALOMEDSImpl_Tool::TMPFile *aStreamFile = nullptr;
+
+ if (theComponent.IsNull())
+ return nullptr;
+
+ // Component type
+ std::string componentName (const_cast<SALOMEDSImpl_SComponent*>(&theComponent)->ComponentDataType());
+
+ // Error somewhere outside - Save() called with wrong SComponent instance
+ if ( _myComponentName != componentName )
+ return nullptr;
+
+ // Get a temporary directory to store a file
+ //std::string aTmpDir = isMultiFile ? theURL : SALOMEDS_Tool::GetTmpDir();
+
+ bool manuallySaved = false;
+
+ if ( GetListOfFiles(0).empty() ) // 0 means persistence file
+ {
+
+ // Save was probably called from outside GUI, so SetListOfFiles was not called!
+ // Try to get list of files from directly from data model
+
+ MESSAGE("SalomeApp_EngineImpl::Save(): _myComponentName = " <<
+ qPrintable( _myComponentName.c_str() ) <<
+ "it seems Save() was called from outside GUI" );
+
+ // - Get app
+ SalomeApp_Application* app =
+ dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
+ if ( !app )
+ return nullptr;
+
+ // - Get study
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+
+ if ( !study )
+ return nullptr;
+ QString url = QString::fromStdString(study->studyDS()->URL());
+
+ // - Get module
+ CAM_Module* module = app->module( SalomeApp_Application::moduleTitle( componentName.c_str() ) );
+ if ( !module ) // load module???
+ return nullptr;
+ // - Get data model
+ LightApp_DataModel* dataModel = dynamic_cast<LightApp_DataModel*>( module->dataModel() );
+ if ( !dataModel )
+ return nullptr;
+ // - Save data files
+ QStringList dataFiles;
+ // we use 'url' instead of 'theURL' as latter normally contains path to the tmp dir,
+ // but not actual study's URL
+ dataModel->saveAs( url, study, dataFiles );
+ std::vector<std::string> names;
+ foreach ( QString name, dataFiles ) {
+ if ( !name.isEmpty() )
+ names.push_back(name.toUtf8().data());
+ }
+ SetListOfFiles( 0, names ); // 0 means persistence file
+ manuallySaved = true;
+ }
+
+ // Get a temporary directory to store a file
+ //std::string aTmpDir = isMultiFile ? theURL : SALOMEDS_Tool::GetTmpDir();
+
+ // listOfFiles must contain temporary directory name in its first item
+ // and names of files (relatively the temporary directory) in the others
+ ListOfFiles listOfFiles = GetListOfFiles( 0 ); // 0 means persistence file
+ const int n = (int)listOfFiles.size() - 1; //!< TODO: conversion from size_t to int
+
+ if (n > 0) { // there are some files, containing persistent data of the component
+ std::string aTmpDir = listOfFiles[0];
+
+ // Create a list to store names of created files
+ ListOfFiles aSeq;
+ aSeq.reserve(n);
+ for (int i = 0; i < n; i++)
+ aSeq.push_back(listOfFiles[i + 1]);
+
+ // Convert a file to the byte stream
+ aStreamFile = SALOMEDS_Tool::PutFilesToStreamImpl(aTmpDir.c_str(), aSeq, isMultiFile);
+
+ // Remove the files and tmp directory, created by the component storage procedure
+ SalomeApp_Application* app =
+ dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+ study->RemoveTemporaryFiles( _myComponentName.c_str(), isMultiFile );
+ }
+
+ if ( manuallySaved )
+ SetListOfFiles(0, ListOfFiles()); // 0 means persistence file
+
+ return dynamic_cast<SALOMEDSImpl_TMPFile*>(aStreamFile);
+}
+
+bool SalomeApp_EngineImpl::Load(const SALOMEDSImpl_SComponent & theComponent, const unsigned char* theStream,
+ const long theStreamLength, const std::string& theURL, bool isMultiFile )
+{
+ std::cout << "SalomeApp_EngineImpl::Load() isMultiFile = " << isMultiFile << std::endl;
+ if (theComponent.IsNull())
+ return false;
+
+ // Error somewhere outside - Load() called with
+ // wrong SComponent instance
+ std::string componentName (const_cast<SALOMEDSImpl_SComponent*>(&theComponent)->ComponentDataType());
+ if ( _myComponentName != componentName )
+ return false;
+
+ // Create a temporary directory for the component's data files
+ std::string aTmpDir = isMultiFile ? theURL : SALOMEDS_Tool::GetTmpDir();
+
+ // Convert the byte stream theStream to a files and place them in the tmp directory.
+ // The files and temporary directory must be deleted by the component loading procedure.
+ SALOMEDSImpl_Tool::TMPFile theFile(theStreamLength, const_cast<unsigned char *>(theStream), 1);
+ ListOfFiles aSeq =
+ SALOMEDS_Tool::PutStreamToFilesImpl(theFile, aTmpDir.c_str(), isMultiFile);
+
+ // Store list of file names to be used by the component loading procedure
+ const int n = (int)aSeq.size() + 1; //!< TODO: conversion from size_t to int
+ ListOfFiles listOfFiles (n);
+ listOfFiles[0] = aTmpDir;
+ for (int i = 1; i < n; i++)
+ listOfFiles[i] = std::string(aSeq[i - 1]);
+
+ SetListOfFiles(0, listOfFiles); // 0 means persistence file
+ keepFiles( true );
+
+ return true;
+}
+
+SalomeApp_EngineImpl::ListOfFiles SalomeApp_EngineImpl::GetListOfFiles(int type)
+{
+ return _myListOfFiles.count(type) ? _myListOfFiles[type] : ListOfFiles();
+}
+
+void SalomeApp_EngineImpl::SetListOfFiles (int type, const ListOfFiles& theListOfFiles)
+{
+ _myListOfFiles[type] = theListOfFiles;
+}
+
+/*!
+ * DumpPython implementation for light modules
+ */
+SALOMEDSImpl_TMPFile* SalomeApp_EngineImpl::DumpPython(bool isPublished, bool isMultiFile,
+ bool& isValidScript, long& theStreamLength)
+{
+ MESSAGE("SalomeApp_EngineImpl::DumpPython(): _myComponentName = "<<
+ qPrintable( _myComponentName.c_str() ) << ", this = " << this);
+
+ // Temporary solution: returning a non-empty sequence
+ // even if there's nothing to dump, to avoid crashes in SALOMEDS
+ // TODO: Improve SALOMEDSImpl_Study::DumpStudy() by skipping the components
+ // with isValidScript == false, and initialize isValidScript by false below.
+ SALOMEDSImpl_TMPFile* aStreamFile = nullptr;
+ SALOMEDSImpl_TMPFile* aStreamFileDefault = new SALOMEDSImpl_Tool::TMPFile(1, (unsigned char *)("\0"), 1);
+ isValidScript = true;
+
+ ListOfFiles listOfFiles = GetListOfFiles( 1 ); // 1 means dump file
+
+ // listOfFiles must contain temporary directory name in its first item
+ // and names of files (relatively the temporary directory) in the others
+ if ( listOfFiles.size() < 2 )
+ return aStreamFileDefault;
+
+ // there are some files, containing persistent data of the component
+ QString aTmpPath( listOfFiles.front().c_str() );
+ QDir aTmpDir( aTmpPath );
+ if ( !aTmpDir.exists() )
+ return aStreamFileDefault;
+
+ // Calculate file sizes
+ QStringList aFilePaths;
+ QList<qint64> aFileSizes;
+ qint64 aBuffSize = 0;
+ ListOfFiles::const_iterator aFIt = listOfFiles.begin();
+ ListOfFiles::const_iterator aFEnd = listOfFiles.end();
+ aFIt++;
+ for (; aFIt != aFEnd; aFIt++){
+ QString aFileName( (*aFIt).c_str() );
+ if ( !aTmpDir.exists( aFileName ) ){
+ continue;
+ }
+
+ QFile aFile( aTmpDir.filePath( aFileName ) );
+ if ( !aFile.open( QIODevice::ReadOnly ) ){
+ continue;
+ }
+
+ aFilePaths.push_back( aTmpDir.filePath( aFileName ) );
+ aFileSizes.push_back( aFile.size() );
+ aBuffSize += aFileSizes.back();
+
+ aFile.close();
+ }
+
+ if ( !aFilePaths.size() || !aBuffSize )
+ return aStreamFileDefault;
+
+ char* aBuffer = new char[aBuffSize + 1];
+ if ( !aBuffer )
+ return aStreamFileDefault;
+
+ // Convert the file(s) to the byte stream, multiple files are simply
+ // concatenated
+ // TODO: imporve multi-script support if necessary...
+ qint64 aCurrPos = 0;
+ QStringList::const_iterator aFileIt = aFilePaths.begin();
+ QStringList::const_iterator aFileEnd = aFilePaths.end();
+ QList<qint64>::const_iterator aSIt = aFileSizes.begin();
+ for ( ; aFileIt != aFileEnd; aFileIt++, aSIt++ ){
+ QFile aFile( aTmpDir.filePath( *aFileIt ) );
+ if ( !aFile.open( QIODevice::ReadOnly ) ){
+ continue;
+ }
+
+ // Incorrect size of file
+ // Do not remove the bad file to have some diagnostic means
+ if ( aFile.read( aBuffer + aCurrPos, *aSIt ) != *aSIt ){
+ aFile.close();
+ return aStreamFileDefault;
+ }
+
+ aCurrPos += (*aSIt);
+ aFile.remove();
+ }
+
+ // Here we should end up with empty aTmpDir
+ // TODO: Handle QDir::rmdir() error status somehow...
+ aTmpDir.rmdir( aTmpPath );
+
+ aBuffer[aBuffSize] = '\0';
+ aStreamFile = new SALOMEDSImpl_Tool::TMPFile(aBuffSize + 1, (unsigned char*)(aBuffer), 1);
+
+ return aStreamFile;
+}
+
+/*!
+ \return Component data type string for this instance of the engine
+*/
+std::string SalomeApp_EngineImpl::ComponentDataType()
+{
+ return _myComponentName;
+}
+
+/*!
+ \return Component version
+*/
+std::string SalomeApp_EngineImpl::Version()
+{
+ SalomeApp_Application::ModuleShortInfoList versions = SalomeApp_Application::getVersionInfo();
+ QString version;
+ SalomeApp_Application::ModuleShortInfo version_info;
+ foreach ( version_info, versions ) {
+ if ( SalomeApp_Application::moduleName( version_info.name ) == QString(_myComponentName.c_str()) ) {
+ version = version_info.version;
+ break;
+ }
+ }
+
+ return std::string(version.toLatin1().constData());
+}
+
+
+/*!
+ Internal method, creates an engine for a light SALOME module
+ with the given "component data type" string,
+ activates it and registers in SALOME naming service with
+ /SalomeAppEngine/comp_data_type path. If the engine is already in the
+ naming service, simply returns and object reference to it.
+ \param theComponentName - synthetic "component data type" used to identify a given light module
+ \return Object reference to the engine
+*/
+SalomeApp_EngineImpl *SalomeApp_EngineImpl::EngineForComponent( const char* theComponentName,
+ bool toCreate )
+{
+ if ( !theComponentName || !strlen( theComponentName ) )
+ return nullptr;
+
+ if ( SalomeApp_Application::moduleTitle( theComponentName ).isEmpty() )
+ return nullptr;
+
+ return SalomeApp_EngineImplFactory::makeEngine(theComponentName, toCreate);
+}
+
+/*!
+ \param theComponentName - synthetic "component data type" used to identify a given light module
+ \return IOR string for the engine for a light SALOME module
+ with the given "component data type" string
+ \sa GetInstance( const char* theComponentName )
+*/
+std::string SalomeApp_EngineImpl::EngineIORForComponent( const char* theComponentName,
+ bool toCreate )
+{
+ std::string anIOR( "" );
+ SalomeApp_EngineImpl * anEngine = EngineForComponent( theComponentName, toCreate );
+ if (anEngine)
+ {
+ anIOR = anEngine->GetIOR();
+ }
+ return anIOR;
+}
+
+/*!
+ \param theComponentName - synthetic "component data type" used to identify a given light module
+ \return A pointer to corresponding C++ engine instance, null means some internal problems.
+ \sa EngineIORForComponent( const char* theComponentName )
+*/
+SalomeApp_EngineImpl* SalomeApp_EngineImpl::GetInstance( const char* theComponentName,
+ bool toCreate )
+{
+ SalomeApp_EngineImpl* anEngine = EngineForComponent( theComponentName, toCreate );
+ MESSAGE("SalomeApp_EngineImpl::GetInstance(): theComponentName = " <<
+ theComponentName);
+ return anEngine;
+}
--- /dev/null
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, CSGROUP
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// 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, 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
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef _SALOMEAPP_ENGINE_IMPL_HXX_
+#define _SALOMEAPP_ENGINE_IMPL_HXX_
+
+#include "SalomeApp.h"
+#include "SALOMEDS_Tool.hxx"
+#include "SALOMEDSImpl_Driver.hxx"
+#include <QString>
+#include <vector>
+#include <map>
+#include <memory>
+
+class SALOMEDSImpl_SComponent;
+class SALOMEDSImpl_SObject;
+class SalomeApp_EngineImplFactory;
+
+class SALOMEAPP_EXPORT SalomeApp_EngineImpl: public SALOMEDSImpl_Driver
+{
+public:
+
+ ~SalomeApp_EngineImpl();
+
+ virtual SALOMEDSImpl_TMPFile* Save(const SALOMEDSImpl_SComponent& theComponent, const std::string& theURL,
+ long& theStreamLength, bool isMultiFile ) override;
+
+ virtual bool Load(const SALOMEDSImpl_SComponent & theComponent, const unsigned char* theStream,
+ const long theStreamLength, const std::string& theURL, bool isMultiFile ) override;
+
+ virtual SALOMEDSImpl_TMPFile* DumpPython(bool isPublished, bool isMultiFile,
+ bool& isValidScript, long& theStreamLength) override;
+
+ typedef std::vector<std::string> ListOfFiles;
+ typedef std::map<int, ListOfFiles> MapOfFiles;
+
+ ListOfFiles GetListOfFiles (int);
+ void SetListOfFiles (int, const ListOfFiles& theListOfFiles);
+
+ static std::string EngineIORForComponent( const char* theComponentName,
+ bool toCreate );
+ static SalomeApp_EngineImpl* GetInstance ( const char* theComponentName, bool toCreate );
+
+ static SalomeApp_EngineImpl* EngineForComponent( const char* theComponentName,
+ bool toCreate );
+ virtual std::string GetIOR() override;
+ bool keepFiles() const { return _myKeepFiles; }
+ void keepFiles( bool keep ) { _myKeepFiles = keep; }
+ static const std::map<std::string, std::string> & getComponentIORS()
+ {return _myComponentIORS;}
+
+private:
+
+ friend class SalomeApp_EngineImplFactory; // builder
+ explicit SalomeApp_EngineImpl( const char* theComponentName );
+ SalomeApp_EngineImpl() = default;
+
+ // methods from SALOMEDS::Driver without implementation. Must be redefined because
+ // there is no default implementation of SALOMEDSImpl_Driver interface
+ virtual SALOMEDSImpl_TMPFile* SaveASCII( const SALOMEDSImpl_SComponent &, const std::string& ,
+ long&, bool ) override
+ { return nullptr; }
+ virtual bool LoadASCII( const SALOMEDSImpl_SComponent &, const unsigned char* , const long, const std::string& , bool ) override
+ {return 0;}
+ virtual void Close( const SALOMEDSImpl_SComponent & ) override
+ {}
+ virtual std::string ComponentDataType();
+ virtual std::string IORToLocalPersistentID( const SALOMEDSImpl_SObject &, const std::string &, bool, bool) override
+ {return "";}
+ virtual std::string LocalPersistentIDToIOR( const SALOMEDSImpl_SObject &, const std::string&, bool, bool ) override
+ {return "";}
+ virtual bool CanCopy( const SALOMEDSImpl_SObject& ) override
+ {return 0;}
+ virtual SALOMEDSImpl_TMPFile* CopyFrom(const SALOMEDSImpl_SObject& , int& , long& ) override
+ {}
+ virtual bool CanPaste(const std::string& , int ) override
+ {return 0;}
+ virtual std::string PasteInto( const unsigned char* , long, int, const SALOMEDSImpl_SObject& ) override
+ {return "";}
+ virtual std::string Version() override;
+
+ MapOfFiles _myListOfFiles;
+ bool _myKeepFiles;
+ std::string _myComponentName;
+ static std::map<std::string, std::string> _myComponentIORS;
+};
+
+SALOMEAPP_EXPORT class SalomeApp_EngineImplFactory:
+ public SALOMEDSImpl_DriverFactory
+{
+public:
+
+ virtual SALOMEDSImpl_Driver* GetDriverByType(const std::string& theComponentType) override;
+ virtual SALOMEDSImpl_Driver* GetDriverByIOR(const std::string& theIOR) override;
+ static SalomeApp_EngineImpl* makeEngine(const char* theComponentName, bool toCreate);
+ static SalomeApp_EngineImplFactory* instance();
+ void removeEngine(const std::string& theComponentName);
+ ~SalomeApp_EngineImplFactory();
+private:
+ std::map<std::string, SalomeApp_EngineImpl*> _myEnginesMap;
+ SalomeApp_EngineImplFactory() = default;
+};
+
+
+
+#endif
+
--- /dev/null
+<document>
+ <section name="launch">
+ <!-- SALOME launching parameters -->
+ <parameter name="gui" value="yes"/>
+ <parameter name="splash" value="no"/>
+ <parameter name="file" value="no"/>
+ <parameter name="key" value="no"/>
+ <parameter name="interp" value="no"/>
+ <parameter name="modules" value="SHAPER,LIGHT,PYLIGHT"/>
+ </section>
+ <section name="language">
+ <!-- Language settings (resource manager)-->
+ <parameter name="languages" value="en,fr,ja"/>
+ <parameter name="language" value="en"/>
+ <parameter name="locale" value="true"/>
+ <parameter name="translators" value="%P_msg_%L.qm|%P_icons.qm|%P_images.qm"/>
+ </section>
+ <section name="splash" >
+ <!-- Splash screen settings -->
+ <parameter name="image" value="${GUI_ROOT_DIR}/share/salome/resources/gui/shaper_splash.png" />
+ <parameter name="constant_info" value="%A [ %V ]" />
+ <parameter name="text_colors" value="#ffffff" />
+ <parameter name="hide_on_click" value="yes" />
+ <parameter name="show_progress" value="yes" />
+ <parameter name="show_message" value="yes" />
+ <parameter name="show_percents" value="yes" />
+ <parameter name="margin" value="30" />
+ <parameter name="progress_width" value="20" />
+ <parameter name="progress_flags" value="bottom,left_to_right" />
+ <parameter name="opacity" value="0.85" />
+ <parameter name="font" value="Tahoma,12,normal" />
+ <parameter name="alignment" value="top,left" />
+ <parameter name="progress_colors" value="#0f9ee1|#081e70|h" />
+ </section>
+ <section name="resources">
+ <!-- Resource directories (resource manager)-->
+ <parameter name="Qtx" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="Style" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="SUIT" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="STD" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="ViewerTools" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="Plot2d" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="SPlot2d" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="GLViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="GraphicsView" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="OCCViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="VTKViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="PVViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="QxSceneViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="PyEditor" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="PyViewer" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="PyConsole" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="ShaperApp" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <!--parameter name="SalomeApp" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/-->
+ <parameter name="OB" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="CAM" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="LightShaperApp" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="SVTK" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="ToolsGUI" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="LogWindow" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ <parameter name="Session" value="${GUI_ROOT_DIR}/share/salome/resources/gui"/>
+ </section>
+ <section name="desktop" >
+ <!-- Default GUI desktop state, position, size -->
+ <parameter name="geometry" value="80%%x80%%+10%%+10%%"/>
+ <parameter name="opaque_resize" value="false"/>
+ </section>
+ <section name="PyConsole">
+ <!-- Python console preferences -->
+ <parameter name="auto_completion" value="true" />
+ <parameter name="show_banner" value="false" />
+ <parameter name="font" value="Sans Serif,12" />
+ <parameter name="additional_families" value="Helvetic;Helvetica;Helvetica[Adobe];Times;Times[Adobe];Sans Serif;Serif;Monospace;Lucida"/>
+ </section>
+ <section name="Style">
+ <!-- Style and theme preferences -->
+ <parameter name="use_salome_style" value="true" />
+ </section>
+ <section name="ObjectBrowser" >
+ <!-- Object Browser preferences -->
+ <parameter name="auto_hide_search_tool" value="true" />
+ <parameter name="auto_size" value="true" />
+ <parameter name="auto_size_first" value="true" />
+ <parameter name="resize_on_expand_item" value="true" />
+ <parameter name="browse_published_object" value="1" />
+ </section>
+ <section name="FileDlg">
+ <!-- "Open/Save File" dialog box preferences-->
+ <parameter name="QuickDirList" value=""/>
+ <parameter name="ShowCurDirInitial" value="true" />
+ </section>
+ <section name="MRU" >
+ <!-- Show "Most recently used" studies-->
+ <parameter name="show_mru" value="true"/>
+ <!-- Max number of stored "Most recently used" studies-->
+ <parameter name="max_count" value="50"/>
+ <!-- Max visible number of "Most recently used" studies-->
+ <parameter name="visible_count" value="7"/>
+ <!-- Insert mode-->
+ <parameter name="insert_mode" value="0"/>
+ <!-- Link type-->
+ <parameter name="link_type" value="0"/>
+ <!-- Show "Clear" item-->
+ <parameter name="show_clear" value="true"/>
+ </section>
+ <section name="Study">
+ <!-- General study settings -->
+ <parameter name="autoload_light_modules" value="true" />
+ <parameter name="store_positions" value="true" />
+ <parameter name="store_tool_positions" value="true" />
+ <parameter name="auto_save_interval" value="0" />
+ <parameter name="multi_file" value="false" />
+ <parameter name="ascii_file" value="false" />
+ </section>
+ <section name="viewers" >
+ <!-- common viewers preferences -->
+ <parameter name="drop_down_buttons" value="false" />
+ </section>
+ <section name="3DViewer">
+ <parameter name="trihedron_size" value="100" />
+ <parameter name="relative_size" value="true"/>
+ <parameter name="navigation_mode" value="0" />
+ <parameter name="zooming_mode" value="1" />
+ <parameter name="show_static_trihedron" value="true"/>
+ </section>
+ <section name="OCCViewer" >
+ <!-- OCC viewer preferences -->
+ <parameter name="projection_mode" value="0"/>
+ <parameter name="stereo_type" value="0"/>
+ <parameter name="adv_selection_mode" value="0"/>
+ <parameter name="anaglyph_filter" value="0"/>
+ <parameter name="focus_type" value="1"/>
+ <parameter name="focus_value" value="1.0"/>
+ <parameter name="iod_type" value="1"/>
+ <parameter name="iod_value" value="0.05"/>
+ <parameter name="reverse_stereo" value="false"/>
+ <parameter name="enable_vsync" value="true"/>
+ <parameter name="enable_quad_buffer_support" value="false"/>
+ <parameter name="enable_preselection" value="true"/>
+ <parameter name="enable_selection" value="true"/>
+ <parameter name="clipping_color" value="50, 50, 50"/>
+ <parameter name="clipping_use_default_texture" value="true"/>
+ <parameter name="clipping_modulate" value="true"/>
+ <parameter name="clipping_scale" value="1.0"/>
+ <parameter name="rt_depth" value="3"/>
+ <parameter name="rt_reflection" value="true"/>
+ <parameter name="rt_antialiasing" value="false"/>
+ <parameter name="rt_shadow" value="true"/>
+ <parameter name="rt_trans_shadow" value="false"/>
+ <parameter name="light_color" value="255, 255, 255"/>
+ <parameter name="light_dx" value="0.0"/>
+ <parameter name="light_dy" value="0.0"/>
+ <parameter name="light_dz" value="-1.0"/>
+ <parameter name="background" value="bt=2;fn=;tm=0;ts=false;c1=#cddbff;c2=#698fff;gt=1;gr=" />
+ <parameter name="xz_background" value="bt=2;fn=;tm=0;ts=false;c1=#cddbff;c2=#698fff;gt=1;gr=" />
+ <parameter name="yz_background" value="bt=2;fn=;tm=0;ts=false;c1=#cddbff;c2=#698fff;gt=1;gr=" />
+ <parameter name="xy_background" value="bt=2;fn=;tm=0;ts=false;c1=#cddbff;c2=#698fff;gt=1;gr=" />
+ </section>
+ <section name="VTKViewer" >
+ <!-- VTK viewer preferences -->
+ <parameter name="background" value="0, 0, 0"/>
+ <parameter name="projection_mode" value="0"/>
+ <parameter name="stereo_type" value="0"/>
+ <parameter name="anaglyph_filter" value="0"/>
+ <parameter name="enable_quad_buffer_support" value="false"/>
+ <parameter name="preselection" value="0"/>
+ <parameter name="enable_selection" value="true"/>
+ <parameter name="speed_value" value="10"/>
+ <parameter name="speed_mode" value="0"/>
+ <parameter name="spacemouse_func1_btn" value="1"/>
+ <parameter name="spacemouse_func2_btn" value="2"/>
+ <parameter name="spacemouse_func5_btn" value="5"/>
+ <parameter name="show_group_names" value="true"/>
+ <parameter name="group_names_text_color" value="255, 255, 255"/>
+ <parameter name="group_names_transparency" value="0.5"/>
+ <parameter name="recorder_mode" value="1"/>
+ <parameter name="recorder_fps" value="17.3"/>
+ <parameter name="recorder_quality" value="100" />
+ <parameter name="recorder_progressive" value="true"/>
+ </section>
+ <section name="Plot2d" >
+ <!-- Plot2d viewer preferences -->
+ <parameter name="Background" value="255, 255, 255" />
+ <parameter name="SelectionColor" value="80, 80, 80" />
+ <parameter name="DeviationMarkerColor" value="255, 0, 0" />
+ <parameter name="DeviationMarkerLineWidth" value="1" />
+ <parameter name="DeviationMarkerTickSize" value="2" />
+ <parameter name="CurveType" value="1" />
+ <parameter name="HorScaleMode" value="0" />
+ <parameter name="LegendPos" value="1" />
+ <parameter name="LegendSymbolType" value="0" />
+ <parameter name="LegendFont" value="Helvetic,12" />
+ <parameter name="LegendFontColor" value="0, 0, 0" />
+ <parameter name="SelectedLegendFontColor" value="255, 255, 255" />
+ <parameter name="MarkerSize" value="9" />
+ <parameter name="ShowLegend" value="true" />
+ <parameter name="VerScaleMode" value="0" />
+ <parameter name="VerNormLMinMode" value="false"/>
+ <parameter name="VerNormLMaxMode" value="false"/>
+ <parameter name="VerNormRMinMode" value="false"/>
+ <parameter name="VerNormRMaxMode" value="false"/>
+ </section>
+ <section name="QxSceneViewer" >
+ <!-- QxScene viewer preferences -->
+ <parameter name="Background" value="144, 208, 211" />
+ <parameter name="Title" value="63, 213, 255" />
+ <parameter name="NodeBody" value="255, 249, 147" />
+ </section>
+ <section name="PyEditor" >
+ <!-- PyEditor viewer preferences -->
+ <parameter name="Font" value="Courier, 10" />
+ <parameter name="HighlightCurrentLine" value="true" />
+ <parameter name="TextWrapping" value="false" />
+ <parameter name="CenterCursorOnScroll" value="true" />
+ <parameter name="LineNumberArea" value="true" />
+ <parameter name="TabSpaceVisible" value="true" />
+ <parameter name="TabSize" value="4" />
+ <parameter name="VerticalEdge" value="true" />
+ <parameter name="NumberColumns" value="90" />
+ <parameter name="CompletionPolicy" value="3" />
+ </section>
+ <section name="GUI" >
+ <parameter name="documentation" value="gui_help"/>
+ <parameter name="site_url" value="http://www.salome-platform.org"/>
+ <parameter name="tutorials_url" value="https://www.salome-platform.org/user-section/salome-tutorials"/>
+ <parameter name="forum_url" value="http://www.salome-platform.org/forum"/>
+ <parameter name="channel_url" value="https://www.youtube.com/playlist?list=PLgvBxFyGVRbZZz4wVvP36xXQL-S81RZsc&disable_polymer=true"/>
+ </section>
+ <section name="KERNEL" >
+ <parameter name="documentation" value="kernel_help"/>
+ </section>
+ <section name="gui_help" >
+ <parameter name="User's Guide/GUI module" value="${GUI_ROOT_DIR}/share/doc/salome/gui/GUI/index.html;;http://docs.salome-platform.org/latest/gui/GUI/index.html"/>
+ <parameter name="Developer's Guide/GUI module" value="${GUI_ROOT_DIR}/share/doc/salome/tui/GUI/index.html;;http://docs.salome-platform.org/latest/tui/GUI/index.html"/>
+ </section>
+ <section name="kernel_help" >
+ <parameter name="Developer's Guide/KERNEL module" value="${KERNEL_ROOT_DIR}/share/doc/salome/tui/KERNEL/index.html;;http://docs.salome-platform.org/latest/tui/KERNEL/index.html"/>
+ </section>
+ <section name="notification" >
+ <parameter name="timeout" value="10"/>
+ <parameter name="animation" value="0"/>
+ <parameter name="size" value="300"/>
+ </section>
+ <!--Salome shortcut settings-->
+ <section name="shortcuts_settings">
+ <parameter name="general_sections" value="General;Viewers"/>
+ </section>
+ <section name="shortcuts:General">
+ <parameter name="Show object(s)" value="Ctrl+Alt+S"/>
+ <parameter name="Hide object(s)" value="Ctrl+Alt+H"/>
+ </section>
+ <section name="shortcuts:Viewers">
+ <parameter name="Front view" value="Ctrl+Alt+F"/>
+ <parameter name="Back view" value="Ctrl+Alt+B"/>
+ <parameter name="Top view" value="Ctrl+Alt+P"/>
+ <parameter name="Bottom view" value="Ctrl+Alt+O"/>
+ <parameter name="Left view" value="Ctrl+Alt+J"/>
+ <parameter name="Right view" value="Ctrl+Alt+G"/>
+ <parameter name="Reset view" value="Ctrl+Alt+E"/>
+ </section>
+ <section name="shortcuts:Geometry">
+ <parameter name="Increase number of isolines" value="Meta+I"/>
+ <parameter name="Decrease number of isolines" value="Meta+D"/>
+ <parameter name="Increase transparency" value="Meta+Y"/>
+ <parameter name="Decrease transparency" value="Meta+T"/>
+ </section>
+ <section name="ExternalBrowser" >
+ <!-- External HELP browser settings -->
+ <parameter name="winapplication" value="C:\Program Files\Internet Explorer\iexplore.exe" />
+ <parameter name="use_external_browser" value="false" />
+ <parameter name="application" value="/usr/bin/firefox" />
+ <parameter name="parameters" value="" />
+ </section>
+ <section name="add_help">
+ <!-- Additional help resources -->
+ <parameter name="Developer resources" value="${DOCUMENTATION_ROOT_DIR}/index.html;;http://docs.salome-platform.org/latest/index.html" />
+ </section>
+ <section name="windows_geometry">
+ <parameter name="nomodule" value="#00 #00 #00 #FF #00 #00 #00 #00 #FD #00 #00 #00 #03 #00 #00 #00 #00 #00 #00 #01 #00 #00 #00 #02 #62 #FC #02 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #3B #00 #00 #02 #62 #00 #00 #00 #59 #00 #FF #FF #FF #00 #00 #00 #01 #00 #00 #00 #DC #00 #00 #02 #62 #FC #02 #00 #00 #00 #01 #FB #00 #00 #00 #1A #00 #69 #00 #6E #00 #66 #00 #6F #00 #50 #00 #61 #00 #6E #00 #65 #00 #6C #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #3B #00 #00 #02 #62 #00 #00 #02 #62 #00 #FF #FF #FF #00 #00 #00 #03 #00 #00 #04 #C3 #00 #00 #00 #59 #FC #01 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #04 #C3 #00 #00 #00 #46 #00 #FF #FF #FF #00 #00 #02 #DB #00 #00 #02 #62 #00 #00 #00 #04 #00 #00 #00 #04 #00 #00 #00 #08 #00 #00 #00 #08 #FC #00 #00 #00 #01 #00 #00 #00 #02 #00 #00 #00 #03 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #BC #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #0E #00 #50 #00 #6C #00 #75 #00 #67 #00 #69 #00 #6E #00 #73 #00 #00 #00 #00 #22 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00"/>
+ <parameter name="" value="#00 #00 #00 #FF #00 #00 #00 #00 #FD #00 #00 #00 #02 #00 #00 #00 #00 #00 #00 #01 #00 #00 #00 #02 #8D #FC #02 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #37 #00 #00 #02 #8D #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #03 #00 #00 #04 #C3 #00 #00 #00 #74 #FC #01 #00 #00 #00 #01 #FB #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #00 #00 #00 #04 #C3 #00 #00 #00 #46 #00 #FF #FF #FF #00 #00 #04 #C3 #00 #00 #02 #5E #00 #00 #00 #04 #00 #00 #00 #04 #00 #00 #00 #08 #00 #00 #00 #08 #FC #00 #00 #00 #01 #00 #00 #00 #02 #00 #00 #00 #03 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #00 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #11 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #00 #0E #00 #50 #00 #6C #00 #75 #00 #67 #00 #69 #00 #6E #00 #73 #01 #00 #00 #00 #22 #FF #FF #FF #FF #00 #00 #00 #00 #00 #00 #00 #00"/>
+ </section>
+ <section name="windows_visibility">
+ <parameter name="" value="#00 #00 #00 #00 #05 #00 #00 #00 #0E #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #0E #00 #50 #00 #6C #00 #75 #00 #67 #00 #69 #00 #6E #00 #73 #01 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #10 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #01 #00 #00 #00 #05 #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #30 #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #31 #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #33 #01"/>
+ <parameter name="nomodule" value="#00 #00 #00 #00 #05 #00 #00 #00 #0E #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #0E #00 #50 #00 #6C #00 #75 #00 #67 #00 #69 #00 #6E #00 #73 #00 #00 #00 #00 #1A #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #4D #00 #6F #00 #64 #00 #75 #00 #6C #00 #65 #00 #73 #01 #00 #00 #00 #1C #00 #53 #00 #61 #00 #6C #00 #6F #00 #6D #00 #65 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #00 #00 #00 #10 #00 #53 #00 #74 #00 #61 #00 #6E #00 #64 #00 #61 #00 #72 #00 #64 #01 #01 #00 #00 #00 #06 #00 #00 #00 #1A #00 #69 #00 #6E #00 #66 #00 #6F #00 #50 #00 #61 #00 #6E #00 #65 #00 #6C #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #22 #00 #6F #00 #62 #00 #6A #00 #65 #00 #63 #00 #74 #00 #42 #00 #72 #00 #6F #00 #77 #00 #73 #00 #65 #00 #72 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #22 #00 #70 #00 #79 #00 #74 #00 #68 #00 #6F #00 #6E #00 #43 #00 #6F #00 #6E #00 #73 #00 #6F #00 #6C #00 #65 #00 #44 #00 #6F #00 #63 #00 #6B #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #30 #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #31 #01 #00 #00 #00 #10 #00 #77 #00 #69 #00 #6E #00 #64 #00 #6F #00 #77 #00 #5F #00 #33 #01"/>
+ </section>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+<context>
+ <name>@default</name>
+ <message>
+ <source>APP_DEFAULT_ICO</source>
+ <translation>shaper.png</translation>
+ </message>
+ <message>
+ <source>ICO_ABOUT</source>
+ <translation>icon_about.png</translation>
+ </message>
+ <message>
+ <source>ABOUT</source>
+ <translation>about.png</translation>
+ </message>
+ <message>
+ <source>APP_BASE_LOGO</source>
+ <translation>app_logo.png</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+<context>
+ <name>@default</name>
+ <message>
+ <source>EXTERNAL_BROWSER_CANNOT_SHOW_PAGE</source>
+ <translation>External browser "%1" can not show help page "%2". Do you want to change the browser's settings in preferences?</translation>
+ </message>
+ <message>
+ <source>ABOUT_COPYRIGHT</source>
+ <translation>Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE, CSGROUP
+
+Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6,
+CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS</translation>
+ </message>
+ <message>
+ <source>ABOUT_CAPTION</source>
+ <translation>About %1</translation>
+ </message>
+ <message>
+ <source>ABOUT_BASE</source>
+ <translation>Base information</translation>
+ </message>
+ <message>
+ <source>ABOUT_MODULE_INFOS</source>
+ <translation>Modules information</translation>
+ </message>
+ <message>
+ <source>ABOUT_UNKNOWN_VERSION</source>
+ <translation>Unknown</translation>
+ </message>
+ <message>
+ <source>ABOUT_CLOSE</source>
+ <translation>&Close</translation>
+ </message>
+ <message>
+ <source>APP_NAME</source>
+ <translation>SHAPER</translation>
+ </message>
+ <message>
+ <source>ABOUT_LICENSE</source>
+ <translation>GNU LGPL</translation>
+ </message>
+ <message>
+ <source>ABOUT_VERSION</source>
+ <translation>Version %1</translation>
+ </message>
+ <message>
+ <source>SALOME_SITE</source>
+ <translation>SALOME Website</translation>
+ </message>
+ <message>
+ <source>SALOME_FORUM</source>
+ <translation>SALOME Forum</translation>
+ </message>
+ <message>
+ <source>SALOME_VIDEO_TUTORIALS</source>
+ <translation>Video Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_VIDEO_TUTORIALS</source>
+ <translation>Visit YouTube channel with some videos</translation>
+ </message>
+ <message>
+ <source>SALOME_TUTORIALS</source>
+ <translation>Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_TUTORIALS</source>
+ <translation>Try tutorials from SALOME site</translation>
+ </message>
+ <message>
+ <source>ENTRY_COLUMN</source>
+ <translation>Entry</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CAPTION</source>
+ <translation>Close active study</translation>
+ </message>
+ <message>
+ <source>STUDYCLOSE_DESCRIPTION</source>
+ <translation>The current study has unsaved changes. Would you like to save before closing it?</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_SAVE</source>
+ <translation>&Yes</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CLOSE</source>
+ <translation>&No</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CANCEL</source>
+ <translation>&Cancel</translation>
+ </message>
+ <message>
+ <source>WRN_PYTHON_FILE_NAME_BAD</source>
+ <translation>Please enter correct file name.
+Python file must include only letters, digits and underscores and start from letter or underscore.</translation>
+ </message>
+ <message>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>Python Files (*.py)</translation>
+ </message>
+ <message>
+ <source>LOG_FILES_FILTER</source>
+ <translation>Log files (*.log *.txt)</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Application</name>
+ <message>
+ <source>LANG_CHANGED</source>
+ <translation>Application language has been changed.
+The changes will be applied on the next application session.</translation>
+ </message>
+ <message>
+ <source>LOCALE_CHANGED</source>
+ <translation>Application locale has been changed.
+The changes will be applied on the next application session.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_THEME</source>
+ <translation>Theme</translation>
+ </message>
+ <message>
+ <source>TOT_THEME</source>
+ <translation>Theme</translation>
+ </message>
+ <message>
+ <source>PRP_THEME</source>
+ <translation>Change style properties</translation>
+ </message>
+ <message>
+ <source>TOT_FULLSCREEN</source>
+ <translation>Full screen</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FULLSCREEN</source>
+ <translation>Full screen</translation>
+ </message>
+ <message>
+ <source>PRP_FULLSCREEN</source>
+ <translation>Switch to full screen mode</translation>
+ </message>
+ <message>
+ <source>INF_TOOLBAR_MODULES</source>
+ <translation>Modules</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_LEGEND</source>
+ <translation>Show legend</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_RENAME</source>
+ <translation>&Rename</translation>
+ </message>
+ <message>
+ <source>PREF_MULTI_FILE</source>
+ <translation>Multi file save</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PREFERENCES</source>
+ <translation>Pre&ferences...</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SHOW</source>
+ <translation>Show trihedron</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON</source>
+ <translation>Trihedron</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SIZE</source>
+ <translation>Size</translation>
+ </message>
+ <message>
+ <source>OBJECT_BROWSER</source>
+ <translation>Object Browser</translation>
+ </message>
+ <message>
+ <source>INFO_PANEL</source>
+ <translation>Help panel</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PREFERENCES</source>
+ <translation>Allow to change the preferences</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DIRECTORIES</source>
+ <translation>Quick directory list</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VTKVIEWER</source>
+ <translation>VTK 3D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_LOAD_LIGHT</source>
+ <translation>Automatic loading of light modules when opening study</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_POS</source>
+ <translation>Store positions of windows</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_TOOL_POS</source>
+ <translation>Store positions of toolbars</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE</source>
+ <translation>Auto-save interval (min)</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE_DISABLED</source>
+ <translation>Disabled</translation>
+ </message>
+ <message>
+ <source>PREF_PROJECTION_MODE</source>
+ <translation>Projection mode:</translation>
+ </message>
+ <message>
+ <source>PREF_ORTHOGRAPHIC</source>
+ <translation>Orthogonal</translation>
+ </message>
+ <message>
+ <source>PREF_PERSPECTIVE</source>
+ <translation>Perspective</translation>
+ </message>
+ <message>
+ <source>PREF_POLYGON_SELECTION</source>
+ <translation>Polygon</translation>
+ </message>
+ <message>
+ <source>PREF_CIRCLE_SELECTION</source>
+ <translation>Circle</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTION_STYLE</source>
+ <translation>Advanced selection</translation>
+ </message>
+ <message>
+ <source>PREF_NAVIGATION</source>
+ <translation>Navigation style</translation>
+ </message>
+ <message>
+ <source>PREF_STANDARD_STYLE</source>
+ <translation>Salome standard controls</translation>
+ </message>
+ <message>
+ <source>PREF_KEYFREE_STYLE</source>
+ <translation>Keyboard free style</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING</source>
+ <translation>Zooming style</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CENTER</source>
+ <translation>Relative to the view's center</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CURSOR</source>
+ <translation>Relative to the cursor</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED</source>
+ <translation>Speed increment:</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED_MODE</source>
+ <translation>Modification mode:</translation>
+ </message>
+ <message>
+ <source>PREF_ARITHMETIC</source>
+ <translation>Arithmetic progression</translation>
+ </message>
+ <message>
+ <source>PREF_GEOMETRICAL</source>
+ <translation>Geometrical progression</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_SPACEMOUSE</source>
+ <translation>Spacemouse</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_STATIC_TRIHEDRON</source>
+ <translation>Show static trihedron</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_1</source>
+ <translation>Decrease speed increment</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_2</source>
+ <translation>Increase speed increment</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_3</source>
+ <translation>Dominant / combined switch</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_1</source>
+ <translation>Button 1</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_2</source>
+ <translation>Button 2</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_3</source>
+ <translation>Button 3</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_4</source>
+ <translation>Button 4</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_5</source>
+ <translation>Button 5</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_6</source>
+ <translation>Button 6</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_7</source>
+ <translation>Button 7</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_8</source>
+ <translation>Button 8</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_*</source>
+ <translation>Button *</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_10</source>
+ <translation>Button 10</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_11</source>
+ <translation>Button 11</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_RECORDING</source>
+ <translation>AVI Recording</translation>
+ </message>
+ <message>
+ <source>PREF_ALL_DISLPAYED_FRAMES</source>
+ <translation>Recording all displayed frames</translation>
+ </message>
+ <message>
+ <source>PREF_FPS</source>
+ <translation>FPS</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_TTL</source>
+ <translation>Settings</translation>
+ </message>
+ <message>
+ <source>PREF_PROGRESSIVE</source>
+ <translation>Progressive</translation>
+ </message>
+ <message>
+ <source>PREF_QUALITY</source>
+ <translation>Quality</translation>
+ </message>
+ <message>
+ <source>PREF_RECORDING_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PREF_SKIPPED_FRAMES</source>
+ <translation>Recording at a given FPS</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_GROUP_NAMES</source>
+ <translation>Names of groups</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TEXT_COLOR</source>
+ <translation>Text color</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TRANSPARENCY</source>
+ <translation>Transparency</translation>
+ </message>
+ <message>
+ <source>PREF_BOTTOM</source>
+ <translation>Bottom</translation>
+ </message>
+ <message>
+ <source>PREF_CURVE_TYPE</source>
+ <translation>Curve type:</translation>
+ </message>
+ <message>
+ <source>PREF_POINTS</source>
+ <translation>Points</translation>
+ </message>
+ <message>
+ <source>PRP_MODULE</source>
+ <translation>Switch to the module "%1"</translation>
+ </message>
+ <message>
+ <source>PREF_ASCII_FILE</source>
+ <translation>ASCII save</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_LOADED</source>
+ <translation>Preferences for module "<b>%N</b>" will be available when the module is loaded</translation>
+ </message>
+ <message>
+ <source>PREF_LINEAR</source>
+ <translation>Linear</translation>
+ </message>
+ <message>
+ <source>DATA_MODELS</source>
+ <translation>Data models</translation>
+ </message>
+ <message>
+ <source>PRP_RENAME</source>
+ <translation>Rename active window</translation>
+ </message>
+ <message>
+ <source>TOT_RENAME</source>
+ <translation>Rename</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_OBJ</source>
+ <translation>Rename</translation>
+ </message>
+ <message>
+ <source>LOG_WINDOW</source>
+ <translation>Message Window</translation>
+ </message>
+ <message>
+ <source>PREF_SPLINE</source>
+ <translation>Spline</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SEARCH_TOOL</source>
+ <translation>Search Tool</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_HIDE_SEARCH_TOOL</source>
+ <translation>Enable auto-hiding</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Object browser settings</translation>
+ </message>
+ <message>
+ <source>PRP_APP_MODULE</source>
+ <translation>Switch to SALOME platform neutral point</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_CONSOLE</source>
+ <translation>Python console</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_BANNER</source>
+ <translation>Show banner</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_COMPLETION</source>
+ <translation>Command auto-completion</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STYLE</source>
+ <translation>Salome style</translation>
+ </message>
+ <message>
+ <source>PREF_USE_SALOME_STYLE</source>
+ <translation>Use Salome style</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_SIZE</source>
+ <translation>Marker size:</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_VIEWERS</source>
+ <translation>Viewers</translation>
+ </message>
+ <message>
+ <source>PREF_APP</source>
+ <translation>Application</translation>
+ </message>
+ <message>
+ <source>PREF_TOP</source>
+ <translation>Top</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>Refresh</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE_FIRST</source>
+ <translation>Auto size for "Name" column</translation>
+ </message>
+ <message>
+ <source>PREF_RESIZE_ON_EXPAND_ITEM</source>
+ <translation>Resize columns on expand item</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_TO_THE_PUBLISHED_OBJECT</source>
+ <translation>Browse to the published object</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_NEVER</source>
+ <translation>Never</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_AFTER_APPLY_AND_CLOSE_ONLY</source>
+ <translation>After Apply & Close only</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_ALWAYS</source>
+ <translation>Always</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Object browser</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_GENERAL</source>
+ <translation>General</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_0</source>
+ <translation>&GL 2D view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_1</source>
+ <translation>&Plot 2D view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_2</source>
+ <translation>&OCC 3D view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_3</source>
+ <translation>VT&K 3D view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_4</source>
+ <translation>Qx&Scene 2D view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_5</source>
+ <translation>G&raphics view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_6</source>
+ <translation>ParaVie&w view</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_7</source>
+ <translation>P&ython view</translation>
+ </message>
+ <message>
+ <source>CREATING_NEW_WINDOW</source>
+ <translation>Create new %1</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Object</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_POSITION</source>
+ <translation>Legend position:</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE_SIZE</source>
+ <translation>Relative</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND</source>
+ <translation>Background</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND_COLOR</source>
+ <translation>Background color</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_SELECTION</source>
+ <translation>Selection color</translation>
+ </message>
+ <message>
+ <source>PREF_XYVIEWER_BACKGROUND</source>
+ <translation>XY View</translation>
+ </message>
+ <message>
+ <source>PREF_XZVIEWER_BACKGROUND</source>
+ <translation>XZ View</translation>
+ </message>
+ <message>
+ <source>PREF_YZVIEWER_BACKGROUND</source>
+ <translation>YZ View</translation>
+ </message>
+ <message>
+ <source>PREF_3DVIEWER_BACKGROUND</source>
+ <translation>3D View</translation>
+ </message>
+ <message>
+ <source>PREF_FONT</source>
+ <translation>Font</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_FONT</source>
+ <translation>Legend font</translation>
+ </message>
+ <message>
+ <source>PREF_FONT_COLOR</source>
+ <translation>Legend font color</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTED_FONT_COLOR</source>
+ <translation>Highlighted legend font color</translation>
+ </message>
+ <message>
+ <source>PREF_LEFT</source>
+ <translation>Left</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_DIRECTORIES</source>
+ <translation>Directories</translation>
+ </message>
+ <message>
+ <source>ACTIVATING_MODULE</source>
+ <translation>Trying to activate module "%1"</translation>
+ </message>
+ <message>
+ <source>PREF_VERT_AXIS_SCALE</source>
+ <translation>Vertical axis scale:</translation>
+ </message>
+ <message>
+ <source>PREF_HOR_AXIS_SCALE</source>
+ <translation>Horizontal axis scale:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LANGUAGE</source>
+ <translation>Language</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LANGUAGE</source>
+ <translation>Current language</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LOCALE</source>
+ <translation>Use "C" locale</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LOOK_AND_FEEL</source>
+ <translation>Look and feel</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_SPLASH</source>
+ <translation>Show splash screen at start-up</translation>
+ </message>
+ <message>
+ <source>PREF_OPAQUE_RESIZE</source>
+ <translation>Opaque resize</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STUDY</source>
+ <translation>Study properties</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_DROP_DOWN_BUTTONS</source>
+ <translation>Drop-down buttons in toolbars for action groups</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT</source>
+ <translation>Notifications auto-hide timeout</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT_NONE</source>
+ <translation>None</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_COMMON</source>
+ <translation>Common</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_3DVIEWER</source>
+ <translation>3D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_OCCVIEWER</source>
+ <translation>OCC 3D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STEREO</source>
+ <translation>Stereo render</translation>
+ </message>
+ <message>
+ <source>PREF_STEREO_TYPE</source>
+ <translation>Stereo type</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_FILTER</source>
+ <translation>Anaglyph filter</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_RED_CYAN</source>
+ <translation>Red-Cyan</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_YELLOW_BLUE</source>
+ <translation>Yellow-Blue</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_GREEN_MAGENTA</source>
+ <translation>Green-Magenta</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_TYPE</source>
+ <translation>Convergence distance type</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_VALUE</source>
+ <translation>Stereographic focus value</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_TYPE</source>
+ <translation>IOD type</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_VALUE</source>
+ <translation>Interocular distance (IOD) value</translation>
+ </message>
+ <message>
+ <source>PREF_ABSOLUTE</source>
+ <translation>Absolute</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE</source>
+ <translation>Relative</translation>
+ </message>
+ <message>
+ <source>PREF_REVERSE_STEREO</source>
+ <translation>Reverse stereo</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_VSYNC</source>
+ <translation>Enable V-Sync</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_QUAD_BUFFER_SUPPORT</source>
+ <translation>Enable quad-buffer support</translation>
+ </message>
+ <message>
+ <source>PREF_LOGARITHMIC</source>
+ <translation>Logarithmic</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MODULE_HELP</source>
+ <translation>Module Help</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_TITLE_COLOR</source>
+ <translation>Title color</translation>
+ </message>
+ <message>
+ <source>PREF_PARAM</source>
+ <translation>Parameters</translation>
+ </message>
+ <message>
+ <source>PREF_RIGHT</source>
+ <translation>Right</translation>
+ </message>
+ <message>
+ <source>PREF_LINES</source>
+ <translation>Lines</translation>
+ </message>
+ <message>
+ <source>INF_CANCELLED</source>
+ <translation>Module activation cancelled</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_EXT_BROWSER</source>
+ <translation>External browser</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_CTRL_COLOR</source>
+ <translation>Ctrl color</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Default columns</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PLOT2DVIEWER</source>
+ <translation>Plot 2D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VIEWER</source>
+ <translation>Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LEGEND</source>
+ <translation>Legend</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_SYMBOL_TYPE</source>
+ <translation>Symbol type:</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ABOVE_LINE</source>
+ <translation>Marker above line</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ON_LINE</source>
+ <translation>Marker on line</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_COLOR</source>
+ <translation>Deviation marker color</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_LW</source>
+ <translation>Deviation marker line width</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_TS</source>
+ <translation>Deviation marker tick size</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>Most Recently Used</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PREFERENCES</source>
+ <translation>Preferences</translation>
+ </message>
+ <message>
+ <source>DEFINE_EXTERNAL_BROWSER</source>
+ <translation>External browser is not found. Do you want to define it in preferences?</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE</source>
+ <translation>Auto size for other columns</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Most recently used</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_NEW</source>
+ <translation>&New</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_OPEN</source>
+ <translation>&Open...</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Python Console</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SELECTION</source>
+ <translation>Selection</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_SELECTION</source>
+ <translation>Enable selection</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_PRESELECTION</source>
+ <translation>Enable preselection</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION</source>
+ <translation>Preselection</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_STANDARD</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DYNAMIC</source>
+ <translation>Dynamic</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DISABLED</source>
+ <translation>Disabled</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_CLIPPING</source>
+ <translation>Clipping parameters</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_COLOR</source>
+ <translation>Color</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_DEFAULT_TEXTURE</source>
+ <translation>Use default texture</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_TEXTURE</source>
+ <translation>Texture</translation>
+ </message>
+ <message>
+ <source>OCC_TEXTURE_FILES</source>
+ <translation>Image files (*.jpeg *.jpg *.jpe *.png *.bmp *.gif *.ppm *.tif *.tiff* .tga *.exr)</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_MODULATE</source>
+ <translation>Modulate</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_SCALE</source>
+ <translation>Scale factor</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_RAY_TRACING</source>
+ <translation>Ray tracing</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_DEPTH</source>
+ <translation>Depth</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_REFLECTION</source>
+ <translation>Specular reflections</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_ANTIALIASING</source>
+ <translation>Adaptive anti-aliasing</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_SHADOW</source>
+ <translation>Shadows rendering</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_TRANS_SHADOW</source>
+ <translation>Transparent shadow</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LIGHT</source>
+ <translation>Light source</translation>
+ </message>
+ <message>
+ <source>PREF_LIGHT_COLOR</source>
+ <translation>Color</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE</source>
+ <translation>Close</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE</source>
+ <translation>&Close</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE</source>
+ <translation>Close active window</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE_ALL</source>
+ <translation>Close all</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE_ALL</source>
+ <translation>Close All</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE_ALL</source>
+ <translation>Close all windows</translation>
+ </message>
+ <message>
+ <source>TOT_GROUP_ALL</source>
+ <translation>Group all</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_GROUP_ALL</source>
+ <translation>&Group All</translation>
+ </message>
+ <message>
+ <source>PRP_GROUP_ALL</source>
+ <translation>Group all windows</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_NOT_EXISTS</source>
+ <translation>Can not open %1.
+File does not exist</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_MRU</source>
+ <translation>Show MRU items</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_VISIBLE_COUNT</source>
+ <translation>Number of MRU items</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_INSERT_MODE</source>
+ <translation>Insert mode</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_FIRST</source>
+ <translation>Move to the beginning</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_LAST</source>
+ <translation>Move to the end</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_FIRST</source>
+ <translation>Add to the beginning</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_LAST</source>
+ <translation>Add to the end</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_TYPE</source>
+ <translation>Link type</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_AUTO</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_SHORT</source>
+ <translation>Short</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_FULL</source>
+ <translation>Full</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_SUPPORTED</source>
+ <translation>Preferences for module "%1" not supported</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_SHORTCUTS</source>
+ <translation>Shortcuts</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SHORTCUTS</source>
+ <translation>Shortcuts settings</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_FULL_SCREEN</source>
+ <translation>Full-screen</translation>
+ </message>
+ <message>
+ <source>PREF_FULL_SCREEN_AUTO</source>
+ <translation>Hide object browser and viewers toolbars</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_PYEDITOR</source>
+ <translation>Python Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_FONT</source>
+ <translation>Font settings</translation>
+ </message>
+ <message>
+ <source>PREF_PY_FONT</source>
+ <translation>Font</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_DISPLAY</source>
+ <translation>Display settings</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURRLINE_HIGHLIGHT</source>
+ <translation>Enable current line highlight</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TEXT_WRAP</source>
+ <translation>Enable text wrapping</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURSON_ON_SCROLL</source>
+ <translation>Center cursor on scroll</translation>
+ </message>
+ <message>
+ <source>PREF_PY_LINE_NUMBS_AREA</source>
+ <translation>Display line numbers area</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_EDITOR</source>
+ <translation>Editor settings</translation>
+ </message>
+ <message>
+ <source>PREF_PY_COMPLETION_MODE</source>
+ <translation>Completion mode</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NONE</source>
+ <translation>None</translation>
+ </message>
+ <message>
+ <source>PREF_PY_AUTO</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>PREF_PY_MANUAL</source>
+ <translation>Manual</translation>
+ </message>
+ <message>
+ <source>PREF_PY_ALWAYS</source>
+ <translation>Always</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_TAB</source>
+ <translation>Tab settings</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_WHITESPACES</source>
+ <translation>Display tab delimiters</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_SIZE</source>
+ <translation>Tab size:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VERT_EDGE</source>
+ <translation>Vertical edge settings</translation>
+ </message>
+ <message>
+ <source>PREF_PY_VERT_EDGE</source>
+ <translation>Display vertical edge</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NUM_COLUMNS</source>
+ <translation>Number of columns:</translation>
+ </message>
+ <message>
+ <source>INFO_WELCOME_TO_SALOME</source>
+ <translation>Welcome to SALOME</translation>
+ </message>
+ <message>
+ <source>INFO_GETTING_STARTED</source>
+ <translation>Getting started</translation>
+ </message>
+ <message>
+ <source>INFO_AVAILABLE_MODULES</source>
+ <translation>Available modules</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Module</name>
+ <message>
+ <source>MEN_HIDE</source>
+ <translation>Hide</translation>
+ </message>
+ <message>
+ <source>TOP_DISPLAY_ONLY</source>
+ <translation>Show only</translation>
+ </message>
+ <message>
+ <source>STB_DISPLAY_ONLY</source>
+ <translation>Show only</translation>
+ </message>
+ <message>
+ <source>MEN_DISPLAY_ONLY</source>
+ <translation>Show Only</translation>
+ </message>
+ <message>
+ <source>TOP_HIDE</source>
+ <translation>HIde</translation>
+ </message>
+ <message>
+ <source>MEN_ERASE_ALL</source>
+ <translation>Hide All</translation>
+ </message>
+ <message>
+ <source>STB_HIDE</source>
+ <translation>Hide</translation>
+ </message>
+ <message>
+ <source>STB_SHOW</source>
+ <translation>Show</translation>
+ </message>
+ <message>
+ <source>TOP_SHOW</source>
+ <translation>Show</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW</source>
+ <translation>Show</translation>
+ </message>
+ <message>
+ <source>STB_ERASE_ALL</source>
+ <translation>Hide all</translation>
+ </message>
+ <message>
+ <source>TOP_ERASE_ALL</source>
+ <translation>Hide all</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_ModuleDlg</name>
+ <message>
+ <source>DESCRIPTION</source>
+ <translation>You're activating module
+ <b>%1</b>.<br>Please, select required action by pressing the corresponding button below.</translation>
+ </message>
+ <message>
+ <source>CANCEL</source>
+ <translation>&Cancel</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Activate module</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_NameDlg</name>
+ <message>
+ <source>TLT_RENAME</source>
+ <translation>Rename</translation>
+ </message>
+ <message>
+ <source>NAME_LBL</source>
+ <translation>Name: </translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_PreferencesDlg</name>
+ <message>
+ <source>IMPORT_PREFERENCES</source>
+ <translation>Import preferences</translation>
+ </message>
+ <message>
+ <source>XML_FILES_FILTER</source>
+ <translation>XML Files (*.xml)</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Preferences</translation>
+ </message>
+ <message>
+ <source>WARNING</source>
+ <translation>Warning</translation>
+ </message>
+ <message>
+ <source>IMPORT_BTN_TEXT</source>
+ <translation>Import</translation>
+ </message>
+ <message>
+ <source>DEFAULT_QUESTION</source>
+ <translation>Do you want to retrieve default preferences?</translation>
+ </message>
+ <message>
+ <source>DEFAULT_BTN_TEXT</source>
+ <translation>Defaults</translation>
+ </message>
+ <message>
+ <source>PREF_NEED_RESTART</source>
+ <translation>Some changes will take effect only after application restart</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_ModuleAction</name>
+ <message>
+ <source>ACTIVATE_MODULE_TOP</source>
+ <translation>Activate/deactivate %1 module</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_PyEditor</name>
+ <message>
+ <source>TOT_DUMP_PYCOMMANDS</source>
+ <translation>Dump commands</translation>
+ </message>
+ <message>
+ <source>TOT_SAVE_PYLOG</source>
+ <translation>Save log</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>EXTERNAL_BROWSER_CANNOT_SHOW_PAGE</source>
+ <translation>Le navigateur externe "%1" ne peut pas trouver la page d'aide "%2". Voulez-vous modifier les settings du navigateur externe dans les préférences ?</translation>
+ </message>
+ <message>
+ <source>ABOUT_COPYRIGHT</source>
+ <translation>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</translation>
+ </message>
+ <message>
+ <source>ABOUT_CAPTION</source>
+ <translation>A propos de %1</translation>
+ </message>
+ <message>
+ <source>ABOUT_BASE</source>
+ <translation>Informations générales</translation>
+ </message>
+ <message>
+ <source>ABOUT_MODULE_INFOS</source>
+ <translation>Modules</translation>
+ </message>
+ <message>
+ <source>ABOUT_UNKNOWN_VERSION</source>
+ <translation>Inconnue</translation>
+ </message>
+ <message>
+ <source>ABOUT_CLOSE</source>
+ <translation>&Fermer</translation>
+ </message>
+ <message>
+ <source>APP_NAME</source>
+ <translation>SHAPER</translation>
+ </message>
+ <message>
+ <source>ABOUT_LICENSE</source>
+ <translation>GNU LGPL</translation>
+ </message>
+ <message>
+ <source>ABOUT_VERSION</source>
+ <translation>Version %1</translation>
+ </message>
+ <message>
+ <source>SALOME_SITE</source>
+ <translation type="unfinished">SALOME Website</translation>
+ </message>
+ <message>
+ <source>SALOME_FORUM</source>
+ <translation type="unfinished">SALOME Forum</translation>
+ </message>
+ <message>
+ <source>SALOME_VIDEO_TUTORIALS</source>
+ <translation type="unfinished">Video Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_VIDEO_TUTORIALS</source>
+ <translation type="unfinished">Visit YouTube channel with some videos</translation>
+ </message>
+ <message>
+ <source>SALOME_TUTORIALS</source>
+ <translation type="unfinished">Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_TUTORIALS</source>
+ <translation type="unfinished">Try tutorials from SALOME site</translation>
+ </message>
+ <message>
+ <source>ENTRY_COLUMN</source>
+ <translation>Entrée</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CAPTION</source>
+ <translation>Fermer l'étude actuelle</translation>
+ </message>
+ <message>
+ <source>STUDYCLOSE_DESCRIPTION</source>
+ <translation>Une étude a des modifications non enregistrées. Voulez-vous les sauvegarder avant de fermer?</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_SAVE</source>
+ <translation>&Oui</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CLOSE</source>
+ <translation>&Non</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CANCEL</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>WRN_PYTHON_FILE_NAME_BAD</source>
+ <translation>Indiquez un nom de fichier correct.
+Un fichier Python ne doit être composé que de lettres, chiffres et tirets bas et doit commencer avec une lettre ou un tiret bas.</translation>
+ </message>
+ <message>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>Fichiers Python (*.py)</translation>
+ </message>
+ <message>
+ <source>LOG_FILES_FILTER</source>
+ <translation>Fichiers de trace (*.log *.txt)</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Application</name>
+ <message>
+ <source>LANG_CHANGED</source>
+ <translation>La langue de l'application a été modifiée.
+Les modifications seront appliquées à la prochaine session.</translation>
+ </message>
+ <message>
+ <source>LOCALE_CHANGED</source>
+ <translation>La locale de l'application a été modifiée.
+Les modifications seront appliquées à la prochaine session.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_THEME</source>
+ <translation>T&hème</translation>
+ </message>
+ <message>
+ <source>TOT_THEME</source>
+ <translation>Thème</translation>
+ </message>
+ <message>
+ <source>PRP_THEME</source>
+ <translation>Changer les propriétés du style </translation>
+ </message>
+ <message>
+ <source>TOT_FULLSCREEN</source>
+ <translation>Plein écran</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FULLSCREEN</source>
+ <translation>Plein écran</translation>
+ </message>
+ <message>
+ <source>PRP_FULLSCREEN</source>
+ <translation>Basculer en mode plein écran</translation>
+ </message>
+ <message>
+ <source>INF_TOOLBAR_MODULES</source>
+ <translation>Modules</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_LEGEND</source>
+ <translation>Montrer la légende</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_RENAME</source>
+ <translation>&Renommer</translation>
+ </message>
+ <message>
+ <source>PREF_MULTI_FILE</source>
+ <translation>Sauvegarde multi-fichiers</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PREFERENCES</source>
+ <translation>&Préférences...</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SHOW</source>
+ <translation>Afficher le trièdre</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON</source>
+ <translation>Trièdre</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SIZE</source>
+ <translation>Taille</translation>
+ </message>
+ <message>
+ <source>OBJECT_BROWSER</source>
+ <translation>Arbre d'étude</translation>
+ </message>
+ <message>
+ <source>INFO_PANEL</source>
+ <translation type="unfinished">Help panel</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PREFERENCES</source>
+ <translation>Permettre de changer les préférences</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DIRECTORIES</source>
+ <translation>Liste des répertoires</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VTKVIEWER</source>
+ <translation>Scène VTK 3D</translation>
+ </message>
+ <message>
+ <source>PREF_LOAD_LIGHT</source>
+ <translation>Chargement automatique des modules Light à l'ouverture d'étude</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_POS</source>
+ <translation>Enregistrer la position des fenêtres</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_TOOL_POS</source>
+ <translation>Enregistrer la positions des barres d'outils</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE</source>
+ <translation>Intervalle d'enregistrement automatique (min)</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE_DISABLED</source>
+ <translation>Désactivé</translation>
+ </message>
+ <message>
+ <source>PREF_PROJECTION_MODE</source>
+ <translation>Mode de projection:</translation>
+ </message>
+ <message>
+ <source>PREF_ORTHOGRAPHIC</source>
+ <translation>Orthogonal</translation>
+ </message>
+ <message>
+ <source>PREF_PERSPECTIVE</source>
+ <translation>Perspective</translation>
+ </message>
+ <message>
+ <source>PREF_POLYGON_SELECTION</source>
+ <translation>Polygon</translation>
+ </message>
+ <message>
+ <source>PREF_CIRCLE_SELECTION</source>
+ <translation>Circle</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTION_STYLE</source>
+ <translation>Advanced selection</translation>
+ </message>
+ <message>
+ <source>PREF_NAVIGATION</source>
+ <translation>Navigation:</translation>
+ </message>
+ <message>
+ <source>PREF_STANDARD_STYLE</source>
+ <translation>Style de contrôles type Salomé</translation>
+ </message>
+ <message>
+ <source>PREF_KEYFREE_STYLE</source>
+ <translation>Style sans clavier</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING</source>
+ <translation>Mode de zoom:</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CENTER</source>
+ <translation>Relatif au centre de la scène</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CURSOR</source>
+ <translation>Relatif au curseur</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED</source>
+ <translation>Incrément de vitesse:</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED_MODE</source>
+ <translation>Mode de modification:</translation>
+ </message>
+ <message>
+ <source>PREF_ARITHMETIC</source>
+ <translation>Progression arithmétique</translation>
+ </message>
+ <message>
+ <source>PREF_GEOMETRICAL</source>
+ <translation>Progression géométrique</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_SPACEMOUSE</source>
+ <translation>Spacemouse</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_STATIC_TRIHEDRON</source>
+ <translation>Montrer le trièdre statique</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_1</source>
+ <translation>Réduire l'incrément de vitesse</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_2</source>
+ <translation>Augmenter l'incrément de vitesse</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_3</source>
+ <translation>Changement Dominant/Combiné</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_1</source>
+ <translation>Bouton 1</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_2</source>
+ <translation>Bouton 2</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_3</source>
+ <translation>Bouton 3</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_4</source>
+ <translation>Bouton 4</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_5</source>
+ <translation>Bouton 5</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_6</source>
+ <translation>Bouton 6</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_7</source>
+ <translation>Bouton 7</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_8</source>
+ <translation>Bouton 8</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_*</source>
+ <translation>Bouton *</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_10</source>
+ <translation>Bouton 10</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_11</source>
+ <translation>Bouton 11</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_RECORDING</source>
+ <translation>Enregistrement AVI</translation>
+ </message>
+ <message>
+ <source>PREF_ALL_DISLPAYED_FRAMES</source>
+ <translation>Enregistrer toutes les images affichées</translation>
+ </message>
+ <message>
+ <source>PREF_FPS</source>
+ <translation>FPS</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_TTL</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PREF_PROGRESSIVE</source>
+ <translation>Progressif</translation>
+ </message>
+ <message>
+ <source>PREF_QUALITY</source>
+ <translation>Qualité</translation>
+ </message>
+ <message>
+ <source>PREF_RECORDING_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PREF_SKIPPED_FRAMES</source>
+ <translation>Enregistrer à FPS donné</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_GROUP_NAMES</source>
+ <translation>Nom des groupes</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TEXT_COLOR</source>
+ <translation>Couleur du texte</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TRANSPARENCY</source>
+ <translation>Transparence</translation>
+ </message>
+ <message>
+ <source>PREF_BOTTOM</source>
+ <translation>Dessous</translation>
+ </message>
+ <message>
+ <source>PREF_CURVE_TYPE</source>
+ <translation>Type de courbe:</translation>
+ </message>
+ <message>
+ <source>PREF_POINTS</source>
+ <translation>Points</translation>
+ </message>
+ <message>
+ <source>PRP_MODULE</source>
+ <translation>Basculer vers le module "%1"</translation>
+ </message>
+ <message>
+ <source>PREF_ASCII_FILE</source>
+ <translation>Enregistrement ASCII</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_LOADED</source>
+ <translation>Les préférences du module "<b>%N</b>" seront accessibles quand le module sera chargé</translation>
+ </message>
+ <message>
+ <source>PREF_LINEAR</source>
+ <translation>Linéaire</translation>
+ </message>
+ <message>
+ <source>DATA_MODELS</source>
+ <translation>Modèles de données</translation>
+ </message>
+ <message>
+ <source>PRP_RENAME</source>
+ <translation>Renommer la fenêtre active</translation>
+ </message>
+ <message>
+ <source>TOT_RENAME</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_OBJ</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>LOG_WINDOW</source>
+ <translation>Fenêtre de messages</translation>
+ </message>
+ <message>
+ <source>PREF_SPLINE</source>
+ <translation>Spline</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SEARCH_TOOL</source>
+ <translation>Outil de recherche</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_HIDE_SEARCH_TOOL</source>
+ <translation>Cacher automatiquement</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Paramètres de l'arbre d'étude</translation>
+ </message>
+ <message>
+ <source>PRP_APP_MODULE</source>
+ <translation>Basculer au point neutre de la plate-forme SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_CONSOLE</source>
+ <translation>Propriétés de la console Python</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_BANNER</source>
+ <translation>Afficher la bannière</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_COMPLETION</source>
+ <translation>Auto-completion</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STYLE</source>
+ <translation>Style Salomé</translation>
+ </message>
+ <message>
+ <source>PREF_USE_SALOME_STYLE</source>
+ <translation>Utiliser le style Salomé</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_SIZE</source>
+ <translation>Taille de repère:</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_VIEWERS</source>
+ <translation>Scènes</translation>
+ </message>
+ <message>
+ <source>PREF_APP</source>
+ <translation>Application</translation>
+ </message>
+ <message>
+ <source>PREF_TOP</source>
+ <translation>Dessus</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>Rafraîchir</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE_FIRST</source>
+ <translation>Taille automatique pour la colonne "Nom"</translation>
+ </message>
+ <message>
+ <source>PREF_RESIZE_ON_EXPAND_ITEM</source>
+ <translation>Redimensionner les colonnes quand l'objet est déplié</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_TO_THE_PUBLISHED_OBJECT</source>
+ <translation>Se déplacer sur l'objet publié</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_NEVER</source>
+ <translation>Jamais</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_AFTER_APPLY_AND_CLOSE_ONLY</source>
+ <translation>Seulement après "Appliquer et Fermer"</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_ALWAYS</source>
+ <translation>Toujours</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Arbre d'étude</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_GENERAL</source>
+ <translation>Général</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_0</source>
+ <translation>Scène &GL </translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_1</source>
+ <translation>Scène &Plot2d </translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_2</source>
+ <translation>Scène &OCC</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_3</source>
+ <translation>Scène VT&K</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_4</source>
+ <translation>Scène Qx&Scene</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_5</source>
+ <translation>Scène G&raphiques</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_6</source>
+ <translation>Scène ParaVie&w</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_7</source>
+ <translation>Vue P&ython</translation>
+ </message>
+ <message>
+ <source>CREATING_NEW_WINDOW</source>
+ <translation>Créer une nouvelle %1</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Objet</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_POSITION</source>
+ <translation>Position de la Légende:</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE_SIZE</source>
+ <translation>Relative</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND</source>
+ <translation>Arrière-plan</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND_COLOR</source>
+ <translation>Couleur de l'arrière-plan</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_SELECTION</source>
+ <translation>Couleur de sélection</translation>
+ </message>
+ <message>
+ <source>PREF_XYVIEWER_BACKGROUND</source>
+ <translation>Vue XY</translation>
+ </message>
+ <message>
+ <source>PREF_XZVIEWER_BACKGROUND</source>
+ <translation>Vue XZ</translation>
+ </message>
+ <message>
+ <source>PREF_YZVIEWER_BACKGROUND</source>
+ <translation>Vue YZ</translation>
+ </message>
+ <message>
+ <source>PREF_3DVIEWER_BACKGROUND</source>
+ <translation>Vue 3D</translation>
+ </message>
+ <message>
+ <source>PREF_FONT</source>
+ <translation>Police</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_FONT</source>
+ <translation>Police de la légende</translation>
+ </message>
+ <message>
+ <source>PREF_FONT_COLOR</source>
+ <translation>Couleur de police de la légende</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTED_FONT_COLOR</source>
+ <translation>Couleur de surlignement de la légende</translation>
+ </message>
+ <message>
+ <source>PREF_LEFT</source>
+ <translation>Gauche</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_DIRECTORIES</source>
+ <translation>Emplacements</translation>
+ </message>
+ <message>
+ <source>ACTIVATING_MODULE</source>
+ <translation>Activation du module "%1" en cours</translation>
+ </message>
+ <message>
+ <source>PREF_VERT_AXIS_SCALE</source>
+ <translation>Echelle de l'axe vertical :</translation>
+ </message>
+ <message>
+ <source>PREF_HOR_AXIS_SCALE</source>
+ <translation>Echelle de l'axe horizontal :</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LANGUAGE</source>
+ <translation>Langue</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LANGUAGE</source>
+ <translation>Langue actuelle</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LOCALE</source>
+ <translation>Utiliser la locale "C"</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LOOK_AND_FEEL</source>
+ <translation>Aspect</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_SPLASH</source>
+ <translation>Afficher l'écran de démarrage</translation>
+ </message>
+ <message>
+ <source>PREF_OPAQUE_RESIZE</source>
+ <translation>Redimensionnement opaque</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STUDY</source>
+ <translation>Propiétés de l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_DROP_DOWN_BUTTONS</source>
+ <translation>Boutons alignés dans la barre</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT</source>
+ <translation type="unfinished">Notifications auto-hide timeout</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT_NONE</source>
+ <translation type="unfinished">None</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_COMMON</source>
+ <translation>Commun</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_3DVIEWER</source>
+ <translation>Scène 3D</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_OCCVIEWER</source>
+ <translation>Scène OCC 3D</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STEREO</source>
+ <translation>Rendu stéréo</translation>
+ </message>
+ <message>
+ <source>PREF_STEREO_TYPE</source>
+ <translation>Type de rendu stéréo</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_FILTER</source>
+ <translation>Filtre anaglyphique</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_RED_CYAN</source>
+ <translation>Rouge-Cyan</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_YELLOW_BLUE</source>
+ <translation>Jaune-Bleu</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_GREEN_MAGENTA</source>
+ <translation>Vert-Magenta</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_TYPE</source>
+ <translation>Type de la distance de convergence</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_VALUE</source>
+ <translation>Valeur de la focalisation stéréographique</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_TYPE</source>
+ <translation>Type de distance intraoculaire</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_VALUE</source>
+ <translation>Valeur de la distance intraoculaire</translation>
+ </message>
+ <message>
+ <source>PREF_ABSOLUTE</source>
+ <translation>Absolu</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE</source>
+ <translation>Relatif</translation>
+ </message>
+ <message>
+ <source>PREF_REVERSE_STEREO</source>
+ <translation>Stéréo inversée</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_VSYNC</source>
+ <translation>Activer la synchronisation verticale</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_QUAD_BUFFER_SUPPORT</source>
+ <translation>Activer le support du quad-buffer</translation>
+ </message>
+ <message>
+ <source>PREF_LOGARITHMIC</source>
+ <translation>Logarithmique</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MODULE_HELP</source>
+ <translation>Module &Aide</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_TITLE_COLOR</source>
+ <translation>Couleur de titre</translation>
+ </message>
+ <message>
+ <source>PREF_PARAM</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PREF_RIGHT</source>
+ <translation>Droite</translation>
+ </message>
+ <message>
+ <source>PREF_LINES</source>
+ <translation>Lignes</translation>
+ </message>
+ <message>
+ <source>INF_CANCELLED</source>
+ <translation>L'activation du module est annulée</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_EXT_BROWSER</source>
+ <translation>Navigateur externe</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_CTRL_COLOR</source>
+ <translation>Couleur de contrôle</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Colonnnes par défaut </translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PLOT2DVIEWER</source>
+ <translation>Scène Plot2d</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VIEWER</source>
+ <translation>Scène</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LEGEND</source>
+ <translation>Légende</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_SYMBOL_TYPE</source>
+ <translation>Type de symbole:</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ABOVE_LINE</source>
+ <translation>Marqueur dessus de la ligne</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ON_LINE</source>
+ <translation>Marqueur sur la ligne</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_COLOR</source>
+ <translation>Couleur des marqueurs de déviation</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_LW</source>
+ <translation>Epaisseur des lignes des marqueurs de déviation</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_TS</source>
+ <translation>Taille des coches des marqueurs de déviation</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>&Récemment utilisés</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PREFERENCES</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>DEFINE_EXTERNAL_BROWSER</source>
+ <translation>Le navigateur externe n'est pas trouvé. Voulez-vous le définir dans les préférences?</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE</source>
+ <translation>Taille automatique pour les autres colonnes</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Récemment utilisés</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_NEW</source>
+ <translation>&Nouveau</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_OPEN</source>
+ <translation>&Ouvrir...</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Console Python</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SELECTION</source>
+ <translation>Sélection</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_SELECTION</source>
+ <translation>Activer sélection</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_PRESELECTION</source>
+ <translation>Activer pré-sélection</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION</source>
+ <translation>Pré-sélection</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_STANDARD</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DYNAMIC</source>
+ <translation>Dynamique</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DISABLED</source>
+ <translation>Désactivée</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_CLIPPING</source>
+ <translation>Plan de coupe</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_COLOR</source>
+ <translation>Couleur</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_DEFAULT_TEXTURE</source>
+ <translation>Utiliser la texture par défaut</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_TEXTURE</source>
+ <translation>Texture</translation>
+ </message>
+ <message>
+ <source>OCC_TEXTURE_FILES</source>
+ <translation>Fichiers images (*.jpeg *.jpg *.jpe *.png *.bmp *.gif *.ppm *.tif *.tiff* .tga *.exr)</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_MODULATE</source>
+ <translation>Fond transparent</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_SCALE</source>
+ <translation>Facteur d'échelle</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_RAY_TRACING</source>
+ <translation>Ray tracing</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_DEPTH</source>
+ <translation>Profondeur</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_REFLECTION</source>
+ <translation>Réflexions spéculaires</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_ANTIALIASING</source>
+ <translation>Anti-aliasing adaptatif</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_SHADOW</source>
+ <translation>Rendu des ombres</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_TRANS_SHADOW</source>
+ <translation>Ombres transparentes</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LIGHT</source>
+ <translation>Source de lumière</translation>
+ </message>
+ <message>
+ <source>PREF_LIGHT_COLOR</source>
+ <translation>Couleurr</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE</source>
+ <translation>&Fermer</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE</source>
+ <translation>Fermer la fenêtre active</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE_ALL</source>
+ <translation>Tout fermer</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE_ALL</source>
+ <translation>&Tout fermer</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE_ALL</source>
+ <translation>Fermer toutes les fenêtres</translation>
+ </message>
+ <message>
+ <source>TOT_GROUP_ALL</source>
+ <translation>Tout grouper</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_GROUP_ALL</source>
+ <translation>Tout &grouper</translation>
+ </message>
+ <message>
+ <source>PRP_GROUP_ALL</source>
+ <translation>Grouper toutes les fenêtres</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_NOT_EXISTS</source>
+ <translation>Impossible d'ouvrir %1.
+Le fichier n'existe pas</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_MRU</source>
+ <translation>Montrer les études récemment utilisées</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_VISIBLE_COUNT</source>
+ <translation>Nombre d'études</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_INSERT_MODE</source>
+ <translation>Mode d'insertion</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_FIRST</source>
+ <translation>Placer au début</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_LAST</source>
+ <translation>Placer à la fin</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_FIRST</source>
+ <translation>Ajouter au début</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_LAST</source>
+ <translation>Ajouter à la fin</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_TYPE</source>
+ <translation>Type de lien</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_AUTO</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_SHORT</source>
+ <translation>Court</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_FULL</source>
+ <translation>Complet</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_SUPPORTED</source>
+ <translation>Les préférences du module "%1" ne sont pas supportées</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_SHORTCUTS</source>
+ <translation>Raccourcis clavier</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SHORTCUTS</source>
+ <translation>Réglage des raccourcis clavier</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_FULL_SCREEN</source>
+ <translation>Plein écran</translation>
+ </message>
+ <message>
+ <source>PREF_FULL_SCREEN_AUTO</source>
+ <translation>Cacher l'arbre d'étude and les barres d'outils des vues</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_PYEDITOR</source>
+ <translation>Editeur python</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_FONT</source>
+ <translation>Paramètres de la fonte</translation>
+ </message>
+ <message>
+ <source>PREF_PY_FONT</source>
+ <translation>Fonte</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_DISPLAY</source>
+ <translation>Paramètres d'affichage</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURRLINE_HIGHLIGHT</source>
+ <translation>Met en surbrillance de la ligne actuelle</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TEXT_WRAP</source>
+ <translation>Retour à la ligne dynamique</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURSON_ON_SCROLL</source>
+ <translation>Centre le curseur lors du scroll</translation>
+ </message>
+ <message>
+ <source>PREF_PY_LINE_NUMBS_AREA</source>
+ <translation>Affiche les numéros de ligne</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_EDITOR</source>
+ <translation>Paramètres de l'éditeur</translation>
+ </message>
+ <message>
+ <source>PREF_PY_COMPLETION_MODE</source>
+ <translation>Mode de complétion</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NONE</source>
+ <translation>Aucun</translation>
+ </message>
+ <message>
+ <source>PREF_PY_AUTO</source>
+ <translation>Auto</translation>
+ </message>
+ <message>
+ <source>PREF_PY_MANUAL</source>
+ <translation>Manuel</translation>
+ </message>
+ <message>
+ <source>PREF_PY_ALWAYS</source>
+ <translation>Toujours</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_TAB</source>
+ <translation>Indentation</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_WHITESPACES</source>
+ <translation>Affiche les guides d'indentation</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_SIZE</source>
+ <translation>Largeur d'intentation:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VERT_EDGE</source>
+ <translation>Marqueur de retour à la ligne</translation>
+ </message>
+ <message>
+ <source>PREF_PY_VERT_EDGE</source>
+ <translation>Afficher la ligne verticale</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NUM_COLUMNS</source>
+ <translation>Nombre de colonnes:</translation>
+ </message>
+ <message>
+ <source>INFO_WELCOME_TO_SALOME</source>
+ <translation type="unfinished">Welcome to SALOME</translation>
+ </message>
+ <message>
+ <source>INFO_GETTING_STARTED</source>
+ <translation type="unfinished">Getting started</translation>
+ </message>
+ <message>
+ <source>INFO_AVAILABLE_MODULES</source>
+ <translation type="unfinished">Available modules</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_Module</name>
+ <message>
+ <source>MEN_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>TOP_DISPLAY_ONLY</source>
+ <translation>Afficher uniquement</translation>
+ </message>
+ <message>
+ <source>STB_DISPLAY_ONLY</source>
+ <translation>Afficher uniquement</translation>
+ </message>
+ <message>
+ <source>MEN_DISPLAY_ONLY</source>
+ <translation>Afficher uniquement</translation>
+ </message>
+ <message>
+ <source>TOP_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>MEN_ERASE_ALL</source>
+ <translation>Tout cacher</translation>
+ </message>
+ <message>
+ <source>STB_HIDE</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>STB_SHOW</source>
+ <translation>Afficher</translation>
+ </message>
+ <message>
+ <source>TOP_SHOW</source>
+ <translation>Afficher</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW</source>
+ <translation>Afficher</translation>
+ </message>
+ <message>
+ <source>STB_ERASE_ALL</source>
+ <translation>Tout cacher</translation>
+ </message>
+ <message>
+ <source>TOP_ERASE_ALL</source>
+ <translation>Tout cacher</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_ModuleDlg</name>
+ <message>
+ <source>DESCRIPTION</source>
+ <translation>Vous activez le module
+ <b>%1</b>.<br>Choisissez l'action nécessaire avec le bouton correspondant ci-dessous</translation>
+ </message>
+ <message>
+ <source>CANCEL</source>
+ <translation>&Annuler</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Activer le module</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_NameDlg</name>
+ <message>
+ <source>TLT_RENAME</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>NAME_LBL</source>
+ <translation>Nom: </translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_PreferencesDlg</name>
+ <message>
+ <source>IMPORT_PREFERENCES</source>
+ <translation>Importer les préférences</translation>
+ </message>
+ <message>
+ <source>XML_FILES_FILTER</source>
+ <translation>Fichiers XML (*.xml)</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>WARNING</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
+ <source>IMPORT_BTN_TEXT</source>
+ <translation>Importer</translation>
+ </message>
+ <message>
+ <source>DEFAULT_QUESTION</source>
+ <translation>Voulez-vous restaurer les préférences par défaut ?</translation>
+ </message>
+ <message>
+ <source>DEFAULT_BTN_TEXT</source>
+ <translation>Défauts</translation>
+ </message>
+ <message>
+ <source>PREF_NEED_RESTART</source>
+ <translation>Des changements prendront effets seulement après un redémarrage de l'application</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_ModuleAction</name>
+ <message>
+ <source>ACTIVATE_MODULE_TOP</source>
+ <translation>Activer/désactiver le module %1</translation>
+ </message>
+</context>
+<context>
+ <name>LightApp_PyEditor</name>
+ <message>
+ <source>TOT_DUMP_PYCOMMANDS</source>
+ <translation>&Générer le script des commandes</translation>
+ </message>
+ <message>
+ <source>TOT_SAVE_PYLOG</source>
+ <translation>Sauver la trace</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja" sourcelanguage="en">
+ <context>
+ <name>@default</name>
+ <message>
+ <source>EXTERNAL_BROWSER_CANNOT_SHOW_PAGE</source>
+ <translation>拡張ブラウザ "%1" はヘルプページ "%2"は見ることができない。設定を変更しますか?</translation>
+ </message>
+ <message>
+ <source>ABOUT_COPYRIGHT</source>
+ <translation>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</translation>
+ </message>
+ <message>
+ <source>ABOUT_CAPTION</source>
+ <translation>%1について</translation>
+ </message>
+ <message>
+ <source>ABOUT_BASE</source>
+ <translation>一般的な情報</translation>
+ </message>
+ <message>
+ <source>ABOUT_MODULE_INFOS</source>
+ <translation>モジュール情報</translation>
+ </message>
+ <message>
+ <source>ABOUT_UNKNOWN_VERSION</source>
+ <translation>不明</translation>
+ </message>
+ <message>
+ <source>ABOUT_CLOSE</source>
+ <translation>閉じる(&C)</translation>
+ </message>
+ <message>
+ <source>APP_NAME</source>
+ <translation>SHAPER</translation>
+ </message>
+ <message>
+ <source>ABOUT_LICENSE</source>
+ <translation>GNU LGPL</translation>
+ </message>
+ <message>
+ <source>ABOUT_VERSION</source>
+ <translation>Version %1</translation>
+ </message>
+ <message>
+ <source>SALOME_SITE</source>
+ <translation type="unfinished">SALOME Website</translation>
+ </message>
+ <message>
+ <source>SALOME_FORUM</source>
+ <translation type="unfinished">SALOME Forum</translation>
+ </message>
+ <message>
+ <source>SALOME_VIDEO_TUTORIALS</source>
+ <translation type="unfinished">Video Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_VIDEO_TUTORIALS</source>
+ <translation type="unfinished">Visit YouTube channel with some videos</translation>
+ </message>
+ <message>
+ <source>SALOME_TUTORIALS</source>
+ <translation type="unfinished">Tutorials</translation>
+ </message>
+ <message>
+ <source>PRP_SALOME_TUTORIALS</source>
+ <translation type="unfinished">Try tutorials from SALOME site</translation>
+ </message>
+ <message>
+ <source>ENTRY_COLUMN</source>
+ <translation>エントリ</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CAPTION</source>
+ <translation>現在のスタディを閉じる</translation>
+ </message>
+ <message>
+ <source>STUDYCLOSE_DESCRIPTION</source>
+ <translation type="unfinished">The current study has unsaved changes. Would you like to save before closing it?</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_SAVE</source>
+ <translation>はい(&Y)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CLOSE</source>
+ <translation>いいえ(&N)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_CANCEL</source>
+ <translation>キャンセル(&C)</translation>
+ </message>
+ <message>
+ <source>WRN_PYTHON_FILE_NAME_BAD</source>
+ <translation>正確なファイル名を入力してください。
+Pythonファイルは、文字、数字、アンダースコアが含まれており、文字またはアンダースコアから開始する必要があります。</translation>
+ </message>
+ <message>
+ <source>PYTHON_FILES_FILTER</source>
+ <translation>ファイル (*.py) PYTHON</translation>
+ </message>
+ <message>
+ <source>LOG_FILES_FILTER</source>
+ <translation>ログファイル (*.log *.txt)</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_Application</name>
+ <message>
+ <source>LANG_CHANGED</source>
+ <translation>アプリケーションの言語が変更されました。<BR>変更は、次のセッションに適用されます。</translation>
+ </message>
+ <message>
+ <source>LOCALE_CHANGED</source>
+ <translation>アプリケーションの言語が変更されました。
+次回のセッションから有効になります。</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_THEME</source>
+ <translation>テーマ(&h)</translation>
+ </message>
+ <message>
+ <source>TOT_THEME</source>
+ <translation>テーマ</translation>
+ </message>
+ <message>
+ <source>PRP_THEME</source>
+ <translation>スタイルのプロパティを変更</translation>
+ </message>
+ <message>
+ <source>TOT_FULLSCREEN</source>
+ <translation>全画面表示</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FULLSCREEN</source>
+ <translation>全画面表示</translation>
+ </message>
+ <message>
+ <source>PRP_FULLSCREEN</source>
+ <translation>全画面表示モードに切り替え</translation>
+ </message>
+ <message>
+ <source>INF_TOOLBAR_MODULES</source>
+ <translation>モジュール情報</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_LEGEND</source>
+ <translation>凡例を表示</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_RENAME</source>
+ <translation>名前変更(&R)</translation>
+ </message>
+ <message>
+ <source>PREF_MULTI_FILE</source>
+ <translation>複数ファイルの保存</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PREFERENCES</source>
+ <translation>環境設定...(&f)</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SHOW</source>
+ <translation>三面体を表示</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON</source>
+ <translation>三面体</translation>
+ </message>
+ <message>
+ <source>PREF_TRIHEDRON_SIZE</source>
+ <translation>サイズ</translation>
+ </message>
+ <message>
+ <source>OBJECT_BROWSER</source>
+ <translation>オブジェクトブラウザー</translation>
+ </message>
+ <message>
+ <source>INFO_PANEL</source>
+ <translation type="unfinished">Help panel</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PREFERENCES</source>
+ <translation>設定を変更することができます。</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DIRECTORIES</source>
+ <translation>ディレクトリの一覧</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VTKVIEWER</source>
+ <translation>VTK 3D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_LOAD_LIGHT</source>
+ <translation>スタディを開くときにLightモジュールを自動読み込みする</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_POS</source>
+ <translation>ウィンドウの位置を保存</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_TOOL_POS</source>
+ <translation>ツールバーの位置を保存します。</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE</source>
+ <translation>自動保存間隔 (分)</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SAVE_DISABLED</source>
+ <translation>無効</translation>
+ </message>
+ <message>
+ <source>PREF_PROJECTION_MODE</source>
+ <translation>投影モード:</translation>
+ </message>
+ <message>
+ <source>PREF_ORTHOGRAPHIC</source>
+ <translation>直交</translation>
+ </message>
+ <message>
+ <source>PREF_PERSPECTIVE</source>
+ <translation>遠近法</translation>
+ </message>
+ <message>
+ <source>PREF_POLYGON_SELECTION</source>
+ <translation>Polygon</translation>
+ </message>
+ <message>
+ <source>PREF_CIRCLE_SELECTION</source>
+ <translation>Circle</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTION_STYLE</source>
+ <translation>Advanced selection</translation>
+ </message>
+ <message>
+ <source>PREF_NAVIGATION</source>
+ <translation>ナビゲーション スタイル</translation>
+ </message>
+ <message>
+ <source>PREF_STANDARD_STYLE</source>
+ <translation>Salome標準コントロール</translation>
+ </message>
+ <message>
+ <source>PREF_KEYFREE_STYLE</source>
+ <translation>キーボードなしのスタイル</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING</source>
+ <translation>ズーム モード:</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CENTER</source>
+ <translation>ビューの中心を基準</translation>
+ </message>
+ <message>
+ <source>PREF_ZOOMING_AT_CURSOR</source>
+ <translation>カーソルを中心に</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED</source>
+ <translation>速度の増加:</translation>
+ </message>
+ <message>
+ <source>PREF_INCREMENTAL_SPEED_MODE</source>
+ <translation>編集モード:</translation>
+ </message>
+ <message>
+ <source>PREF_ARITHMETIC</source>
+ <translation>Arithmetic progression</translation>
+ </message>
+ <message>
+ <source>PREF_GEOMETRICAL</source>
+ <translation>幾何学的進行</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_SPACEMOUSE</source>
+ <translation>Spacemouse</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_STATIC_TRIHEDRON</source>
+ <translation>静的三面体をを表示</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_1</source>
+ <translation>速度低減</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_2</source>
+ <translation>速度増加</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_FUNC_3</source>
+ <translation>Dominant / combined スイッチ</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_1</source>
+ <translation>ボタン 1</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_2</source>
+ <translation>ボタン 2</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_3</source>
+ <translation>ボタン 3</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_4</source>
+ <translation>ボタン 4</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_5</source>
+ <translation>ボタン 5</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_6</source>
+ <translation>ボタン 6</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_7</source>
+ <translation>ボタン 7</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_8</source>
+ <translation>ボタン 8</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_*</source>
+ <translation>ボタン *</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_10</source>
+ <translation>ボタン 10</translation>
+ </message>
+ <message>
+ <source>PREF_SPACEMOUSE_BTN_11</source>
+ <translation>ボタン 11</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_RECORDING</source>
+ <translation>AVIで記録</translation>
+ </message>
+ <message>
+ <source>PREF_ALL_DISLPAYED_FRAMES</source>
+ <translation>表示されるすべてのフレームを保存</translation>
+ </message>
+ <message>
+ <source>PREF_FPS</source>
+ <translation>FPS</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_TTL</source>
+ <translation>パラメーター</translation>
+ </message>
+ <message>
+ <source>PREF_PROGRESSIVE</source>
+ <translation>プログレッシブ</translation>
+ </message>
+ <message>
+ <source>PREF_QUALITY</source>
+ <translation>品質</translation>
+ </message>
+ <message>
+ <source>PREF_RECORDING_MODE</source>
+ <translation>モード</translation>
+ </message>
+ <message>
+ <source>PREF_SKIPPED_FRAMES</source>
+ <translation>与えられたFPSに記録しています</translation>
+ </message>
+ <message>
+ <source>PREF_FRAME_GROUP_NAMES</source>
+ <translation>グループの名前</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TEXT_COLOR</source>
+ <translation>テキストの色</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_NAMES_TRANSPARENCY</source>
+ <translation>透明度</translation>
+ </message>
+ <message>
+ <source>PREF_BOTTOM</source>
+ <translation>Bottom</translation>
+ </message>
+ <message>
+ <source>PREF_CURVE_TYPE</source>
+ <translation>曲線の種類:</translation>
+ </message>
+ <message>
+ <source>PREF_POINTS</source>
+ <translation>ポイント</translation>
+ </message>
+ <message>
+ <source>PRP_MODULE</source>
+ <translation>モジュール”%1”に切り替え</translation>
+ </message>
+ <message>
+ <source>PREF_ASCII_FILE</source>
+ <translation>ASCIIでの保存</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_LOADED</source>
+ <translation>“<b>%N</b>”モジュールの環境設定は、そのモジュールをロードしているときだけです。</translation>
+ </message>
+ <message>
+ <source>PREF_LINEAR</source>
+ <translation>線形</translation>
+ </message>
+ <message>
+ <source>DATA_MODELS</source>
+ <translation>データ モデル</translation>
+ </message>
+ <message>
+ <source>PRP_RENAME</source>
+ <translation>アクティブなウィンドウの名前を変更</translation>
+ </message>
+ <message>
+ <source>TOT_RENAME</source>
+ <translation>名前変更</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_OBJ</source>
+ <translation>名前変更</translation>
+ </message>
+ <message>
+ <source>LOG_WINDOW</source>
+ <translation>メッセージウィンドウ</translation>
+ </message>
+ <message>
+ <source>PREF_SPLINE</source>
+ <translation>スプライン</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SEARCH_TOOL</source>
+ <translation>検索ツール</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_HIDE_SEARCH_TOOL</source>
+ <translation>自動非表示の有効化</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>オブジェクトブラウザーの設定</translation>
+ </message>
+ <message>
+ <source>PRP_APP_MODULE</source>
+ <translation>Salomeプラットフォームの中立ポイントにスイッチ</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_CONSOLE</source>
+ <translation>Python コンソールのプロパティ</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_BANNER</source>
+ <translation>バナーの表示</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_COMPLETION</source>
+ <translation>コマンドオートコンプリート</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STYLE</source>
+ <translation>Salomeスタイル</translation>
+ </message>
+ <message>
+ <source>PREF_USE_SALOME_STYLE</source>
+ <translation>Salomeスタイルを使用</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_SIZE</source>
+ <translation>マーカーのサイズ:</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_VIEWERS</source>
+ <translation>シーン</translation>
+ </message>
+ <message>
+ <source>PREF_APP</source>
+ <translation>アプリケーション</translation>
+ </message>
+ <message>
+ <source>PREF_TOP</source>
+ <translation>トップ</translation>
+ </message>
+ <message>
+ <source>MEN_REFRESH</source>
+ <translation>更新</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE_FIRST</source>
+ <translation>[名前] 列の自動サイズ</translation>
+ </message>
+ <message>
+ <source>PREF_RESIZE_ON_EXPAND_ITEM</source>
+ <translation>オブジェクトを開いたときの列のサイズを変更</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_TO_THE_PUBLISHED_OBJECT</source>
+ <translation>公開オブジェクトをブラウズ</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_NEVER</source>
+ <translation>なし</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_AFTER_APPLY_AND_CLOSE_ONLY</source>
+ <translation>適用して閉じるをした後のみ</translation>
+ </message>
+ <message>
+ <source>PREF_BROWSE_ALWAYS</source>
+ <translation>適用毎に</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>オブジェクトブラウザー</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_GENERAL</source>
+ <translation>一般的な</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_0</source>
+ <translation>GL 2D view(&G)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_1</source>
+ <translation>Plot 2D View(&P)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_2</source>
+ <translation>OCC 3D View(&O)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_3</source>
+ <translation>VTK 3D View(&K)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_4</source>
+ <translation>シーン QxScene(&S)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_5</source>
+ <translation>グラフィックの表示 (&r)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_6</source>
+ <translation>ParaView 表示 (&w)</translation>
+ </message>
+ <message>
+ <source>NEW_WINDOW_7</source>
+ <translation>P&ython view</translation>
+ </message>
+ <message>
+ <source>CREATING_NEW_WINDOW</source>
+ <translation>新しい %1 を作成します。</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>オブジェクト</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_POSITION</source>
+ <translation>凡例の位置:</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE_SIZE</source>
+ <translation>相対</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND</source>
+ <translation>背景</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_BACKGROUND_COLOR</source>
+ <translation>背景色</translation>
+ </message>
+ <message>
+ <source>PREF_VIEWER_SELECTION</source>
+ <translation>選択色</translation>
+ </message>
+ <message>
+ <source>PREF_XYVIEWER_BACKGROUND</source>
+ <translation>XY 表示</translation>
+ </message>
+ <message>
+ <source>PREF_XZVIEWER_BACKGROUND</source>
+ <translation>XZ ビュー</translation>
+ </message>
+ <message>
+ <source>PREF_YZVIEWER_BACKGROUND</source>
+ <translation>ビュー YZ</translation>
+ </message>
+ <message>
+ <source>PREF_3DVIEWER_BACKGROUND</source>
+ <translation>3D ビュー</translation>
+ </message>
+ <message>
+ <source>PREF_FONT</source>
+ <translation>フォント</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_FONT</source>
+ <translation>凡例のフォント</translation>
+ </message>
+ <message>
+ <source>PREF_FONT_COLOR</source>
+ <translation>凡例のフォントの色</translation>
+ </message>
+ <message>
+ <source>PREF_SELECTED_FONT_COLOR</source>
+ <translation>ハイライトした凡例の文字色</translation>
+ </message>
+ <message>
+ <source>PREF_LEFT</source>
+ <translation>左</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_DIRECTORIES</source>
+ <translation>ディレクトリー</translation>
+ </message>
+ <message>
+ <source>ACTIVATING_MODULE</source>
+ <translation>モジュール”%1”をアクティブにする</translation>
+ </message>
+ <message>
+ <source>PREF_VERT_AXIS_SCALE</source>
+ <translation>垂直軸のスケール:</translation>
+ </message>
+ <message>
+ <source>PREF_HOR_AXIS_SCALE</source>
+ <translation>水平方向の軸のスケール:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LANGUAGE</source>
+ <translation>言語</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LANGUAGE</source>
+ <translation>現在の言語</translation>
+ </message>
+ <message>
+ <source>PREF_CURRENT_LOCALE</source>
+ <translation>言語 "C" を使います</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LOOK_AND_FEEL</source>
+ <translation>外観</translation>
+ </message>
+ <message>
+ <source>PREF_SHOW_SPLASH</source>
+ <translation>スプラッシュ スクリーンを表示します。</translation>
+ </message>
+ <message>
+ <source>PREF_OPAQUE_RESIZE</source>
+ <translation>不透明のサイズ変更</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STUDY</source>
+ <translation>スタディのプロパティ</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PREF_DROP_DOWN_BUTTONS</source>
+ <translation>バーでのボタンの配置</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT</source>
+ <translation type="unfinished">Notifications auto-hide timeout</translation>
+ </message>
+ <message>
+ <source>PREF_NOTIFY_TIMEOUT_NONE</source>
+ <translation type="unfinished">None</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_COMMON</source>
+ <translation>共通</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_3DVIEWER</source>
+ <translation>3D シーン</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_OCCVIEWER</source>
+ <translation>OCC 3D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_STEREO</source>
+ <translation>ステレオレンダリング</translation>
+ </message>
+ <message>
+ <source>PREF_STEREO_TYPE</source>
+ <translation>ステレオタイプ</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_FILTER</source>
+ <translation>Anaglyph filter</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_RED_CYAN</source>
+ <translation>赤-シアン投影</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_YELLOW_BLUE</source>
+ <translation>黄-青投影</translation>
+ </message>
+ <message>
+ <source>PREF_ANAGLYPH_GREEN_MAGENTA</source>
+ <translation>緑-マゼンタ投影</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_TYPE</source>
+ <translation>一致距離型</translation>
+ </message>
+ <message>
+ <source>PREF_FOCUS_VALUE</source>
+ <translation>立体画法焦点値</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_TYPE</source>
+ <translation>眼間距離(IOD)型</translation>
+ </message>
+ <message>
+ <source>PREF_IOD_VALUE</source>
+ <translation>眼間距離(IOD)値</translation>
+ </message>
+ <message>
+ <source>PREF_ABSOLUTE</source>
+ <translation>絶対</translation>
+ </message>
+ <message>
+ <source>PREF_RELATIVE</source>
+ <translation>早退</translation>
+ </message>
+ <message>
+ <source>PREF_REVERSE_STEREO</source>
+ <translation>Reverse stereo</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_VSYNC</source>
+ <translation>V-Syncを有効</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_QUAD_BUFFER_SUPPORT</source>
+ <translation>quad-buffer サポートを有効</translation>
+ </message>
+ <message>
+ <source>PREF_LOGARITHMIC</source>
+ <translation>対数</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MODULE_HELP</source>
+ <translation>モジュールのヘルプ</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_TITLE_COLOR</source>
+ <translation>タイトルの色</translation>
+ </message>
+ <message>
+ <source>PREF_PARAM</source>
+ <translation>パラメーター</translation>
+ </message>
+ <message>
+ <source>PREF_RIGHT</source>
+ <translation>右</translation>
+ </message>
+ <message>
+ <source>PREF_LINES</source>
+ <translation>ライン</translation>
+ </message>
+ <message>
+ <source>INF_CANCELLED</source>
+ <translation>モジュールの有効化をキャンセル</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_EXT_BROWSER</source>
+ <translation>外部ブラウザー</translation>
+ </message>
+ <message>
+ <source>PREF_SUPERV_CTRL_COLOR</source>
+ <translation>コントロールの色</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>既定の列</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PLOT2DVIEWER</source>
+ <translation>Plot 2D Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VIEWER</source>
+ <translation>ビューワ</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LEGEND</source>
+ <translation>凡例</translation>
+ </message>
+ <message>
+ <source>PREF_LEGEND_SYMBOL_TYPE</source>
+ <translation>シンボルの型:</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ABOVE_LINE</source>
+ <translation>線の上のマーカー</translation>
+ </message>
+ <message>
+ <source>PREF_MARKER_ON_LINE</source>
+ <translation>線上のマーカー</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_COLOR</source>
+ <translation>偏差のマーカーの色</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_LW</source>
+ <translation>偏差のマーカーの線の太さ</translation>
+ </message>
+ <message>
+ <source>PREF_DEVIATION_MARKER_TS</source>
+ <translation>サイズ偏差マーカーのチェック マーク</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>最近使用したファイル</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PREFERENCES</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <source>DEFINE_EXTERNAL_BROWSER</source>
+ <translation>外部のブラウザーが見つかりません。環境設定で設定しますか。</translation>
+ </message>
+ <message>
+ <source>PREF_AUTO_SIZE</source>
+ <translation>他の列の自動サイズ</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>最近使用したファイル</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_NEW</source>
+ <translation>新規作成(&N)</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_OPEN</source>
+ <translation>開く...(&O)</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Python コンソール</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SELECTION</source>
+ <translation>選択</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_SELECTION</source>
+ <translation>選択範囲を有効にします。</translation>
+ </message>
+ <message>
+ <source>PREF_ENABLE_PRESELECTION</source>
+ <translation>予選を有効にします。</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION</source>
+ <translation>予選</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_STANDARD</source>
+ <translation>標準</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DYNAMIC</source>
+ <translation>動的</translation>
+ </message>
+ <message>
+ <source>PREF_PRESELECTION_DISABLED</source>
+ <translation>無効になっています。</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_CLIPPING</source>
+ <translation>クリッピングパラメータ</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_COLOR</source>
+ <translation>色</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_DEFAULT_TEXTURE</source>
+ <translation>デフォルトテキスチャの使用</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_TEXTURE</source>
+ <translation>テキスチャ</translation>
+ </message>
+ <message>
+ <source>OCC_TEXTURE_FILES</source>
+ <translation>イメージファイル (*.jpeg *jpg *.jpe *.png *.bmp *.gif *.ppm *.tif *.tiff* .tga *.exr)</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_MODULATE</source>
+ <translation>調整</translation>
+ </message>
+ <message>
+ <source>PREF_CLIPPING_SCALE</source>
+ <translation>スケールファクタ</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_RAY_TRACING</source>
+ <translation>レイトレース</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_DEPTH</source>
+ <translation>深度</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_REFLECTION</source>
+ <translation>狭反射</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_ANTIALIASING</source>
+ <translation>最適アンチエイリアシング</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_SHADOW</source>
+ <translation>シャドウレンダリング</translation>
+ </message>
+ <message>
+ <source>PREF_RAY_TRACING_TRANS_SHADOW</source>
+ <translation>透過影</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_LIGHT</source>
+ <translation>光源</translation>
+ </message>
+ <message>
+ <source>PREF_LIGHT_COLOR</source>
+ <translation>色</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE</source>
+ <translation>閉じる</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE</source>
+ <translation>閉じる(&C)</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE</source>
+ <translation>アクティブ ウィンドウを閉じる</translation>
+ </message>
+ <message>
+ <source>TOT_CLOSE_ALL</source>
+ <translation>すべて閉じる</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CLOSE_ALL</source>
+ <translation>すべて閉じる</translation>
+ </message>
+ <message>
+ <source>PRP_CLOSE_ALL</source>
+ <translation>すべてのウィンドウを閉じる</translation>
+ </message>
+ <message>
+ <source>TOT_GROUP_ALL</source>
+ <translation>すべてをグループ化</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_GROUP_ALL</source>
+ <translation>すべてをグループ化(&G)</translation>
+ </message>
+ <message>
+ <source>PRP_GROUP_ALL</source>
+ <translation>すべてのウィンドウをグループ化</translation>
+ </message>
+ <message>
+ <source>ERR_DOC_NOT_EXISTS</source>
+ <translation>%1 を開くことができません。ファイルが存在しません</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_MRU</source>
+ <translation>MRUアイテムの表示</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_VISIBLE_COUNT</source>
+ <translation>MRUアイテムの数</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_INSERT_MODE</source>
+ <translation>挿入モード</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_FIRST</source>
+ <translation>先頭に移動</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_MOVE_LAST</source>
+ <translation>末尾に移動</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_FIRST</source>
+ <translation>先頭に追加</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_ADD_LAST</source>
+ <translation>最後に追加</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_TYPE</source>
+ <translation>リンクの種類</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_AUTO</source>
+ <translation>自動</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_SHORT</source>
+ <translation>短い</translation>
+ </message>
+ <message>
+ <source>PREF_MRU_LINK_FULL</source>
+ <translation>完全な</translation>
+ </message>
+ <message>
+ <source>PREFERENCES_NOT_SUPPORTED</source>
+ <translation>モジュール "%1" の設定はサポートされていません</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_SHORTCUTS</source>
+ <translation>ショートカット</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_SHORTCUTS</source>
+ <translation>ショートカットの設定</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_FULL_SCREEN</source>
+ <translation>全画面表示</translation>
+ </message>
+ <message>
+ <source>PREF_FULL_SCREEN_AUTO</source>
+ <translation>オブジェクトブラウザと表示ツールバーを隠す</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_PYEDITOR</source>
+ <translation>Python Viewer</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_FONT</source>
+ <translation>フォント設定</translation>
+ </message>
+ <message>
+ <source>PREF_PY_FONT</source>
+ <translation>フォント</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_DISPLAY</source>
+ <translation>セッティング表示</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURRLINE_HIGHLIGHT</source>
+ <translation>現在のハイライト線を有効</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TEXT_WRAP</source>
+ <translation>テキストラッピングを有効</translation>
+ </message>
+ <message>
+ <source>PREF_PY_CURSON_ON_SCROLL</source>
+ <translation>スクロール上のセンタカーソル</translation>
+ </message>
+ <message>
+ <source>PREF_PY_LINE_NUMBS_AREA</source>
+ <translation>ライン数エリアの表示</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_EDITOR</source>
+ <translation>エディタ設定</translation>
+ </message>
+ <message>
+ <source>PREF_PY_COMPLETION_MODE</source>
+ <translation>完了モード</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NONE</source>
+ <translation>なし</translation>
+ </message>
+ <message>
+ <source>PREF_PY_AUTO</source>
+ <translation>自動</translation>
+ </message>
+ <message>
+ <source>PREF_PY_MANUAL</source>
+ <translation>手動</translation>
+ </message>
+ <message>
+ <source>PREF_PY_ALWAYS</source>
+ <translation>常に</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_PY_TAB</source>
+ <translation>設定タブ</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_WHITESPACES</source>
+ <translation>タブホワイトスペースタブの表示</translation>
+ </message>
+ <message>
+ <source>PREF_PY_TAB_SIZE</source>
+ <translation>タブサイズ:</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_VERT_EDGE</source>
+ <translation>垂直エッジ設定</translation>
+ </message>
+ <message>
+ <source>PREF_PY_VERT_EDGE</source>
+ <translation>垂直エッジの表示</translation>
+ </message>
+ <message>
+ <source>PREF_PY_NUM_COLUMNS</source>
+ <translation>列数</translation>
+ </message>
+ <message>
+ <source>INFO_WELCOME_TO_SALOME</source>
+ <translation type="unfinished">Welcome to SALOME</translation>
+ </message>
+ <message>
+ <source>INFO_GETTING_STARTED</source>
+ <translation type="unfinished">Getting started</translation>
+ </message>
+ <message>
+ <source>INFO_AVAILABLE_MODULES</source>
+ <translation type="unfinished">Available modules</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_Module</name>
+ <message>
+ <source>MEN_HIDE</source>
+ <translation>非表示</translation>
+ </message>
+ <message>
+ <source>TOP_DISPLAY_ONLY</source>
+ <translation>選択のみ表示</translation>
+ </message>
+ <message>
+ <source>STB_DISPLAY_ONLY</source>
+ <translation>選択のみ表示</translation>
+ </message>
+ <message>
+ <source>MEN_DISPLAY_ONLY</source>
+ <translation>選択のみ表示</translation>
+ </message>
+ <message>
+ <source>TOP_HIDE</source>
+ <translation>非表示</translation>
+ </message>
+ <message>
+ <source>MEN_ERASE_ALL</source>
+ <translation>すべてを非表示</translation>
+ </message>
+ <message>
+ <source>STB_HIDE</source>
+ <translation>非表示</translation>
+ </message>
+ <message>
+ <source>STB_SHOW</source>
+ <translation>表示</translation>
+ </message>
+ <message>
+ <source>TOP_SHOW</source>
+ <translation>表示</translation>
+ </message>
+ <message>
+ <source>MEN_SHOW</source>
+ <translation>表示</translation>
+ </message>
+ <message>
+ <source>STB_ERASE_ALL</source>
+ <translation>すべてを非表示</translation>
+ </message>
+ <message>
+ <source>TOP_ERASE_ALL</source>
+ <translation>すべてを非表示</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_ModuleDlg</name>
+ <message>
+ <source>DESCRIPTION</source>
+ <translation>モジュール <b>%1</b> を起動します。<br>下のボタンを押して動作を選択して下さい。</translation>
+ </message>
+ <message>
+ <source>CANCEL</source>
+ <translation>キャンセル(&C)</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>モジュールのアクティブ化</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_NameDlg</name>
+ <message>
+ <source>TLT_RENAME</source>
+ <translation>名前変更</translation>
+ </message>
+ <message>
+ <source>NAME_LBL</source>
+ <translation>名前:</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_PreferencesDlg</name>
+ <message>
+ <source>IMPORT_PREFERENCES</source>
+ <translation>インポート設定</translation>
+ </message>
+ <message>
+ <source>XML_FILES_FILTER</source>
+ <translation>XMLファイル (*.xml)</translation>
+ </message>
+ <message>
+ <source>CAPTION</source>
+ <translation>環境設定</translation>
+ </message>
+ <message>
+ <source>WARNING</source>
+ <translation>警告</translation>
+ </message>
+ <message>
+ <source>IMPORT_BTN_TEXT</source>
+ <translation>インポート</translation>
+ </message>
+ <message>
+ <source>DEFAULT_QUESTION</source>
+ <translation>既定の設定を復元しますか?</translation>
+ </message>
+ <message>
+ <source>DEFAULT_BTN_TEXT</source>
+ <translation>デフォルト</translation>
+ </message>
+ <message>
+ <source>PREF_NEED_RESTART</source>
+ <translation>幾つかの変更はアプリケーションを再起動後に有効になります</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_ModuleAction</name>
+ <message>
+ <source>ACTIVATE_MODULE_TOP</source>
+ <translation>モジュール %1 の有効/無効にします。</translation>
+ </message>
+ </context>
+ <context>
+ <name>LightApp_PyEditor</name>
+ <message>
+ <source>TOT_DUMP_PYCOMMANDS</source>
+ <translation>スクリプト コマンドを生成します。</translation>
+ </message>
+ <message>
+ <source>TOT_SAVE_PYLOG</source>
+ <translation>ログの保存</translation>
+ </message>
+ </context>
+</TS>
--- /dev/null
+<document>
+ <!-- import LightApp.xml file -->
+ <import name="LightShaperApp"/>
+ <section name="launch">
+ <!-- SALOME launching parameters -->
+ <parameter name="logger" value="no"/>
+ <parameter name="xterm" value="no"/>
+ <parameter name="portkill" value="no"/>
+ <parameter name="killall" value="no"/>
+ <parameter name="pinter" value="no"/>
+ <parameter name="noexcepthandler" value="no"/>
+ <parameter name="modules" value="SHAPER"/>
+ <parameter name="pyModules" value=""/>
+ <parameter name="embedded" value="ShaperAppEngine,study,cppContainer,registry,moduleCatalog"/>
+ <parameter name="standalone" value=""/>
+ </section>
+ <section name="language">
+ <!-- Language settings (resource manager)-->
+ <parameter name="translators" value="%P_msg_%L.qm|%PM_msg_%L.qm|%P_icons.qm|%P_images.qm|%PM_images.qm"/>
+ </section>
+ <section name="ObjectBrowser" >
+ <!-- Object Browser preferences -->
+ <parameter name="visibility_column_id_1" value="false" />
+ <parameter name="visibility_column_id_2" value="false" />
+ <parameter name="visibility_column_id_3" value="false" />
+ <parameter name="visibility_column_id_4" value="false" />
+ </section>
+ <section name="Study">
+ <!-- General study settings -->
+ <parameter name="autoload_light_modules" value="true" />
+ <parameter name="store_positions" value="true" />
+ <parameter name="store_tool_positions" value="true" />
+ <parameter name="store_visual_state" value="false" />
+ <parameter name="pydump_publish" value="true" />
+ <parameter name="multi_file_dump" value="false" />
+ <parameter name="pydump_save_gui" value="false" />
+ </section>
+ <section name="splash">
+ <parameter name="image" value="%GUI_ROOT_DIR/share/salome/resources/gui/shaper_splash.png"/>
+ <parameter name="text_colors" value="#ffffff|#000000"/>
+ <parameter name="show_percents" value="yes"/>
+ <parameter name="show_progress" value="yes"/>
+ <parameter name="show_message" value="yes"/>
+ <parameter name="font" value="Xirod,12,normal"/>
+ </section>
+ <!--section name="resources">
+ <parameter name="LightShaperApp" value="%GUI_ROOT_DIR/share/salome/resources/gui"/>
+ </section-->
+</document>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en_US">
+<context>
+ <name>@default</name>
+ <message>
+ <source>WRN_FILE_NOT_EXIST</source>
+ <translation>The file %1 does not exist.</translation>
+ </message>
+ <message>
+ <source>WRN_STUDY_LOCKED</source>
+ <translation>Study is locked.</translation>
+ </message>
+ <message>
+ <source>WRN_NO_STUDY_ON SERV</source>
+ <translation>No active study in this session.</translation>
+ </message>
+ <message>
+ <source>CLOSE_LOCKED_STUDY</source>
+ <translation>Close locked study?</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publish in study</translation>
+ </message>
+ <message>
+ <source>MULTI_FILE_DUMP</source>
+ <translation>Multi file dump</translation>
+ </message>
+ <message>
+ <source>BUT_NEW</source>
+ <translation>&New</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_NAME</source>
+ <translation>GUI states</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_TOOLTIP</source>
+ <translation>Persistent GUI states</translation>
+ </message>
+ <message>
+ <source>SAVE_GUI_STATE</source>
+ <translation>Save GUI state</translation>
+ </message>
+ <message>
+ <source>BUT_LOAD</source>
+ <translation>&Load</translation>
+ </message>
+ <message>
+ <source>BUT_OPEN</source>
+ <translation>&Open</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_OBJECT_TOOLTIP</source>
+ <translation>Saved GUI state: %1</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_DEF_NAME</source>
+ <translation>GUI state: </translation>
+ </message>
+ <message>
+ <source>VALUE_COLUMN</source>
+ <translation>Value</translation>
+ </message>
+ <message>
+ <source>IOR_COLUMN</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>REFENTRY_COLUMN</source>
+ <translation>Ref.Entry</translation>
+ </message>
+ <message>
+ <source>ERR_INCOMPATIBLE_TYPE</source>
+ <translation>Variable with name "%1" has incompatible numeric type</translation>
+ </message>
+ <message>
+ <source>ERR_INVALID_VALUE</source>
+ <translation>Value hasn't been validated</translation>
+ </message>
+ <message>
+ <source>ERR_NO_VARIABLE</source>
+ <translation>Variable with name "%1" doesn't exist</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_CREATE</source>
+ <translation>Cannot create study: there is already an active study in this session.
+Launch a new session or close the study.</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_OPEN</source>
+ <translation>Cannot open study: there is already an active study in this session.
+Launch a new session or close the study.</translation>
+ </message>
+ <message>
+ <source>OPEN_DOCUMENT_PROBLEM</source>
+ <translation>Unknown problem during opening of the document</translation>
+ </message>
+ <message>
+ <source>CREATE_DOCUMENT_PROBLEM</source>
+ <translation>Unknown problem during creation of the document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CONNECT_STUDY</source>
+ <translation>Connect study</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_DISCONNECT_STUDY</source>
+ <translation>Disconnect study</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CONNECT</source>
+ <translation>Connect active study</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_DISCONNECT</source>
+ <translation>Disconnect the current study</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CONNECT</source>
+ <translation>Conn&ect</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_DISCONNECT</source>
+ <translation>D&isconnect</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_Application</name>
+ <message>
+ <source>ALL_FILES_FILTER</source>
+ <translation>All files (*.*)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD</source>
+ <translation>&Disconnect w/o saving</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD_SAVE</source>
+ <translation>S&ave && Disconnect</translation>
+ </message>
+ <message>
+ <source>MEN_WINDOWS_NEW</source>
+ <translation>New Window</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_INVALID_REFERENCE</source>
+ <translation>Delete Invalid Reference</translation>
+ </message>
+ <message>
+ <source>TOT_FILE_DESK_PREFERENCES</source>
+ <translation>Preferences</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_VS</source>
+ <translation>Delete</translation>
+ </message>
+ <message>
+ <source>MEN_OPENWITH</source>
+ <translation>Activate %1 Module</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_REGISTRY_DISPLAY</source>
+ <translation>Registry &Display</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Load python script</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_PUBLISH</source>
+ <translation>Publish in study in python dump</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_MULTI_FILE</source>
+ <translation>Multi file python dump</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_SAVE_GUI</source>
+ <translation>Save GUI state in python dump</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_VISUAL_STATE</source>
+ <translation>Store/restore last GUI state</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Saves current state of viewers, displayed objects, etc.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Save GUI State</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Save GUI state</translation>
+ </message>
+ <message>
+ <source>MEN_RESTORE_VS</source>
+ <translation>Restore</translation>
+ </message>
+ <message>
+ <source>WRN_DUMP_STUDY_FAILED</source>
+ <translation>Dump study failed</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PROPERTIES</source>
+ <translation>Pro&perties...</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_ALREADYEXIST</source>
+ <translation>The document %1 already exists.
+Do you want to reload it ?</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_VS</source>
+ <translation>Rename</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CATALOG_GENERATOR</source>
+ <translation>Catalog generator</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add vars to notebook</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publish in study</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Settings</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_REGISTRY_DISPLAY</source>
+ <translation>Displays content of the Registry CORBA server</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_DESCRIPTION</source>
+ <translation>Do you want to save study before closing?</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PROPERTIES</source>
+ <translation>Edits study properties</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Object browser</translation>
+ </message>
+ <message>
+ <source>STUDY_LOCKED</source>
+ <translation>LOCKED</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Object</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_REGISTRY_DISPLAY</source>
+ <translation>Registry display</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_0</source>
+ <translation>Entry</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_1</source>
+ <translation>Value</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_2</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_3</source>
+ <translation>Reference entry</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Python Console</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Load Scrip&t...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_TOOLS</source>
+ <translation>&Tools</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS_TOOLS</source>
+ <translation>Tools</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS</source>
+ <translation>Plugins</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_DUMP_STUDY</source>
+ <translation>Dump study</translation>
+ </message>
+ <message>
+ <source>MEN_VIEW_WNDS</source>
+ <translation>Windows</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_DUMP_STUDY</source>
+ <translation>&Dump Study...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CATALOG_GENERATOR</source>
+ <translation>Generates XML catalog of a component's interface</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add variables of the study to the notebook</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_DUMP_STUDY</source>
+ <translation>Dumps study to the python script</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_NOTEBOOK</source>
+ <translation>Open Notebook</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_NOTEBOOK</source>
+ <translation>Noteboo&k...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_NOTEBOOK</source>
+ <translation>Open Notebook</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PROPERTIES</source>
+ <translation>Study properties</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Default columns</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Loads python script from file</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CATALOG_GENERATOR</source>
+ <translation>Catalog &Generator</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Add vars to NoteBook</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>Most Recently Used</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Most recently used</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_LOAD</source>
+ <translation>&Connect</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_SCRIPT</source>
+ <translation>Load &Script...</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_CAPTION</source>
+ <translation>Disconnect active study</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_DESCRIPTION</source>
+ <translation>Do you want to save study before disconnect?</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_SAVE</source>
+ <translation>&Save && Disconnect</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_WO_SAVE</source>
+ <translation>&Disconnect w/o saving</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_StudyPropertiesDlg</name>
+ <message>
+ <source>PRP_MODE_FROM_SCRATCH</source>
+ <translation>from scratch</translation>
+ </message>
+ <message>
+ <source>PRP_AUTHOR</source>
+ <translation>Author</translation>
+ </message>
+ <message>
+ <source>PRP_LOCKED</source>
+ <translation>Locked</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFICATIONS</source>
+ <translation>Modifications</translation>
+ </message>
+ <message>
+ <source>PRP_COMPONENT</source>
+ <translation>Component</translation>
+ </message>
+ <message>
+ <source>PRP_VERSION</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <source>PRP_VERSIONS</source>
+ <translation>Stored data</translation>
+ </message>
+ <message>
+ <source>PRP_DATE_MODIF</source>
+ <translation>Date</translation>
+ </message>
+ <message>
+ <source>PRP_UNITS</source>
+ <translation>Length units</translation>
+ </message>
+ <message>
+ <source>PRP_COMMENT</source>
+ <translation>Comment</translation>
+ </message>
+ <message>
+ <source>PRP_NO</source>
+ <translation>No</translation>
+ </message>
+ <message>
+ <source>PRP_YES</source>
+ <translation>Yes</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFIED</source>
+ <translation>Modified</translation>
+ </message>
+ <message>
+ <source>PRP_NOT_MODIFIED</source>
+ <translation>Not modified</translation>
+ </message>
+ <message>
+ <source>PRP_DATE</source>
+ <translation>Creation date</translation>
+ </message>
+ <message>
+ <source>PRP_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PRP_MODE_FROM_COPYFROM</source>
+ <translation>copy from</translation>
+ </message>
+ <message>
+ <source>TLT_STUDY_PROPERTIES</source>
+ <translation>Study Properties</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_ExitDlg</name>
+ <message>
+ <source>SHUTDOWN_SERVERS</source>
+ <translation>Shutdown servers</translation>
+ </message>
+</context>
+<context>
+ <name>NoteBook_Table</name>
+ <message>
+ <source>REMOVE_VARIABLE_IS_USED</source>
+ <translation>Variable with name "%1" is used in the study.
+Do you really want to remove it?</translation>
+ </message>
+ <message>
+ <source>RENAME_VARIABLE_IS_USED</source>
+ <translation>Variable with name "%1" is used in the study.
+Do you really want to rename it?</translation>
+ </message>
+ <message>
+ <source>VARNAME_COLUMN</source>
+ <translation>Variable</translation>
+ </message>
+ <message>
+ <source>VARVALUE_COLUMN</source>
+ <translation>Value</translation>
+ </message>
+ <message>
+ <source>VARVALUE_INCORRECT</source>
+ <translation>Variable Value Incorrect: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_INCORRECT</source>
+ <translation>Variable Name Incorrect :%1</translation>
+ </message>
+ <message>
+ <source>VARNAME_EXISTS</source>
+ <translation>Variable with name "%1" exists</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_NoteBook</name>
+ <message>
+ <source>NOTEBOOK_TITLE</source>
+ <translation>NoteBook</translation>
+ </message>
+ <message>
+ <source>BUT_UPDATE_STUDY</source>
+ <translation>&Update Study</translation>
+ </message>
+ <message>
+ <source>BUT_REMOVE</source>
+ <translation>&Remove</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY_AND_CLOSE</source>
+ <translation>A&pply and Close</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>&Help</translation>
+ </message>
+ <message>
+ <source>CLOSE_CAPTION</source>
+ <translation>Close NoteBook</translation>
+ </message>
+ <message>
+ <source>CLOSE_DESCRIPTION</source>
+ <translation>Do you want to save changes you made to NoteBook?</translation>
+ </message>
+ <message>
+ <source>INCORRECT_DATA</source>
+ <translation>At least one variable has been defined incorrectly.
+Please edit its parameters or remove it from table.</translation>
+ </message>
+ <message>
+ <source>ERR_UPDATE_STUDY_FAILED</source>
+ <translation>Failed to update study!</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_DoubleSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Specify either a variable name or
+a floating-point value in range ( %1; %2 )
+with %3-digit precision</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Specify a floating-point value in range ( %1; %2 )
+with %3-digit precision</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_IntSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Specify either a variable name or
+an integer value in range ( %1; %2 )</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Specify an integer value in range ( %1; %2 )</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fr_FR">
+<context>
+ <name>@default</name>
+ <message>
+ <source>WRN_FILE_NOT_EXIST</source>
+ <translation>Le fichier %1 n'existe pas.</translation>
+ </message>
+ <message>
+ <source>WRN_STUDY_LOCKED</source>
+ <translation>L'étude est verrouillée</translation>
+ </message>
+ <message>
+ <source>WRN_NO_STUDY_ON SERV</source>
+ <translation>Pas d'étude active dans cette session.</translation>
+ </message>
+ <message>
+ <source>CLOSE_LOCKED_STUDY</source>
+ <translation>Fermer l'étude verrouillée ?</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publier dans l'étude</translation>
+ </message>
+ <message>
+ <source>MULTI_FILE_DUMP</source>
+ <translation>Dump multi-fichiers</translation>
+ </message>
+ <message>
+ <source>BUT_NEW</source>
+ <translation>&Nouvelle</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_NAME</source>
+ <translation>Etats d'IHM</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_TOOLTIP</source>
+ <translation>Etats d'IHM persistents</translation>
+ </message>
+ <message>
+ <source>SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>BUT_LOAD</source>
+ <translation>&Charger</translation>
+ </message>
+ <message>
+ <source>BUT_OPEN</source>
+ <translation>&Ouvrir</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_OBJECT_TOOLTIP</source>
+ <translation>Etat d'IHM: %1 sauvegardé</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_DEF_NAME</source>
+ <translation>Etat d'IHM: </translation>
+ </message>
+ <message>
+ <source>VALUE_COLUMN</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>IOR_COLUMN</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>REFENTRY_COLUMN</source>
+ <translation>Entrée de réf.</translation>
+ </message>
+ <message>
+ <source>ERR_INCOMPATIBLE_TYPE</source>
+ <translation>Le type numérique de la variable "%1" n'est pas compatible</translation>
+ </message>
+ <message>
+ <source>ERR_INVALID_VALUE</source>
+ <translation>La valeur n'a pas été validée</translation>
+ </message>
+ <message>
+ <source>ERR_NO_VARIABLE</source>
+ <translation>La variable "%1" n'existe pas.</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_CREATE</source>
+ <translation>Impossible de créer une étude car il y en a déjà une d'active.
+Lancez une nouvelle session ou fermez l'étude en cours.</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_OPEN</source>
+ <translation>Impossible d'ouvrir l'étude car il y en a déjà une d'active.
+Lancez une nouvelle session ou fermez l'étude en cours.</translation>
+ </message>
+ <message>
+ <source>OPEN_DOCUMENT_PROBLEM</source>
+ <translation>Problème inconnu à l'ouverture du document</translation>
+ </message>
+ <message>
+ <source>CREATE_DOCUMENT_PROBLEM</source>
+ <translation>Problème inconnu à la création du document</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CONNECT_STUDY</source>
+ <translation>Connecter l'étude</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_DISCONNECT_STUDY</source>
+ <translation>Déconnecter l'étude</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CONNECT</source>
+ <translation>Connecter l'étude en cours</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_DISCONNECT</source>
+ <translation>Déconnecter l'étude en cours</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CONNECT</source>
+ <translation>Conn&ecter</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_DISCONNECT</source>
+ <translation>D&éconnecter</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_Application</name>
+ <message>
+ <source>ALL_FILES_FILTER</source>
+ <translation>Tous les fichiers (*.*)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD</source>
+ <translation>&Déconnecter sans sauvegarder</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD_SAVE</source>
+ <translation>Sauvegarder && D&éconnecter</translation>
+ </message>
+ <message>
+ <source>MEN_WINDOWS_NEW</source>
+ <translation>Nouvelle fenêtre</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_INVALID_REFERENCE</source>
+ <translation>Supprimer la référence invalide</translation>
+ </message>
+ <message>
+ <source>TOT_FILE_DESK_PREFERENCES</source>
+ <translation>Préférences</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_VS</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <source>MEN_OPENWITH</source>
+ <translation>Activer module %1 </translation>
+ </message>
+ <message>
+ <source>MEN_DESK_REGISTRY_DISPLAY</source>
+ <translation>Affichage du registre CORBA</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Exécuter un script python</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_PUBLISH</source>
+ <translation>Publier dans l'étude dans un scrypt Python</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_MULTI_FILE</source>
+ <translation>Dump Python multi-fichiers</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_SAVE_GUI</source>
+ <translation>Enregistrer l'état de l'IHM dans un script Python</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_VISUAL_STATE</source>
+ <translation>Sauvegarder/restaurer le dernier état d'IHM</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état actuel des vues 3D, des objets affichés, etc.</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>Sauvegarder l'état d'IHM</translation>
+ </message>
+ <message>
+ <source>MEN_RESTORE_VS</source>
+ <translation>Restaurer</translation>
+ </message>
+ <message>
+ <source>WRN_DUMP_STUDY_FAILED</source>
+ <translation>Impossible de générer le script de l'étude</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PROPERTIES</source>
+ <translation>Pro&priétés...</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_ALREADYEXIST</source>
+ <translation>Le document %1 existe déjà.
+Voulez-vous le recharger ?</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_VS</source>
+ <translation>Renommer</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CATALOG_GENERATOR</source>
+ <translation>Générateur de catalogue</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Ajouter les variables au registre</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>Publier dans l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>Paramètres</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_REGISTRY_DISPLAY</source>
+ <translation>Visualiser le contenu du registre du serveur CORBA</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_DESCRIPTION</source>
+ <translation>Voulez-vous sauvegarder l'étude avant de quitter ?</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PROPERTIES</source>
+ <translation>Editer les propriétés de l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>Arbre d'étude</translation>
+ </message>
+ <message>
+ <source>STUDY_LOCKED</source>
+ <translation>VERROUILLEE</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>Objet</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_REGISTRY_DISPLAY</source>
+ <translation>Visualiser le registre CORBA</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_0</source>
+ <translation>Entrée</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_1</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_2</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_3</source>
+ <translation>Entrée de référence</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Console Python</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Exécuter un scrip&t...</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_TOOLS</source>
+ <translation>&Outils</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS_TOOLS</source>
+ <translation>Outils</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS</source>
+ <translation>Extensions</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_DUMP_STUDY</source>
+ <translation>Générer le script de l'étude</translation>
+ </message>
+ <message>
+ <source>MEN_VIEW_WNDS</source>
+ <translation>Fenêtres</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_DUMP_STUDY</source>
+ <translation>&Générer le script de l'étude...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CATALOG_GENERATOR</source>
+ <translation>Génére un catalogue XML de l'interface du composant</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Ajouter les variables de l'étude au registre</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_DUMP_STUDY</source>
+ <translation>Génère le script python de l'étude</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_NOTEBOOK</source>
+ <translation>Ouvrir le registre</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_NOTEBOOK</source>
+ <translation>Re&gistre...</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_NOTEBOOK</source>
+ <translation>Ouvrir le registre</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PROPERTIES</source>
+ <translation>Propriétés de l'étude</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>Colonnes par défaut</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Exécute un script Python à partir d'un fichier</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CATALOG_GENERATOR</source>
+ <translation>&Genérateur de catalogue</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>Ajouter les variables au registre</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>Dernières études ouvertes</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>Dernières études ouvertes</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_LOAD</source>
+ <translation>&Connecter</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_SCRIPT</source>
+ <translation>Charger un &script...</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_CAPTION</source>
+ <translation>Déconnecter l'étude en cours</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_DESCRIPTION</source>
+ <translation>Voulez-vous sauver l'étude avant la déconnexion ?</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_SAVE</source>
+ <translation>&Sauver && Déconnecter</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_WO_SAVE</source>
+ <translation>&Déconnecter sans sauver</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_StudyPropertiesDlg</name>
+ <message>
+ <source>PRP_MODE_FROM_SCRATCH</source>
+ <translation>du début</translation>
+ </message>
+ <message>
+ <source>PRP_AUTHOR</source>
+ <translation>Auteur</translation>
+ </message>
+ <message>
+ <source>PRP_LOCKED</source>
+ <translation>Verrouillée</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFICATIONS</source>
+ <translation>Modifications</translation>
+ </message>
+ <message>
+ <source>PRP_COMPONENT</source>
+ <translation>Composant</translation>
+ </message>
+ <message>
+ <source>PRP_VERSION</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <source>PRP_VERSIONS</source>
+ <translation>Données stockées</translation>
+ </message>
+ <message>
+ <source>PRP_DATE_MODIF</source>
+ <translation>Date</translation>
+ </message>
+ <message>
+ <source>PRP_UNITS</source>
+ <translation>Unités de longueur</translation>
+ </message>
+ <message>
+ <source>PRP_COMMENT</source>
+ <translation>Commentaires</translation>
+ </message>
+ <message>
+ <source>PRP_NO</source>
+ <translation>Non</translation>
+ </message>
+ <message>
+ <source>PRP_YES</source>
+ <translation>Oui</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFIED</source>
+ <translation>Modifiée</translation>
+ </message>
+ <message>
+ <source>PRP_NOT_MODIFIED</source>
+ <translation>Non modifiée</translation>
+ </message>
+ <message>
+ <source>PRP_DATE</source>
+ <translation>Date de création</translation>
+ </message>
+ <message>
+ <source>PRP_MODE</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>PRP_MODE_FROM_COPYFROM</source>
+ <translation>copier de</translation>
+ </message>
+ <message>
+ <source>TLT_STUDY_PROPERTIES</source>
+ <translation>Propriétés de l'étude</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_ExitDlg</name>
+ <message>
+ <source>SHUTDOWN_SERVERS</source>
+ <translation>Arrêter les serveurs</translation>
+ </message>
+</context>
+<context>
+ <name>NoteBook_Table</name>
+ <message>
+ <source>REMOVE_VARIABLE_IS_USED</source>
+ <translation>La variable "%1" est utilisée dans l'étude.
+Voulez-vous vraiment la supprimer?</translation>
+ </message>
+ <message>
+ <source>RENAME_VARIABLE_IS_USED</source>
+ <translation>La variable "%1" est utilisée dans l'étude.
+Voulez-vous vraiment la renommer?</translation>
+ </message>
+ <message>
+ <source>VARNAME_COLUMN</source>
+ <translation>Nom de la variable</translation>
+ </message>
+ <message>
+ <source>VARVALUE_COLUMN</source>
+ <translation>Valeur de la variable</translation>
+ </message>
+ <message>
+ <source>VARVALUE_INCORRECT</source>
+ <translation>La valeur de la variable n'est pas correcte: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_INCORRECT</source>
+ <translation>Le nom de la variable n'est pas correct: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_EXISTS</source>
+ <translation>La variable "%1" existe</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_NoteBook</name>
+ <message>
+ <source>NOTEBOOK_TITLE</source>
+ <translation>Registre Salome</translation>
+ </message>
+ <message>
+ <source>BUT_UPDATE_STUDY</source>
+ <translation>&Mettre l'étude à jour</translation>
+ </message>
+ <message>
+ <source>BUT_REMOVE</source>
+ <translation>&Supprimer</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY_AND_CLOSE</source>
+ <translation>A&ppliquer et Fermer</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>&Aide</translation>
+ </message>
+ <message>
+ <source>CLOSE_CAPTION</source>
+ <translation>Fermer le registre</translation>
+ </message>
+ <message>
+ <source>CLOSE_DESCRIPTION</source>
+ <translation>Voulez-vous sauvegarder les changements faits au registre ?</translation>
+ </message>
+ <message>
+ <source>INCORRECT_DATA</source>
+ <translation>Au moins une variable a été définie incorrectement.
+Editez ses paramètres ou retirez la de la liste.</translation>
+ </message>
+ <message>
+ <source>ERR_UPDATE_STUDY_FAILED</source>
+ <translation>Impossible de mettre l'étude à jour !</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_DoubleSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Indiquez un nom de variable ou
+une valeur réelle dans l'intervalle ( %1; %2 )
+avec une précision de %3 décimales</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Indiquez une valeur réelle dans l'intervalle ( %1; %2 )
+avec une précision de %3 décimales</translation>
+ </message>
+</context>
+<context>
+ <name>SalomeApp_IntSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>Indiquez un nom de variable ou
+une valeur entière dans l'intervalle ( %1; %2 )</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>Indiquez une valeur entière dans l'intervalle ( %1; %2 )</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja" sourcelanguage="en">
+ <context>
+ <name>@default</name>
+ <message>
+ <source>WRN_FILE_NOT_EXIST</source>
+ <translation>ファイル %1 は存在しません。</translation>
+ </message>
+ <message>
+ <source>WRN_STUDY_LOCKED</source>
+ <translation>スタディがロックされています</translation>
+ </message>
+ <message>
+ <source>WRN_NO_STUDY_ON SERV</source>
+ <translation>セッションにスタディがありません。</translation>
+ </message>
+ <message>
+ <source>CLOSE_LOCKED_STUDY</source>
+ <translation>ロックされたスタディを閉じますか。</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>スタディ公開</translation>
+ </message>
+ <message>
+ <source>MULTI_FILE_DUMP</source>
+ <translation>複数ファイルの書き出し</translation>
+ </message>
+ <message>
+ <source>BUT_NEW</source>
+ <translation>新規作成(&N)</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_NAME</source>
+ <translation>HMI の状態</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_ROOT_TOOLTIP</source>
+ <translation>状態の HMI 永続的です</translation>
+ </message>
+ <message>
+ <source>SAVE_GUI_STATE</source>
+ <translation>GUIの状態を保存</translation>
+ </message>
+ <message>
+ <source>BUT_LOAD</source>
+ <translation>読み込み(&L)</translation>
+ </message>
+ <message>
+ <source>BUT_OPEN</source>
+ <translation>開く(&O)</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_OBJECT_TOOLTIP</source>
+ <translation>保存されたGUI状態: %1</translation>
+ </message>
+ <message>
+ <source>SAVE_POINT_DEF_NAME</source>
+ <translation>HCI の状態:</translation>
+ </message>
+ <message>
+ <source>VALUE_COLUMN</source>
+ <translation>値</translation>
+ </message>
+ <message>
+ <source>IOR_COLUMN</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>REFENTRY_COLUMN</source>
+ <translation>REFエントリ</translation>
+ </message>
+ <message>
+ <source>ERR_INCOMPATIBLE_TYPE</source>
+ <translation>変数"%1"の数値型は互換性がありません</translation>
+ </message>
+ <message>
+ <source>ERR_INVALID_VALUE</source>
+ <translation>値が検証されていません</translation>
+ </message>
+ <message>
+ <source>ERR_NO_VARIABLE</source>
+ <translation>変数"%1"は存在しません。</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_CREATE</source>
+ <translation>スタディを作成できません: セッションに既にスタディがあります。
+新規セッションを開始するかスタディを閉じてください。</translation>
+ </message>
+ <message>
+ <source>ERR_ACTIVE_STUDY_OPEN</source>
+ <translation>スタディを開けません: セッションに既にスタディがあります。
+新規セッションを開始するかスタディを閉じてください。</translation>
+ </message>
+ <message>
+ <source>OPEN_DOCUMENT_PROBLEM</source>
+ <translation>ドキュメントオープン中に不明な問題が発生しました</translation>
+ </message>
+ <message>
+ <source>CREATE_DOCUMENT_PROBLEM</source>
+ <translation>ドキュメント作成中に不明な問題が発生しました</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CONNECT_STUDY</source>
+ <translation>スタディの接続</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_DISCONNECT_STUDY</source>
+ <translation>スタディの切断</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CONNECT</source>
+ <translation>アクティブスタディの接続</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_DISCONNECT</source>
+ <translation>カレントスタディの切断</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CONNECT</source>
+ <translation>接続(&e)</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_DISCONNECT</source>
+ <translation>切断(&i)</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_Application</name>
+ <message>
+ <source>ALL_FILES_FILTER</source>
+ <translation>すべてのファイル (*. *)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD</source>
+ <translation>アンロード(&U)</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_UNLOAD_SAVE</source>
+ <translation>保存と切断(&a)</translation>
+ </message>
+ <message>
+ <source>MEN_WINDOWS_NEW</source>
+ <translation>新しいウィンドウ</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_INVALID_REFERENCE</source>
+ <translation>無効な参照を削除します。</translation>
+ </message>
+ <message>
+ <source>TOT_FILE_DESK_PREFERENCES</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <source>MEN_DELETE_VS</source>
+ <translation>削除</translation>
+ </message>
+ <message>
+ <source>MEN_OPENWITH</source>
+ <translation>モジュール %1 を有効</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_REGISTRY_DISPLAY</source>
+ <translation>レジストリの表示(&D)</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>Python スクリプトを実行</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_PUBLISH</source>
+ <translation>Python scrypt の研究を公開します。</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_MULTI_FILE</source>
+ <translation>複数ファイルをPythonでダンプする</translation>
+ </message>
+ <message>
+ <source>PREF_PYDUMP_SAVE_GUI</source>
+ <translation>PythonダンプでGUIの状態を保存</translation>
+ </message>
+ <message>
+ <source>PREF_STORE_VISUAL_STATE</source>
+ <translation>バックアップ/リストア HCI の最後の状態</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>ビューや表示オブジェクトなど、現在の状態を保存</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>GUIの状態を保存</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_SAVE_GUI_STATE</source>
+ <translation>GUIの状態を保存</translation>
+ </message>
+ <message>
+ <source>MEN_RESTORE_VS</source>
+ <translation>復元</translation>
+ </message>
+ <message>
+ <source>WRN_DUMP_STUDY_FAILED</source>
+ <translation>研究のスクリプトを生成できません。</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PROPERTIES</source>
+ <translation>プロパティ...(&p)</translation>
+ </message>
+ <message>
+ <source>QUE_DOC_ALREADYEXIST</source>
+ <translation>ドキュメント %1 はの存在。それを再読み込みしますか。</translation>
+ </message>
+ <message>
+ <source>MEN_RENAME_VS</source>
+ <translation>名前の変更</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_CATALOG_GENERATOR</source>
+ <translation>カタログの生成</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>変数をレジストリに追加します。</translation>
+ </message>
+ <message>
+ <source>PUBLISH_IN_STUDY</source>
+ <translation>スタディ公開</translation>
+ </message>
+ <message>
+ <source>PREF_OBJ_BROWSER_SETTINGS</source>
+ <translation>パラメーター</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_REGISTRY_DISPLAY</source>
+ <translation>CORBAサーバーの登録内容を表示</translation>
+ </message>
+ <message>
+ <source>APPCLOSE_DESCRIPTION</source>
+ <translation>閉じる、または閉じる前にスタディをアンロードしますか?</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_PROPERTIES</source>
+ <translation>スタディのプロパティを編集</translation>
+ </message>
+ <message>
+ <source>PREF_TAB_OBJBROWSER</source>
+ <translation>オブジェクトブラウザー</translation>
+ </message>
+ <message>
+ <source>STUDY_LOCKED</source>
+ <translation>ロック</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_NAME</source>
+ <translation>オブジェクト</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_REGISTRY_DISPLAY</source>
+ <translation>レジストリの表示</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_0</source>
+ <translation>エントリ</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_1</source>
+ <translation>値</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_2</source>
+ <translation>IOR</translation>
+ </message>
+ <message>
+ <source>OBJ_BROWSER_COLUMN_3</source>
+ <translation>参照エントリ</translation>
+ </message>
+ <message>
+ <source>PREF_CATEGORY_SALOME</source>
+ <translation>SALOME</translation>
+ </message>
+ <message>
+ <source>PYTHON_CONSOLE</source>
+ <translation>Python コンソール</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>スクリプトを読込み...(&t)</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_TOOLS</source>
+ <translation>ツール(&T)</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS_TOOLS</source>
+ <translation>ツール</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_PLUGINS</source>
+ <translation>プラグイン</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_DUMP_STUDY</source>
+ <translation>physonスクリプトを保存</translation>
+ </message>
+ <message>
+ <source>MEN_VIEW_WNDS</source>
+ <translation>Windows</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_DUMP_STUDY</source>
+ <translation>スクリプトを保存(&D)</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_CATALOG_GENERATOR</source>
+ <translation>コンポーネントインターフェイスのXMLカタログを生成</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>スタディの変数をnotebookに追加</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_DUMP_STUDY</source>
+ <translation>Pythonスクリプトにスタディをダンプする</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_FILE_NOTEBOOK</source>
+ <translation>レジストリを開く</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_FILE_NOTEBOOK</source>
+ <translation>Notebook...(&k)</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_NOTEBOOK</source>
+ <translation>レジストリを開く</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_PROPERTIES</source>
+ <translation>スタディのプロパティ</translation>
+ </message>
+ <message>
+ <source>PREF_GROUP_DEF_COLUMNS</source>
+ <translation>既定の列</translation>
+ </message>
+ <message>
+ <source>PRP_DESK_FILE_LOAD_SCRIPT</source>
+ <translation>ファイルからPythonスクリプトを読込み</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_CATALOG_GENERATOR</source>
+ <translation>カタログ ジェネレーター(&G)</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_ADD_VARS_TO_NOTEBOOK</source>
+ <translation>変数をレジストリに追加します。</translation>
+ </message>
+ <message>
+ <source>MEN_DESK_MRU</source>
+ <translation>最近のスタディ</translation>
+ </message>
+ <message>
+ <source>TOT_DESK_MRU</source>
+ <translation>最近のスタディ</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_LOAD</source>
+ <translation>読込み(&L)</translation>
+ </message>
+ <message>
+ <source>ACTIVATE_MODULE_OP_SCRIPT</source>
+ <translation>スクリプト読込み(&S)</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_CAPTION</source>
+ <translation>アクティブスタディの切断</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_DESCRIPTION</source>
+ <translation>切断の前にスタディを保存しますか?</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_SAVE</source>
+ <translation>保存と切断(&S)</translation>
+ </message>
+ <message>
+ <source>DISCONNECT_WO_SAVE</source>
+ <translation>w/o 保存の切断(&D)</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_StudyPropertiesDlg</name>
+ <message>
+ <source>PRP_MODE_FROM_SCRATCH</source>
+ <translation>ゼロから</translation>
+ </message>
+ <message>
+ <source>PRP_AUTHOR</source>
+ <translation>作成者</translation>
+ </message>
+ <message>
+ <source>PRP_LOCKED</source>
+ <translation>ロック</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFICATIONS</source>
+ <translation>変更</translation>
+ </message>
+ <message>
+ <source>PRP_COMPONENT</source>
+ <translation>コンポーネント</translation>
+ </message>
+ <message>
+ <source>PRP_VERSION</source>
+ <translation>バージョン</translation>
+ </message>
+ <message>
+ <source>PRP_VERSIONS</source>
+ <translation>格納されているデータ</translation>
+ </message>
+ <message>
+ <source>PRP_DATE_MODIF</source>
+ <translation>日付</translation>
+ </message>
+ <message>
+ <source>PRP_UNITS</source>
+ <translation>長さの単位</translation>
+ </message>
+ <message>
+ <source>PRP_COMMENT</source>
+ <translation>コメント</translation>
+ </message>
+ <message>
+ <source>PRP_NO</source>
+ <translation>いいえ</translation>
+ </message>
+ <message>
+ <source>PRP_YES</source>
+ <translation>はい</translation>
+ </message>
+ <message>
+ <source>PRP_MODIFIED</source>
+ <translation>変更</translation>
+ </message>
+ <message>
+ <source>PRP_NOT_MODIFIED</source>
+ <translation>変更無</translation>
+ </message>
+ <message>
+ <source>PRP_DATE</source>
+ <translation>作成日</translation>
+ </message>
+ <message>
+ <source>PRP_MODE</source>
+ <translation>モード</translation>
+ </message>
+ <message>
+ <source>PRP_MODE_FROM_COPYFROM</source>
+ <translation>…からコピー</translation>
+ </message>
+ <message>
+ <source>TLT_STUDY_PROPERTIES</source>
+ <translation>スタディのプロパティ</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_ExitDlg</name>
+ <message>
+ <source>SHUTDOWN_SERVERS</source>
+ <translation>サーバーを停止します。</translation>
+ </message>
+ </context>
+ <context>
+ <name>NoteBook_Table</name>
+ <message>
+ <source>REMOVE_VARIABLE_IS_USED</source>
+ <translation>変数"%1"は、Studyに使用されています。\n本当にそれを削除しますか?</translation>
+ </message>
+ <message>
+ <source>RENAME_VARIABLE_IS_USED</source>
+ <translation>変数"%1"は、Studyに使用されています。\n本当にその名前を変更しますか?</translation>
+ </message>
+ <message>
+ <source>VARNAME_COLUMN</source>
+ <translation>変数名</translation>
+ </message>
+ <message>
+ <source>VARVALUE_COLUMN</source>
+ <translation>値</translation>
+ </message>
+ <message>
+ <source>VARVALUE_INCORRECT</source>
+ <translation>変数の値が正しくありません: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_INCORRECT</source>
+ <translation>変数の名前が正しくありません: %1</translation>
+ </message>
+ <message>
+ <source>VARNAME_EXISTS</source>
+ <translation>変数名「%1」が存在します。</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_NoteBook</name>
+ <message>
+ <source>NOTEBOOK_TITLE</source>
+ <translation>ノート</translation>
+ </message>
+ <message>
+ <source>BUT_UPDATE_STUDY</source>
+ <translation>スタディ更新(&U)</translation>
+ </message>
+ <message>
+ <source>BUT_REMOVE</source>
+ <translation>削除(&R)</translation>
+ </message>
+ <message>
+ <source>BUT_APPLY_AND_CLOSE</source>
+ <translation>適用して閉じる(&p)</translation>
+ </message>
+ <message>
+ <source>BUT_HELP</source>
+ <translation>ヘルプ(&H)</translation>
+ </message>
+ <message>
+ <source>CLOSE_CAPTION</source>
+ <translation>レジストリを閉じます</translation>
+ </message>
+ <message>
+ <source>CLOSE_DESCRIPTION</source>
+ <translation>レジストリに変更を保存しますか?</translation>
+ </message>
+ <message>
+ <source>INCORRECT_DATA</source>
+ <translation>少なくとも、一つの変数の定義が正しくありません。その設定を編集または一覧から削除して下さい。</translation>
+ </message>
+ <message>
+ <source>ERR_UPDATE_STUDY_FAILED</source>
+ <translation>スタディの更新に失敗しました!</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_DoubleSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>小数点以下%3桁の精度で(%1; %2)の範囲の数値または変数名を入力してください。</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>%3桁の精度で(%1; %2)の範囲の浮動小数点値を入力します。</translation>
+ </message>
+ </context>
+ <context>
+ <name>SalomeApp_IntSpinBox</name>
+ <message>
+ <source>VALID_RANGE_VAR_MSG</source>
+ <translation>変数名または整数値のいずれか (%1;%2) の範囲で指定します</translation>
+ </message>
+ <message>
+ <source>VALID_RANGE_NOVAR_MSG</source>
+ <translation>(%1;%2) の範囲の整数値を指定します。</translation>
+ </message>
+ </context>
+</TS>
#endif // WIN32
#include "utilities.h"
+
+#ifndef DISABLE_ORB
#include "SALOMEDSClient.hxx"
class TOOLSGUI_EXPORT ToolsGUI
const bool theValue,
void* theId );
};
+#endif
#endif // TOOLSGUI_H