From de96309ac0c989bf52dedd950b4108b22d11027b Mon Sep 17 00:00:00 2001 From: Adrien Bruneton Date: Thu, 13 Feb 2014 11:49:21 +0100 Subject: [PATCH] Porting to PV4.1 + disabling MatplotlibMathTextUtilities is now made in the ParaView patch + reviewed trace start/stop mechanism to be compatible with SALOME Python interpreter + added new panel from PV4.1 (color map editor, etc ...) --- src/PVGUI/CMakeLists.txt | 4 +- src/PVGUI/PVGUI_Module.cxx | 189 ++++++++++++++------------ src/PVGUI/PVGUI_Module.h | 163 +++++++++++----------- src/PVGUI/PVGUI_Module_actions.cxx | 2 +- src/PVGUI/PVGUI_Module_widgets.cxx | 42 ++++-- src/PVGUI/resources/PARAVIS_msg_en.ts | 18 ++- src/PVGUI/resources/PARAVIS_msg_fr.ts | 14 +- src/PVGUI/resources/PARAVIS_msg_ja.ts | 8 ++ 8 files changed, 247 insertions(+), 193 deletions(-) diff --git a/src/PVGUI/CMakeLists.txt b/src/PVGUI/CMakeLists.txt index 5f95142b..60ac2364 100644 --- a/src/PVGUI/CMakeLists.txt +++ b/src/PVGUI/CMakeLists.txt @@ -71,7 +71,7 @@ SET(_moc_HEADERS SET(_other_HEADERS PVGUI_OutputWindowAdapter.h PVGUI_Tools.h - PVGUI_MatplotlibMathTextUtilities.h + #PVGUI_MatplotlibMathTextUtilities.h PV_I.h PARAVIS_Gen_i.hh PV_Events.h @@ -137,7 +137,7 @@ SET(_other_SOURCES PVGUI_OutputWindowAdapter.cxx PVGUI_Tools.cxx PVGUI_ParaViewSettingsPane.cxx - PVGUI_MatplotlibMathTextUtilities.cxx + #PVGUI_MatplotlibMathTextUtilities.cxx PARAVIS_Gen_i.cc PV_Tools.cxx ) diff --git a/src/PVGUI/PVGUI_Module.cxx b/src/PVGUI/PVGUI_Module.cxx index 884032f7..aca93f41 100644 --- a/src/PVGUI/PVGUI_Module.cxx +++ b/src/PVGUI/PVGUI_Module.cxx @@ -65,6 +65,7 @@ #include #include #include +#include #include #include @@ -110,17 +111,14 @@ #include #include #include -//#include #include "pqInterfaceTracker.h" #include #include #include #include -//#include #include #include #include -#include #include #include #include @@ -129,37 +127,15 @@ #include #include #include -#include #include #include #include -#include #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog) -/* - * Make sure all the kits register their classes with vtkInstantiator. - * Since ParaView uses Tcl wrapping, all of VTK is already compiled in - * anyway. The instantiators will add no more code for the linker to - * collect. - */ - -//#include -//#include -//#include -//#include -//#include -//#include -//#include - -//#include -//#include -//#include -//#include - #include #include #include @@ -370,16 +346,14 @@ PVGUI_Module::~PVGUI_Module() { } - - /*! \brief Initialize module. Creates menus, prepares context menu, etc. \param app SALOME GUI application instance */ void PVGUI_Module::initialize( CAM_Application* app ) { - //VTN: Disable conflict with python initialization for MatPlot. - PVGUI_MatplotlibMathTextUtilities::Disable(); + // [ABN]: patched in ParaView's sources. + // PVGUI_MatplotlibMathTextUtilities::Disable(); SalomeApp_Module::initialize( app ); @@ -431,7 +405,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) // * adds support for standard paraview views. pgm->addInterface(new pqStandardViewModules(pgm)); - pgm->addInterface(new pqStandardSummaryPanelImplementation(pgm)); + //pgm->addInterface(new pqStandardSummaryPanelImplementation(pgm)); pgm->addInterface(new pqStandardPropertyWidgetInterface(pgm)); // Load plugins distributed with application. @@ -443,6 +417,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) new pqViewFrameActionsBehavior(this); new pqSpreadSheetVisibilityBehavior(this); new pqPipelineContextMenuBehavior(this); + new pqObjectPickingBehavior(this); // NEW in 4.1 new pqDefaultViewBehavior(this); new pqAlwaysConnectedBehavior(this); new pqPVNewSourceBehavior(this); @@ -458,7 +433,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) new pqPersistentMainWindowStateBehavior(aDesktop); new pqObjectPickingBehavior(aDesktop); new pqCollaborationBehavior(this); - new pqMultiServerBehavior(this); + //new pqMultiServerBehavior(this); new pqViewStreamingBehavior(this); // Setup quick-launch shortcuts. @@ -471,8 +446,8 @@ void PVGUI_Module::initialize( CAM_Application* app ) QList::iterator i; for (i = currentDocks.begin(); i != currentDocks.end(); ++i) { if(!activeDocks.contains(*i)) { - myDockWidgets[*i] = false; // hidden by default - (*i)->hide(); + myDockWidgets[*i] = false; // hidden by default + (*i)->hide(); } } @@ -481,7 +456,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) QList::iterator im; for (im = currentMenus.begin(); im != currentMenus.end(); ++im) { if(!activeMenus.contains(*im)) { - myMenus.append(*im); + myMenus.append(*im); } } @@ -516,7 +491,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) // we need to start trace after connection is done connect(pqApplicationCore::instance()->getObjectBuilder(), SIGNAL(finishedAddingServer(pqServer*)), - this, SLOT(onFinishedAddingServer(pqServer*))); + this, SLOT(onFinishedAddingServer(pqServer*))); connect(pqApplicationCore::instance()->getObjectBuilder(), SIGNAL(dataRepresentationCreated(pqDataRepresentation*)), this, SLOT(onDataRepresentationCreated(pqDataRepresentation*))); @@ -524,9 +499,9 @@ void PVGUI_Module::initialize( CAM_Application* app ) SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr(); bool isStop = aResourceMgr->booleanValue( "PARAVIS", "stop_trace", false ); - // start timer to activate trace in a proper moment - if(!isStop) - startTimer( 1000 ); + // start a timer to schedule the trace start asap: + if(!isStop) + startTimer( 0 ); this->VTKConnect = vtkEventQtSlotConnect::New(); @@ -536,17 +511,17 @@ void PVGUI_Module::initialize( CAM_Application* app ) if(pvs) { vtkPVProgressHandler* ph = pvs->GetProgressHandler(); if(ph) { - this->VTKConnect->Connect(ph, vtkCommand::StartEvent, - this, SLOT(onStartProgress())); - this->VTKConnect->Connect(ph, vtkCommand::EndEvent, - this, SLOT(onEndProgress())); + this->VTKConnect->Connect(ph, vtkCommand::StartEvent, + this, SLOT(onStartProgress())); + this->VTKConnect->Connect(ph, vtkCommand::EndEvent, + this, SLOT(onEndProgress())); } } } connect(&pqActiveObjects::instance(), - SIGNAL(representationChanged(pqRepresentation*)), - this, SLOT(onRepresentationChanged(pqRepresentation*))); + SIGNAL(representationChanged(pqRepresentation*)), + this, SLOT(onRepresentationChanged(pqRepresentation*))); } void PVGUI_Module::onStartProgress() @@ -638,27 +613,30 @@ void PVGUI_Module::onVariableChanged(pqVariableType t, const QString) { void PVGUI_Module::execPythonCommand(const QString& cmd, bool inSalomeConsole) { - if ( PyInterp_Dispatcher::Get()->IsBusy() ) return; if ( inSalomeConsole ) { + if ( PyInterp_Dispatcher::Get()->IsBusy() ) return; SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >(SUIT_Session::session()->activeApplication()); PyConsole_Console* pyConsole = app->pythonConsole(); if (pyConsole) pyConsole->exec(cmd); } - else { - pqPythonManager* manager = qobject_cast + else + { + pqPythonManager* manager = qobject_cast ( pqApplicationCore::instance()->manager( "PYTHON_MANAGER" ) ); - if ( manager ) { - pqPythonDialog* pyDiag = manager->pythonShellDialog(); - if ( pyDiag ) { - pqPythonShell* shell = pyDiag->shell(); - if ( shell ) { - shell->executeScript(cmd); - } - } + if ( manager ) + { + pqPythonDialog* pyDiag = manager->pythonShellDialog(); + if ( pyDiag ) + { + pqPythonShell* shell = pyDiag->shell(); + if ( shell ) { + shell->executeScript(cmd); + } + } + } } - } } /*! @@ -667,7 +645,18 @@ void PVGUI_Module::execPythonCommand(const QString& cmd, bool inSalomeConsole) void PVGUI_Module::timerEvent(QTimerEvent* te ) { #ifndef WNT - execPythonCommand("from paraview import smtrace\nsmtrace.start_trace()\n", false); + if ( PyInterp_Dispatcher::Get()->IsBusy() ) + { + // Reschedule for later + MESSAGE("interpreter busy -> rescheduling trace start."); + startTimer(500); + } + else + { + MESSAGE("about to start trace...."); + execPythonCommand("from paraview import smtrace;smtrace.start_trace()", false); + MESSAGE("trace STARTED...."); + } killTimer( te->timerId() ); #endif } @@ -893,7 +882,7 @@ bool PVGUI_Module::activateModule( SUIT_Study* study ) for (int i = 0; i < anActns.size(); ++i) { QAction* a = anActns.at(i); if(a) - a->setVisible(true); + a->setVisible(true); } } @@ -926,7 +915,7 @@ bool PVGUI_Module::deactivateModule( SUIT_Study* study ) for (int i = 0; i < anActns.size(); ++i) { QAction* a = anActns.at(i); if(a) - a->setVisible(false); + a->setVisible(false); } } @@ -1068,6 +1057,29 @@ void PVGUI_Module::executeScript(const char *script) #endif } +///** +// * Debug function printing out the given interpreter's execution context +// */ +//void printInterpContext(PyInterp_Interp * interp ) +//{ +// // Extract __smtraceString from interpreter's context +// const PyObject* ctxt = interp->getExecutionContext(); +// +// PyObject* lst = PyDict_Keys((PyObject *)ctxt); +// Py_ssize_t siz = PyList_GET_SIZE(lst); +// for (Py_ssize_t i = 0; i < siz; i++) +// { +// PyObject * elem = PyList_GetItem(lst, i); +// if (PyString_Check(elem)) +// { +// std::cout << "At pos:" << i << ", " << PyString_AsString(elem) << std::endl; +// } +// else +// std::cout << "At pos:" << i << ", not a string!" << std::endl; +// } +// Py_XDECREF(lst); +//} + /*! \brief Returns trace string */ @@ -1077,24 +1089,22 @@ QString PVGUI_Module::getTraceString() { QString traceString; #ifndef WNT - pqPythonManager* manager = qobject_cast( - pqApplicationCore::instance()->manager("PYTHON_MANAGER")); - if (manager) { - pqPythonDialog* pyDiag = manager->pythonShellDialog(); - if (pyDiag) { - pyDiag->runString("from paraview import smtrace\n" - "__smtraceString = smtrace.get_trace_string()\n"); - pyDiag->shell()->makeCurrent(); - PyObject* main_module = PyImport_AddModule((char*)"__main__"); - PyObject* global_dict = PyModule_GetDict(main_module); - PyObject* string_object = PyDict_GetItemString(global_dict, "__smtraceString"); - char* string_ptr = string_object ? PyString_AsString(string_object) : 0; - if (string_ptr) { + { + PyLockWrapper lck; // Acquire GIL + + const char * code = "from paraview import smtrace;" + "__smtraceString = smtrace.get_trace_string()"; + PyRun_SimpleString(code); + // Now get the value of __smtraceString + PyObject* main_module = PyImport_AddModule((char*)"__main__"); + PyObject* global_dict = PyModule_GetDict(main_module); + PyObject* string_object = PyDict_GetItemString(global_dict, "__smtraceString"); + char* string_ptr = string_object ? PyString_AsString(string_object) : 0; + if (string_ptr) { traceString = string_ptr; - } - pyDiag->shell()->releaseControl(); } - } + } // release GIL + if ((!traceString.isNull()) && traceString.length() != 0) { int aPos = traceString.indexOf(MYReplaceStr); while (aPos != -1) { @@ -1264,7 +1274,7 @@ void PVGUI_Module::createPreferences() //rnv: imp 21712: [CEA 581] Preference to display legend by default int aDispColoreLegend = addPreference( tr( "PREF_SHOW_COLOR_LEGEND" ), aParaVisSettingsTab, - LightApp_Preferences::Bool, "PARAVIS", "show_color_legend"); + LightApp_Preferences::Bool, "PARAVIS", "show_color_legend"); } /*! @@ -1311,27 +1321,27 @@ void PVGUI_Module::contextMenuPopup(const QString& theClient, QMenu* theMenu, QS else { // Try to get state object _PTR(SObject) stateSObj = - studyDS->FindObjectID(entry.toLatin1().constData()); + studyDS->FindObjectID(entry.toLatin1().constData()); if (!stateSObj) { - return; + return; } // Check local id _PTR(GenericAttribute) anAttr; if (!stateSObj->FindAttribute(anAttr, "AttributeLocalID")) { - return; + return; } _PTR(AttributeLocalID) anID(anAttr); if (anID->Value() == PVSTATEID) { - // Paraview state object - theMenu->addSeparator(); - theMenu->addAction(action(AddStatePopupId)); - theMenu->addAction(action(CleanAndAddStatePopupId)); - theMenu->addSeparator(); - theMenu->addAction(action(ParaVisRenameId)); - theMenu->addAction(action(ParaVisDeleteId)); + // Paraview state object + theMenu->addSeparator(); + theMenu->addAction(action(AddStatePopupId)); + theMenu->addAction(action(CleanAndAddStatePopupId)); + theMenu->addSeparator(); + theMenu->addAction(action(ParaVisRenameId)); + theMenu->addAction(action(ParaVisDeleteId)); } } } @@ -1620,8 +1630,8 @@ void PVGUI_Module::loadSelectedState(bool toClear) } else { SUIT_MessageBox::critical(getApp()->desktop(), - tr("ERR_ERROR"), - tr("ERR_STATE_CANNOT_BE_RESTORED")); + tr("ERR_ERROR"), + tr("ERR_STATE_CANNOT_BE_RESTORED")); } } @@ -1637,7 +1647,7 @@ void PVGUI_Module::onRepresentationChanged(pqRepresentation*) { for (int i = 0; i < aWidget.size() ; i++ ) { if( aWidget[i] ) { connect( aWidget[i], SIGNAL ( variableChanged ( pqVariableType, const QString ) ), - this, SLOT(onVariableChanged( pqVariableType, const QString) ), Qt::UniqueConnection ); + this, SLOT(onVariableChanged( pqVariableType, const QString) ), Qt::UniqueConnection ); } } } @@ -1669,5 +1679,4 @@ extern "C" { PVGUI_EXPORT char* getModuleVersion() { return (char*)PARAVIS_VERSION_STR; } - } diff --git a/src/PVGUI/PVGUI_Module.h b/src/PVGUI/PVGUI_Module.h index cf760389..b56fc118 100644 --- a/src/PVGUI/PVGUI_Module.h +++ b/src/PVGUI/PVGUI_Module.h @@ -47,6 +47,7 @@ class pqPVApplicationCore; class pqDataRepresentation; class pqRepresentation; +class PyConsole_Interp; class PVGUI_Module : public SalomeApp_Module { @@ -54,85 +55,85 @@ class PVGUI_Module : public SalomeApp_Module //! Menu actions enum { // Menu "File" - OpenFileId, - - LoadStateId, - SaveStateId, - - SaveDataId, - SaveScreenshotId, - ExportId, - - SaveAnimationId, - SaveGeometryId, - - ConnectId, - DisconnectId, - - // Menu "Edit" - UndoId, - RedoId, - - CameraUndoId, - CameraRedoId, - - FindDataId, - ChangeInputId, - IgnoreTimeId, - DeleteId, - DeleteAllId, - - SettingsId, - ViewSettingsId, - - // Menu "View" - FullScreenId, - - // Menu "Animation" - FirstFrameId, - PreviousFrameId, - PlayId, - NextFrameId, - LastFrameId, - LoopId, - - // Menu "Tools" - CreateCustomFilterId, - ManageCustomFiltersId, - CreateLookmarkId, - ManageLinksId, - AddCameraLinkId, - ManagePluginsExtensionsId, - DumpWidgetNamesId, - RecordTestId, - RecordTestScreenshotId, - PlayTestId, - MaxWindowSizeId, - CustomWindowSizeId, - TimerLogId, - OutputWindowId, - PythonShellId, - ShowTraceId, - RestartTraceId, - - // Menu "Help" - AboutParaViewId, - ParaViewHelpId, - EnableTooltipsId, - - // Menu "Window" - "New Window" - ParaViewNewWindowId, - - // "Save state" ParaVis module root object popup - SaveStatePopupId, - - // "Add state" and "Reload state" popups - AddStatePopupId, - CleanAndAddStatePopupId, - - // "Rename" and "Delete" popups (Object Browser) - ParaVisRenameId, - ParaVisDeleteId + OpenFileId, + + LoadStateId, + SaveStateId, + + SaveDataId, + SaveScreenshotId, + ExportId, + + SaveAnimationId, + SaveGeometryId, + + ConnectId, + DisconnectId, + + // Menu "Edit" + UndoId, + RedoId, + + CameraUndoId, + CameraRedoId, + + FindDataId, + ChangeInputId, + IgnoreTimeId, + DeleteId, + DeleteAllId, + + SettingsId, + ViewSettingsId, + + // Menu "View" + FullScreenId, + + // Menu "Animation" + FirstFrameId, + PreviousFrameId, + PlayId, + NextFrameId, + LastFrameId, + LoopId, + + // Menu "Tools" + CreateCustomFilterId, + ManageCustomFiltersId, + CreateLookmarkId, + ManageLinksId, + AddCameraLinkId, + ManagePluginsExtensionsId, + DumpWidgetNamesId, + RecordTestId, + RecordTestScreenshotId, + PlayTestId, + MaxWindowSizeId, + CustomWindowSizeId, + TimerLogId, + OutputWindowId, + PythonShellId, + ShowTraceId, + RestartTraceId, + + // Menu "Help" + AboutParaViewId, + ParaViewHelpId, + EnableTooltipsId, + + // Menu "Window" - "New Window" + ParaViewNewWindowId, + + // "Save state" ParaVis module root object popup + SaveStatePopupId, + + // "Add state" and "Reload state" popups + AddStatePopupId, + CleanAndAddStatePopupId, + + // "Rename" and "Delete" popups (Object Browser) + ParaVisRenameId, + ParaVisDeleteId }; public: @@ -217,8 +218,8 @@ private: //! restore visibility of the common dockable windows (OB, PyConsole, ... etc.) void restoreCommonWindowsState(); - //! run Python command - void execPythonCommand(const QString& cmd, bool inSalomeConsole = false); + //! run Python command (either in SALOME's Python interpreter, or in ParaView's Python's interpreter) + void execPythonCommand(const QString& cmd, bool inSalomeConsole=false); private slots: diff --git a/src/PVGUI/PVGUI_Module_actions.cxx b/src/PVGUI/PVGUI_Module_actions.cxx index ff751c69..beee3a52 100644 --- a/src/PVGUI/PVGUI_Module_actions.cxx +++ b/src/PVGUI/PVGUI_Module_actions.cxx @@ -39,7 +39,7 @@ #include #include -#include +// #include #include #include #include diff --git a/src/PVGUI/PVGUI_Module_widgets.cxx b/src/PVGUI/PVGUI_Module_widgets.cxx index b15c923c..617680f4 100644 --- a/src/PVGUI/PVGUI_Module_widgets.cxx +++ b/src/PVGUI/PVGUI_Module_widgets.cxx @@ -46,12 +46,12 @@ #include #include #include -//#include #include #include #include #include -#include +#include +#include #include #include #include @@ -77,6 +77,7 @@ #include #include #include +#include class ResizeHelper : public pqPVAnimationWidget { @@ -211,14 +212,22 @@ void PVGUI_Module::setupDockWidgets() desk->tabifyDockWidget(animationViewDock, statisticsViewDock); - // Selection view - QDockWidget* selectionInspectorDock = new QDockWidget( tr( "TTL_SELECTION_INSPECTOR" ), desk ); - selectionInspectorDock->setObjectName("selectionInspectorDock"); - selectionInspectorDock->setAllowedAreas( Qt::AllDockWidgetAreas ); - desk->addDockWidget( Qt::LeftDockWidgetArea, selectionInspectorDock ); - pqSelectionInspectorPanel* aSelInspector = new pqSelectionInspectorWidget(selectionInspectorDock); - selectionInspectorDock->setWidget(aSelInspector); - myDockWidgets[selectionInspectorDock] = false; // hidden by default + // Selection inspector + QDockWidget* selectionDisplayDock = new QDockWidget( tr( "TTL_SELECTION_INSPECTOR" ), desk ); + selectionDisplayDock->setObjectName("selectionInspectorDock"); + selectionDisplayDock->setAllowedAreas( Qt::AllDockWidgetAreas ); + desk->addDockWidget( Qt::LeftDockWidgetArea, selectionDisplayDock ); + pqFindDataSelectionDisplayFrame* aSelInspector = new pqFindDataSelectionDisplayFrame(selectionDisplayDock); + selectionDisplayDock->setWidget(aSelInspector); + myDockWidgets[selectionDisplayDock] = false; // hidden by default + + // Multi-block inspector + QDockWidget* multiBlockInspectorPanelDock = new QDockWidget( tr( "TTL_MUTLI_BLOCK_INSPECTOR" ), desk ); + multiBlockInspectorPanelDock->setObjectName("multiBlockInspectorPanelDock"); + desk->addDockWidget( Qt::LeftDockWidgetArea, multiBlockInspectorPanelDock ); + pqMultiBlockInspectorPanel* mbi_panel = new pqMultiBlockInspectorPanel( multiBlockInspectorPanelDock ); + multiBlockInspectorPanelDock->setWidget(mbi_panel); + myDockWidgets[multiBlockInspectorPanelDock] = false; // hidden by default // Comparative View QDockWidget* comparativePanelDock = new QDockWidget( tr( "TTL_COMPARATIVE_VIEW_INSPECTOR" ), desk ); @@ -236,6 +245,15 @@ void PVGUI_Module::setupDockWidgets() collaborationPanelDock->setWidget(collaborationPanel); desk->addDockWidget(Qt::RightDockWidgetArea, collaborationPanelDock); myDockWidgets[collaborationPanelDock] = false; // hidden by default + + // Color map editor + QDockWidget* colorMapEditorDock = new QDockWidget( tr( "TTL_COLOR_MAP_EDITOR" ), desk ); + colorMapEditorDock->setObjectName("colorMapEditorDock"); + desk->addDockWidget( Qt::LeftDockWidgetArea, colorMapEditorDock ); + pqColorMapEditor* cmed_panel = new pqColorMapEditor( colorMapEditorDock ); + colorMapEditorDock->setWidget(cmed_panel); + myDockWidgets[colorMapEditorDock] = false; // hidden by default + // Memory inspector dock QDockWidget* memoryInspectorDock = new QDockWidget(tr( "TTL_MEMORY_INSPECTOR" ), desk); @@ -280,9 +298,11 @@ void PVGUI_Module::setupDockWidgets() statisticsViewDock->hide(); comparativePanelDock->hide(); animationViewDock->hide(); - selectionInspectorDock->hide(); + multiBlockInspectorPanelDock->hide(); + selectionDisplayDock->hide(); collaborationPanelDock->hide(); memoryInspectorDock->hide(); + colorMapEditorDock->hide(); } /*! diff --git a/src/PVGUI/resources/PARAVIS_msg_en.ts b/src/PVGUI/resources/PARAVIS_msg_en.ts index 83fe4e61..086956c6 100644 --- a/src/PVGUI/resources/PARAVIS_msg_en.ts +++ b/src/PVGUI/resources/PARAVIS_msg_en.ts @@ -201,6 +201,14 @@ TTL_OBJECT_INSPECTOR Properties + + TTL_MUTLI_BLOCK_INSPECTOR + Multi-block Inspector + + + TTL_COLOR_MAP_EDITOR + Color Map Editor + TTL_DISPLAY Display @@ -211,7 +219,7 @@ TTL_STATISTICS_VIEW - Statistics View + Statistics Inspector TTL_ANIMATION_INSPECTOR @@ -235,17 +243,17 @@ TTL_SELECTION_INSPECTOR - Selection Inspector + Selection Display Inspector - + TTL_COLLABORATIVE_DOCK Collaboration Panel - + TTL_MEMORY_INSPECTOR Memory Inspector - + TOP_OPEN_FILE Open Paraview File diff --git a/src/PVGUI/resources/PARAVIS_msg_fr.ts b/src/PVGUI/resources/PARAVIS_msg_fr.ts index 93d657b5..6ade59b1 100644 --- a/src/PVGUI/resources/PARAVIS_msg_fr.ts +++ b/src/PVGUI/resources/PARAVIS_msg_fr.ts @@ -195,16 +195,24 @@ PVGUI_Module PREF_SHOW_COLOR_LEGEND - Show Color Legend + Afficher la légende couleur TTL_PIPELINE_BROWSER - Navigateur des conduites + Navigateur du pipeline TTL_OBJECT_INSPECTOR Inspecteur d'objets + + TTL_MUTLI_BLOCK_INSPECTOR + Navigateur multi-blocs + + + TTL_COLOR_MAP_EDITOR + Editeur de carte de couleurs + TTL_DISPLAY Affichage @@ -215,7 +223,7 @@ TTL_STATISTICS_VIEW - Vue Statistique + Navigateur de statistiques TTL_ANIMATION_INSPECTOR diff --git a/src/PVGUI/resources/PARAVIS_msg_ja.ts b/src/PVGUI/resources/PARAVIS_msg_ja.ts index 0474842c..fcf678c7 100644 --- a/src/PVGUI/resources/PARAVIS_msg_ja.ts +++ b/src/PVGUI/resources/PARAVIS_msg_ja.ts @@ -201,6 +201,14 @@ TTL_OBJECT_INSPECTOR オブジェクト インスペクター + + TTL_MUTLI_BLOCK_INSPECTOR + Multi-block inspector + + + TTL_COLOR_MAP_EDITOR + Color Map Editor + TTL_DISPLAY 表示 -- 2.39.2