// PARAVIS : ParaView wrapper SALOME module
//
-// Copyright (C) 2010-2015 CEA/DEN, EDF R&D
+// Copyright (C) 2010-2024 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include <SUIT_Desktop.h>
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
-#include <SalomeApp_Application.h> // should ultimately be a LightApp only
#include <LightApp_Application.h>
#include <QAction>
#include <pqExportReaction.h>
#include <pqSaveAnimationReaction.h>
#include <pqSaveAnimationGeometryReaction.h>
+#include <pqLoadMaterialsReaction.h>
#include <pqServerConnectReaction.h>
#include <pqServerDisconnectReaction.h>
#include <pqCameraUndoRedoReaction.h>
#include <pqAboutDialogReaction.h>
#include <pqHelpReaction.h>
#include <pqDataQueryReaction.h>
-#include <pqPythonShellReaction.h>
+//#include <pqPythonShellReaction.h>
#include <pqViewManager.h>
#include <pqViewMenuManager.h>
registerAction(SaveGeometryId, anAction);
new pqSaveAnimationGeometryReaction(anAction);
+ // Load Path Tracer Materials
+ aPixmap = resMgr->loadPixmap( "ParaView", tr("ICON_LOAD_MATERIAL"), false );
+ anAction = new QAction(QIcon(aPixmap), tr("MEN_LOAD_MATERIAL"), this);
+ anAction->setToolTip(tr("TOP_LOAD_MATERIAL"));
+ anAction->setStatusTip(tr("STB_LOAD_MATERIAL"));
+ registerAction(LoadMaterialsId, anAction);
+ new pqLoadMaterialsReaction(anAction);
+
// Connect
aPixmap = resMgr->loadPixmap( "ParaView", tr("ICON_CONNECT"), false );
anAction = new QAction(QIcon(aPixmap), tr("MEN_CONNECT"), this);
anAction->setToolTip(tr("TOP_DELETE_ALL"));
anAction->setStatusTip(tr("STB_DELETE_ALL"));
registerAction(DeleteAllId, anAction);
- new pqDeleteReaction(anAction, true);
+ new pqDeleteReaction(anAction, pqDeleteReaction::DeleteModes::ALL);
// Setting
registerAction(TimerLogId, anAction);
new pqTimerLogReaction(anAction << pqSetName("actionToolsTimerLog"));
- // Output Window
- anAction = new QAction(tr("MEN_OUTPUT_WINDOW"), this);
- anAction->setToolTip(tr("TOP_OUTPUT_WINDOW"));
- anAction->setStatusTip(tr("STB_OUTPUT_WINDOW"));
- registerAction(OutputWindowId, anAction);
- anAction << pqSetName("actionToolsOutputWindow");
- connect(anAction, SIGNAL(triggered()), pqApplicationCore::instance(), SLOT(showOutputWindow()));
-
- // Python Shell
+ // Python Shell
+ // ???
+ // No more pqPythonShellReaction class, but there is a pqPythonShell class.
+ // Is that equivalent? I don't know what to do at this stage.
anAction = new QAction(tr("MEN_PYTHON_SHELL"), this);
anAction->setToolTip(tr("TOP_PYTHON_SHELL"));
anAction->setStatusTip(tr("STB_PYTHON_SHELL"));
registerAction(PythonShellId, anAction);
+ /*
new pqPythonShellReaction(anAction << pqSetName("actionToolsPythonShell"));
+ */
//Show Trace
anAction = new QAction(tr("MEN_SHOW_TRACE"), this);
connect(anAction, SIGNAL(triggered()), this, SLOT(onShowTrace()));
registerAction(ShowTraceId, anAction);
- //Show Trace
+ //Restart Trace
anAction = new QAction(tr("MEN_RESTART_TRACE"), this);
anAction->setToolTip(tr("TOP_RESTART_TRACE"));
anAction->setStatusTip(tr("STB_RESTART_TRACE"));
// Recent Files
myRecentMenuId = createMenu( tr( "MEN_RECENT_FILES" ), aPVMnu, -1, 5 );
QMenu* aMenu = menuMgr()->findMenu( myRecentMenuId );
- pqRecentFilesMenu* aRecentFilesMenu = new pqRecentFilesMenu( *aMenu, getApp()->desktop() );
+ /*pqRecentFilesMenu* aRecentFilesMenu = */new pqRecentFilesMenu( *aMenu, getApp()->desktop() );
QList<QAction*> anActns = aMenu->actions();
for (int i = 0; i < anActns.size(); ++i)
createMenu( anActns.at(i), myRecentMenuId );
createMenu( SaveGeometryId, aPVMnu, 35 );
createMenu( separator(), aPVMnu, -1, 35 );
- createMenu( ConnectId, aPVMnu, 45 );
- createMenu( DisconnectId, aPVMnu, 45 );
+ createMenu( LoadMaterialsId, aPVMnu, 45);
createMenu( separator(), aPVMnu, -1, 45 );
+ createMenu( ConnectId, aPVMnu, 55 );
+ createMenu( DisconnectId, aPVMnu, 55 );
+ createMenu( separator(), aPVMnu, -1, 55 );
+
// --- Menu "Edit"
aPVMnu = createMenu( tr( "MEN_DESK_EDIT" ), -1, -1 );
// --- Menu "View"
aPVMnu = createMenu( tr( "MEN_DESK_VIEW" ), -1, -1 );
- /*myToolbarsMenuId = createMenu( "Toolbars", aPVMnu );
- aMenu = getMenu( myToolbarsMenuId );
- if (aMenu) {
- buildToolbarsMenu();
- connect(aMenu, SIGNAL(aboutToShow()), this, SLOT(buildToolbarsMenu()));
- }
- createMenu( separator(), aPVMnu );*/
createMenu( FullScreenId, aPVMnu );
createMenu( separator(), aToolsMnu );
createMenu( TimerLogId, aToolsMnu );
- createMenu( OutputWindowId, aToolsMnu );
createMenu( separator(), aToolsMnu );
createMenu( PythonShellId, aToolsMnu );
createMenu( ShowTraceId, aToolsMnu );
createMenu( RestartTraceId, aToolsMnu );
+ // --- Menu "Catalyst"
+ aRes = guiElements->getCatalystMenu();
+ myCatalystMenuId = createMenu( tr( "MEN_DESK_CATALYST" ), -1, -1, 100, -1, aRes);
+
// --- Menu "Help"
int aHelpMnu = createMenu( tr( "MEN_DESK_HELP" ), -1, -1 );
- int aPVHelpMnu = createMenu( tr( "ParaViS module" ), aHelpMnu, -1, 0 );
+ int aUsersGuide = createMenu( tr( "User's Guide" ), aHelpMnu, -1 );
+ int aPVHelpMnu = createMenu( tr( "ParaViS module" ), aUsersGuide, -1, 5 );
#ifdef HAS_PV_DOC
createMenu( ParaViewHelpId, aPVHelpMnu );
createMenu( separator(), aPVHelpMnu );
// -- Context menu in the pipeline browser
pqPipelineBrowserWidget * pq = guiElements->getPipelineBrowserWidget();
- pqParaViewMenuBuilders::buildPipelineBrowserContextMenu( *pq );
+ pqParaViewMenuBuilders::buildPipelineBrowserContextMenu( *(pq->contextMenu()) );
}
/*!
PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desk);
guiElements->setToolBarVisible(true);
}
-
-/*!
- \brief Returns QMenu by its id.
-*/
-QMenu* PVGUI_Module::getMenu( const int id )
-{
- QMenu* res = 0;
- //SalomeApp_Application* anApp = getApp();
- LightApp_Application* anApp = getApp();
- SUIT_Desktop* desk = anApp->desktop();
- if ( desk ){
- QtxActionMenuMgr* menuMgr = desk->menuMgr();
- res = menuMgr->findMenu( id );
- }
- return res;
-}
-
-/*!
- \brief Returns list of ParaView toolbars
-*/
-/*QList<QToolBar*> PVGUI_Module::getParaViewToolbars()
-{
- QList<QToolBar*> all_toolbars = application()->desktop()->findChildren<QToolBar*>();
- // First two toolbars has to be ignored because they are not from ParaView
- if (all_toolbars.size() > 2) {
- all_toolbars.removeFirst();
- all_toolbars.removeFirst();
- }
- return all_toolbars;
- }*/
-
-
-
-/*!
- \brief Builds a menu which referred to toolbars
-*/
-/*void PVGUI_Module::buildToolbarsMenu()
-{
- SUIT_Desktop* desk = application()->desktop();
- QMenu* aMenu = menuMgr()->findMenu( myToolbarsMenuId );
- if (aMenu) {
- aMenu->clear();
- QList<QMenu*> child_menus = aMenu->findChildren<QMenu*>();
- foreach (QMenu* menu, child_menus) {
- delete menu;
- }
- QList<QToolBar*> all_toolbars = getParaViewToolbars();
-
- // Add menus for all toolbars and actions from them.
- // This puts menu actions for all toolbars making it possible to access all
- // toolbar actions even when the toolbar are not visible.
- // I wonder if I should ignore the pqMainControlsToolbar since those actions
- // are already placed at other places.
- foreach (QToolBar* toolbar, all_toolbars) {
- QMenu* sub_menu = new QMenu(aMenu) << pqSetName(toolbar->windowTitle());
- bool added = false;
- foreach (QAction* action, toolbar->actions()) {
- if (!action->text().isEmpty()) {
- added = true;
- sub_menu->addAction(action);
- }
- }
- if (added) {
- QAction* menu_action = aMenu->addMenu(sub_menu);
- menu_action->setText(toolbar->windowTitle());
- } else {
- delete sub_menu;
- }
- }
- disconnect(aMenu, SIGNAL(aboutToShow()), this, SLOT(buildToolbarsMenu()));
- }
- }*/
-
-/*!
- \brief Create actions for ParaViS
-*/
-void PVGUI_Module::createActions()
-{
- QAction* anAction;
-
- // Save state under the module root object
- anAction = new QAction(tr("MEN_SAVE_MULTI_STATE"), this);
- connect(anAction, SIGNAL(triggered()), this, SLOT(onSaveMultiState()));
- registerAction(SaveStatePopupId, anAction);
-
- // Restore the selected state by merging with the current one
- anAction = new QAction(tr("MEN_ADD_STATE"), this);
- connect(anAction, SIGNAL(triggered()), this, SLOT(onAddState()));
- registerAction(AddStatePopupId, anAction);
-
- // Clean the current state and restore the selected one
- anAction = new QAction(tr("MEN_CLEAN_ADD_STATE"), this);
- connect(anAction, SIGNAL(triggered()), this, SLOT(onCleanAddState()));
- registerAction(CleanAndAddStatePopupId, anAction);
-
- // Rename the selected object (Object Browser)
- anAction = new QAction(tr("MEN_PARAVIS_RENAME"), this);
- connect(anAction, SIGNAL(triggered()), this, SLOT(onRename()));
- registerAction(ParaVisRenameId, anAction);
-
- // Delete the selected object (Object Browser)
- anAction = new QAction(tr("MEN_PARAVIS_DELETE"), this);
- connect(anAction, SIGNAL(triggered()), this, SLOT(onDelete()));
- registerAction(ParaVisDeleteId, anAction);
-}
-
-/*!
- \brief Create actions for ParaViS
-*/
-void PVGUI_Module::createMenus()
-{
- // "Window" - "New Window" - "ParaView view" menu
- int aWindowMenu = createMenu(tr( "MEN_DESK_WINDOW" ), -1, -1);
- int aNewWindowMenu = createMenu(tr( "MEN_DESK_NEWWINDOW"), aWindowMenu, -1, -1);
- createMenu(ParaViewNewWindowId, aNewWindowMenu);
-}