X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVGUI%2FPVGUI_Module.cxx;h=9f8165a3d920b50b2e90149527a26c644a0771d2;hb=2c657676cc5d7be83aedffbf8da5391469c4408e;hp=ce1390e573e3050ec99f9a9bd1188e0b723e4db8;hpb=7044f1bd20ad2646ee6d6cceb1911f58930f65d4;p=modules%2Fparavis.git diff --git a/src/PVGUI/PVGUI_Module.cxx b/src/PVGUI/PVGUI_Module.cxx index ce1390e5..9f8165a3 100644 --- a/src/PVGUI/PVGUI_Module.cxx +++ b/src/PVGUI/PVGUI_Module.cxx @@ -20,6 +20,8 @@ // // File : PVGUI_Module.cxx +#define PARAVIS_MODULE_NAME "PARAVIS" + #include // E.A. must be included before Python.h to fix compilation on windows #ifdef HAVE_FINITE #undef HAVE_FINITE // VSR: avoid compilation warning on Linux : "HAVE_FINITE" redefined @@ -27,9 +29,9 @@ #include // Python first #include "PVGUI_Module.h" -#ifdef PARAVIS_WITH_FULL_CORBA -# include "PARAVIS_Gen_i.hh" -#endif +//#ifdef PARAVIS_WITH_FULL_CORBA +//# include "PARAVIS_Gen_i.hh" +//#endif #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog) #include CORBA_SERVER_HEADER(SALOMEDS) @@ -41,8 +43,10 @@ #include "PVGUI_ParaViewSettingsPane.h" #include "PVViewer_GUIElements.h" #include "PVViewer_EngineWrapper.h" +#include "PVGUI_DataModel.h" // SALOME Includes +#include #include #include #include @@ -56,7 +60,8 @@ #include #include -#include +#include +#include // should ultimately be a LightApp only #include #include #include @@ -131,13 +136,16 @@ // TO REMOVE: #include +#include + //---------------------------------------------------------------------------- PVGUI_Module* ParavisModule = 0; -PARAVIS_ORB::PARAVIS_Gen_var PVGUI_Module::MyEngine; +PVSERVER_ORB::PVSERVER_Gen_var PVGUI_Module::MyEngine; /*! \mainpage + TODO TODO update this:

Building and installing PARAVIS

As any other SALOME module, PARAVIS requires PARAVIS_ROOT_DIR environment variable to be set to PARAVIS @@ -206,13 +214,13 @@ PARAVIS_ORB::PARAVIS_Gen_var PVGUI_Module::MyEngine; _PTR(SComponent) ClientFindOrCreateParavisComponent(_PTR(Study) theStudyDocument) { - _PTR(SComponent) aSComponent = theStudyDocument->FindComponent("PARAVIS"); + _PTR(SComponent) aSComponent = theStudyDocument->FindComponent("PVSERVER"); if (!aSComponent) { _PTR(StudyBuilder) aStudyBuilder = theStudyDocument->NewBuilder(); aStudyBuilder->NewCommand(); int aLocked = theStudyDocument->GetProperties()->IsLocked(); if (aLocked) theStudyDocument->GetProperties()->SetLocked(false); - aSComponent = aStudyBuilder->NewComponent("PARAVIS"); + aSComponent = aStudyBuilder->NewComponent("PVSERVER"); _PTR(GenericAttribute) anAttr = aStudyBuilder->FindOrCreateAttribute(aSComponent, "AttributeName"); _PTR(AttributeName) aName (anAttr); @@ -224,7 +232,7 @@ ClientFindOrCreateParavisComponent(_PTR(Study) theStudyDocument) CORBA::Object_var objVarN = NamingService->Resolve("/Kernel/ModulCatalog"); SALOME_ModuleCatalog::ModuleCatalog_var Catalogue = SALOME_ModuleCatalog::ModuleCatalog::_narrow(objVarN); - SALOME_ModuleCatalog::Acomponent_var Comp = Catalogue->GetComponent( "PARAVIS" ); + SALOME_ModuleCatalog::Acomponent_var Comp = Catalogue->GetComponent( "PVSERVER" ); if (!Comp->_is_nil()) { aName->SetValue(Comp->componentusername()); } @@ -259,7 +267,7 @@ void paravisCleanUp() \brief Constructor. Sets the default name for the module. */ PVGUI_Module::PVGUI_Module() - : SalomeApp_Module( "PARAVIS" ), + : SalomeApp_Module( PARAVIS_MODULE_NAME ), mySelectionControlsTb( -1 ), mySourcesMenuId( -1 ), myFiltersMenuId( -1 ), @@ -304,17 +312,30 @@ PVGUI_Module::~PVGUI_Module() delete myInitTimer; } -PARAVIS_ORB::PARAVIS_Gen_var PVGUI_Module::GetCPPEngine() +PVViewer_EngineWrapper * PVGUI_Module::GetEngine() +{ + return PVViewer_EngineWrapper::GetInstance(); +} + +PVSERVER_ORB::PVSERVER_Gen_var PVGUI_Module::GetCPPEngine() { // initialize PARAVIS module engine (load, if necessary) if ( CORBA::is_nil( MyEngine ) ) { Engines::EngineComponent_var comp = - SalomeApp_Application::lcc()->FindOrLoad_Component( "FactoryServer", "PARAVIS" ); - MyEngine = PARAVIS_ORB::PARAVIS_Gen::_narrow( comp ); - } + SalomeApp_Application::lcc()->FindOrLoad_Component( "FactoryServer", "PVSERVER" ); + MyEngine = PVSERVER_ORB::PVSERVER_Gen::_narrow( comp ); + } return MyEngine; } +/*! + \brief Create data model. + \return module specific data model +*/ +CAM_DataModel* PVGUI_Module::createDataModel() +{ + return new PVGUI_DataModel( this ); +} pqPVApplicationCore * PVGUI_Module::GetPVApplication() { @@ -327,7 +348,7 @@ pqPVApplicationCore * PVGUI_Module::GetPVApplication() */ void PVGUI_Module::initialize( CAM_Application* app ) { - SalomeApp_Module::initialize( app ); + LightApp_Module::initialize( app ); // Create ParaViS actions createActions(); @@ -343,12 +364,12 @@ void PVGUI_Module::initialize( CAM_Application* app ) } */ - SalomeApp_Application* anApp = getApp(); + LightApp_Application* anApp = getApp(); SUIT_Desktop* aDesktop = anApp->desktop(); // Initialize ParaView client and associated behaviors // and connect to externally launched pvserver - PVViewer_ViewManager::ParaviewInitApp(aDesktop, 0); // VSR: temporary, to make PARAVIS compilable + PVViewer_ViewManager::ParaviewInitApp(aDesktop, anApp->logWindow()); myGuiElements = PVViewer_GUIElements::GetInstance(aDesktop); // Remember current state of desktop toolbars @@ -359,11 +380,14 @@ void PVGUI_Module::initialize( CAM_Application* app ) // Behaviors and connection must be instanciated *after* widgets are in place // In PARAVIS module we do not wait for PVViewer_ViewWindow to be instanciated to have this: PVViewer_ViewManager::ParaviewInitBehaviors(true, aDesktop); - PVViewer_ViewManager::ConnectToExternalPVServer(aDesktop); pvCreateActions(); - pvCreateToolBars(); pvCreateMenus(); + pvCreateToolBars(); + + // Connect after toolbar creation, etc ... as some activations of the toolbars is triggered + // by the ServerConnection event: + PVViewer_ViewManager::ConnectToExternalPVServer(aDesktop); QList activeDocks = aDesktop->findChildren(); QList activeMenus = aDesktop->findChildren(); @@ -414,7 +438,7 @@ void PVGUI_Module::initialize( CAM_Application* app ) updateMacros(); SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr(); - bool isStop = aResourceMgr->booleanValue( "PARAVIS", "stop_trace", false ); + bool isStop = aResourceMgr->booleanValue( PARAVIS_MODULE_NAME, "stop_trace", false ); if(!isStop) { // Start a timer to schedule asap: @@ -524,11 +548,11 @@ void PVGUI_Module::windows( QMap& m ) const */ void PVGUI_Module::showView( bool toShow ) { - SalomeApp_Application* anApp = getApp(); + LightApp_Application* anApp = getApp(); PVViewer_ViewManager* viewMgr = dynamic_cast( anApp->getViewManager( PVViewer_Viewer::Type(), false ) ); if ( !viewMgr ) { - viewMgr = new PVViewer_ViewManager( anApp->activeStudy(), anApp->desktop(), 0 ); // VSR: temporary, to make PARAVIS compilable + viewMgr = new PVViewer_ViewManager( anApp->activeStudy(), anApp->desktop(), anApp->logWindow() ); anApp->addViewManager( viewMgr ); connect( viewMgr, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ), anApp, SLOT( onCloseView( SUIT_ViewManager* ) ) ); @@ -612,7 +636,7 @@ bool PVGUI_Module::activateModule( SUIT_Study* study ) storeCommonWindowsState(); - bool isDone = SalomeApp_Module::activateModule( study ); + bool isDone = LightApp_Module::activateModule( study ); if ( !isDone ) return false; showView( true ); @@ -622,12 +646,12 @@ bool PVGUI_Module::activateModule( SUIT_Study* study ) if ( myToolbarsMenuId != -1 ) menuMgr()->show(myToolbarsMenuId); // Update the various menus with the content pre-loaded in myGuiElements - QMenu* srcMenu = menuMgr()->findMenu( mySourcesMenuId ); - myGuiElements->updateSourcesMenu(srcMenu); - QMenu* filtMenu = menuMgr()->findMenu( myFiltersMenuId ); - myGuiElements->updateFiltersMenu(filtMenu); - QMenu* macMenu = menuMgr()->findMenu( myMacrosMenuId ); - myGuiElements->updateMacrosMenu(macMenu); +// QMenu* srcMenu = menuMgr()->findMenu( mySourcesMenuId ); +// myGuiElements->updateSourcesMenu(srcMenu); +// QMenu* filtMenu = menuMgr()->findMenu( myFiltersMenuId ); +// myGuiElements->updateFiltersMenu(filtMenu); +// QMenu* macMenu = menuMgr()->findMenu( myMacrosMenuId ); +// myGuiElements->updateMacrosMenu(macMenu); setMenuShown( true ); setToolShown( true ); @@ -714,7 +738,7 @@ bool PVGUI_Module::deactivateModule( SUIT_Study* study ) restoreCommonWindowsState(); - return SalomeApp_Module::deactivateModule( study ); + return LightApp_Module::deactivateModule( study ); } @@ -762,7 +786,7 @@ void PVGUI_Module::studyClosed(SUIT_Study* study) { clearParaviewState(); - SalomeApp_Module::studyClosed(study); + LightApp_Module::studyClosed(study); } /*! @@ -774,9 +798,9 @@ void PVGUI_Module::onModelOpened() if(!studyDS) { return; } - - _PTR(SComponent) paravisComp = - studyDS->FindComponent(GetCPPEngine()->ComponentDataType()); + + _PTR(SComponent) paravisComp = + studyDS->FindComponent(PARAVIS_MODULE_NAME); if(!paravisComp) { return; } @@ -796,7 +820,7 @@ void PVGUI_Module::onModelOpened() } /*! - \brief Returns IOR of current engine +\brief Returns IOR of current engine */ QString PVGUI_Module::engineIOR() const { @@ -971,19 +995,21 @@ void PVGUI_Module::createPreferences() { // Paraview settings tab int aParaViewSettingsTab = addPreference( tr( "TIT_PVIEWSETTINGS" ) ); + setPreferenceProperty(aParaViewSettingsTab, "stretch", false ); - int aPanel = addPreference(QString(), aParaViewSettingsTab, LightApp_Preferences::UserDefined, "PARAVIS", ""); + int aPanel = addPreference(QString(), aParaViewSettingsTab, LightApp_Preferences::UserDefined, PARAVIS_MODULE_NAME, ""); + setPreferenceProperty(aPanel, "content", (qint64)(new PVGUI_ParaViewSettingsPane())); // Paravis settings tab int aParaVisSettingsTab = addPreference( tr( "TIT_PVISSETTINGS" ) ); - addPreference( tr( "PREF_STOP_TRACE" ), aParaVisSettingsTab, LightApp_Preferences::Bool, "PARAVIS", "stop_trace"); + addPreference( tr( "PREF_STOP_TRACE" ), aParaVisSettingsTab, LightApp_Preferences::Bool, PARAVIS_MODULE_NAME, "stop_trace"); - addPreference( tr( "PREF_NO_EXT_PVSERVER" ), aParaVisSettingsTab, LightApp_Preferences::Bool, "PARAVIS", "no_ext_pv_server"); + addPreference( tr( "PREF_NO_EXT_PVSERVER" ), aParaVisSettingsTab, LightApp_Preferences::Bool, PARAVIS_MODULE_NAME, "no_ext_pv_server"); int aSaveType = addPreference(tr( "PREF_SAVE_TYPE_LBL" ), aParaVisSettingsTab, LightApp_Preferences::Selector, - "PARAVIS", "savestate_type"); + PARAVIS_MODULE_NAME, "savestate_type"); QList aIndices; QStringList aStrings; aIndices<<0<<1<<2; @@ -999,8 +1025,8 @@ void PVGUI_Module::createPreferences() */ void PVGUI_Module::contextMenuPopup(const QString& theClient, QMenu* theMenu, QString& theTitle) { - SalomeApp_Module::contextMenuPopup(theClient, theMenu, theTitle); - + LightApp_Module::contextMenuPopup(theClient, theMenu, theTitle); + // Check if we are in Object Browser SUIT_DataBrowser* ob = getApp()->objectBrowser(); bool isOBClient = (ob && theClient == ob->popupClientType()); @@ -1014,22 +1040,22 @@ void PVGUI_Module::contextMenuPopup(const QString& theClient, QMenu* theMenu, QS aSelectionMgr->selectedObjects(aListIO); if (aListIO.Extent() == 1 && aListIO.First()->hasEntry()) { QString entry = QString(aListIO.First()->getEntry()); - + // Get active study - SalomeApp_Study* activeStudy = + SalomeApp_Study* activeStudy = dynamic_cast(getApp()->activeStudy()); if(!activeStudy) { return; } - // Get SALOMEDS client study + // Get SALOMEDS client study _PTR(Study) studyDS = activeStudy->studyDS(); if(!studyDS) { return; } - QString paravisDataType(GetCPPEngine()->ComponentDataType()); - if(activeStudy && activeStudy->isComponent(entry) && + QString paravisDataType(PARAVIS_MODULE_NAME); + if(activeStudy && activeStudy->isComponent(entry) && activeStudy->componentDataType(entry) == paravisDataType) { // ParaViS module object theMenu->addSeparator(); @@ -1037,12 +1063,12 @@ void PVGUI_Module::contextMenuPopup(const QString& theClient, QMenu* theMenu, QS } else { // Try to get state object - _PTR(SObject) stateSObj = + _PTR(SObject) stateSObj = studyDS->FindObjectID(entry.toLatin1().constData()); if (!stateSObj) { return; } - + // Check local id _PTR(GenericAttribute) anAttr; if (!stateSObj->FindAttribute(anAttr, "AttributeLocalID")) { @@ -1050,7 +1076,7 @@ void PVGUI_Module::contextMenuPopup(const QString& theClient, QMenu* theMenu, QS } _PTR(AttributeLocalID) anID(anAttr); - + if (anID->Value() == PVSTATEID) { // Paraview state object theMenu->addSeparator(); @@ -1100,9 +1126,9 @@ void PVGUI_Module::onSaveMultiState() if(!studyDS) { return; } - + _PTR(SComponent) paravisComp = - studyDS->FindComponent(GetCPPEngine()->ComponentDataType()); + studyDS->FindComponent(PARAVIS_MODULE_NAME); if(!paravisComp) { return; } @@ -1268,8 +1294,8 @@ void PVGUI_Module::onDelete() void PVGUI_Module::onPushTraceTimer() { -// MESSAGE("onPushTraceTimer(): Pushing trace to engine..."); - GetCPPEngine()->PutPythonTraceStringToEngine(getTraceString().toStdString().c_str()); + //MESSAGE("onPushTraceTimer(): Pushing trace to engine..."); + GetEngine()->PutPythonTraceStringToEngine(getTraceString().toStdString().c_str()); } /*!