X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVGUI%2FPVGUI_Module.h;h=0b30e767f72741eb8006aa13d4bc198d7a372652;hb=866822387420d8da61654fcabf49a9e51308c507;hp=ba573470fde78904e49d7844728f40932247b4fa;hpb=f00642156c9bd6d988dadd80a566064cb947c4fd;p=modules%2Fparavis.git diff --git a/src/PVGUI/PVGUI_Module.h b/src/PVGUI/PVGUI_Module.h index ba573470..0b30e767 100644 --- a/src/PVGUI/PVGUI_Module.h +++ b/src/PVGUI/PVGUI_Module.h @@ -1,12 +1,11 @@ // PARAVIS : ParaView wrapper SALOME module // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2010-2014 CEA/DEN, EDF R&D // // 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. +// 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 @@ -23,166 +22,118 @@ // Author : Sergey ANIKIN // -/*! - \mainpage - - Insert the content of introduction page here. - - A link to the file documentation PVGUI_Module_actions.cxx - - A link to the file documentation PVGUI_Module_impl.h - - A link to the class documentation PVGUI_Module - - The class name as a text (not a link to its documentation) %PVGUI_Module - - A link to the constructor of the class PVGUI_ViewWindow#PVGUI_ViewWindow or PVGUI_Module::PVGUI_Module() - - A link to the destructor of the class PVGUI_ViewWindow#~PVGUI_ViewWindow - - A link to the member function PVGUI_ViewWindow::getVisualParameters or PVGUI_ViewWindow#getVisualParameters - - Arguments of a function should be specified only for the overloaded functions PVGUI_Module::initialize(CAM_Application*) - - A link to some enumeration values PVGUI_Module::OpenFileId and PVGUI_Module::CreateLookmarkId - - A link to a protected member variable of the class PVGUI_ViewWindow#myModel - - A link to a variable \link PVGUI_ViewWindow#myModel using another text\endlink as a link - -*/ #ifndef PVGUI_Module_H #define PVGUI_Module_H -#include +#include + +#include +#include -#include +#include class QMenu; class QDockWidget; -class LightApp_Selection; -class LightApp_SelectionMgr; -class PVGUI_ProcessModuleHelper; +class QToolBar; class vtkPVMain; class pqOptions; class pqServer; -class pqActiveServer; -class pqViewManager; +class pqTabbedMultiViewWidget; +class pqMainWindowCore; +class vtkEventQtSlotConnect; +class pqPythonScriptEditor; +class pqPVApplicationCore; +class pqDataRepresentation; +class pqRepresentation; + +class PyConsole_Interp; -class PVGUI_Module : public LightApp_Module +class PVGUI_Module : public SalomeApp_Module { Q_OBJECT //! Menu actions enum { // Menu "File" - OpenFileId, - - LoadStateId, - SaveStateId, - - SaveDataId, - SaveScreenshotId, - ExportId, - - SaveAnimationId, - SaveGeometryId, - - ConnectId, - DisconnectId, - - // Menu "Edit" - UndoId, - RedoId, - - CameraUndoId, - CameraRedoId, - - ChangeInputId, - DeleteId, - DeleteAllId, - - InteractId, - SelectCellsOnId, - SelectPointsOnId, - SelectCellsThroughId, - SelectPointsThroughId, - SelectBlockId, - - SettingsId, - ViewSettingsId, - - // Menu "View" - ResetCameraId, - PositiveXId, - NegativeXId, - PositiveYId, - NegativeYId, - PositiveZId, - NegativeZId, - - ShowCenterId, - ResetCenterId, - PickCenterId, - ShowColorLegendId, - EditColorMapId, - ResetRangeId, - - AnimationInspectorId, - AnimationViewId, - ComparativeViewInspectorId, - SelectionInspectorId, - LookmarkBrowserId, - LookmarkInspectorId, - ObjectInspectorId, - PipelineBrowserId, - StatisticsViewId, - - // Menu "Sources" - // TODO... - - // Menu "Filters" - // TODO... - - // Menu "Animation" - FirstFrameId, - PreviousFrameId, - PlayId, - NextFrameId, - LastFrameId, - LoopId, - - // Menu "Tools" - CreateCustomFilterId, - ManageCustomFiltersId, - CreateLookmarkId, - ManageLinksId, - AddCameraLinkId, - ManagePluginsExtensionsId, - DumpWidgetNamesId, - RecordTestId, - RecordTestScreenshotId, - PlayTestId, - MaxWindowSizeId, - TimerLogId, - OutputWindowId, - PythonShellId, - - // Menu "Help" - AboutParaViewId, - ParaViewHelpId, - EnableTooltipsId - - /* - lgLoadFile = 931, //!< load text file - lgSaveFile, //!< save text file - lgDisplayLine, //!< display selected line - lgEraseLine, //!< erase selected line - lgEditLine, //!< edit selected line - lgAddLine, //!< insert new line - lgDelLine, //!< delete selected line - lgClear //!< clear all contents - */ + 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: @@ -192,42 +143,44 @@ public: virtual void initialize( CAM_Application* ); virtual void windows( QMap& ) const; - //virtual LightApp_Selection* createSelection() const; + pqTabbedMultiViewWidget* getMultiViewManager() const; - pqViewManager* getMultiViewManager() const; + virtual QString engineIOR() const; - virtual bool eventFilter( QObject*, QEvent* ); + void openFile(const char* theName); + void executeScript(const char *script); + void saveParaviewState(const char* theFileName); + void loadParaviewState(const char* theFileName); + void clearParaviewState(); - //! Compares the contents of the window with the given reference image, returns true if they "match" within some tolerance - bool compareView( const QString& ReferenceImage, double Threshold, - ostream& Output, const QString& TempDirectory ); + QString getTraceString(); + void saveTrace(const char* theName); -protected: - //virtual CAM_DataModel* createDataModel(); + pqServer* getActiveServer(); + + virtual void createPreferences(); + + virtual void contextMenuPopup(const QString& theClient, QMenu* theMenu, QString& theTitle); + +public slots: + void onImportFromVisu(QString theEntry); private: //! Initialize ParaView if not yet done (once per session) static bool pvInit(); - //! Shutdown ParaView, should be called on application exit - static void pvShutdown(); //! Create actions for ParaView GUI operations void pvCreateActions(); - //! Create menus for ParaView GUI operations - //! duplicating menus in pqMainWindow ParaView class + //! Create menus for ParaView GUI operations duplicating menus in pqMainWindow ParaView class void pvCreateMenus(); - //! Create toolbars for ParaView GUI operations - //! duplicating toolbars in pqMainWindow ParaView class + //! Create toolbars for ParaView GUI operations duplicating toolbars in pqMainWindow ParaView class void pvCreateToolBars(); //! Create dock widgets for ParaView widgets void setupDockWidgets(); - //! Create dock widgets context menus - void setupDockWidgetsContextMenu(); - //! Save states of dockable ParaView widgets void saveDockWidgetsState(); @@ -239,39 +192,82 @@ private: //! Returns QMenu object for a given menu id QMenu* getMenu( const int ); + + //! Discover help project files from the resources. + QString getHelpFileName(); -private slots: - void onUndoLabel( const QString& ); - void onRedoLabel( const QString& ); + void deleteTemporaryFiles(); - void onCameraUndoLabel( const QString& ); - void onCameraRedoLabel( const QString& ); + //QList getParaViewToolbars(); - void onDeleteAll(); + //! Create actions for ParaViS + void createActions(); - void onSelectionModeChanged( int mode ); + //! Create menus for ParaViS + void createMenus(); - void onShowCenterAxisChanged( bool ); + //! Load selected state + void loadSelectedState(bool toClear); - void setTimeRanges( double, double ); + //! Get list of embedded macros files + QStringList getEmbeddedMacrosList(); - void onPlaying( bool ); - - void onAddCameraLink(); - - void onHelpAbout(); + //! update macros state + void updateMacros(); + + //! store visibility of the common dockable windows (OB, PyConsole, ... etc.) + void storeCommonWindowsState(); + + //! restore visibility of the common dockable windows (OB, PyConsole, ... etc.) + void restoreCommonWindowsState(); + + //! 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: - void showHelpForProxy( const QString& proxy ); - void makeAssistant(); - void assistantError( const QString& err ); + void showHelpForProxy( const QString&, const QString& ); void onPreAccept(); void onPostAccept(); void endWaitCursor(); + // void buildToolbarsMenu(); + + //void showParaViewHelp(); + //void showHelp(const QString& url); + + void onFinishedAddingServer(pqServer*); + void onDataRepresentationCreated(pqDataRepresentation*); + void onDataRepresentationUpdated(); + void onVariableChanged(pqVariableType, const QString); + void onRepresentationChanged(pqRepresentation*); + + void onStartProgress(); + void onEndProgress(); + void onShowTrace(); + void onRestartTrace(); + + void onNewParaViewWindow(); + + void onSaveMultiState(); + void onAddState(); + void onCleanAddState(); + + void onRename(); + void onDelete(); + public slots: virtual bool activateModule( SUIT_Study* ); virtual bool deactivateModule( SUIT_Study* ); + virtual void onApplicationClosed( SUIT_Application* ); + virtual void studyClosed( SUIT_Study* ); + +protected slots: + virtual void onModelOpened(); + +protected: + void timerEvent(QTimerEvent *event); private: class pqImplementation; @@ -280,8 +276,30 @@ private: int mySelectionControlsTb; int mySourcesMenuId; int myFiltersMenuId; + int myToolbarsMenuId; + int myMacrosMenuId; + int myRecentMenuId; + + typedef QMap WgMap; + WgMap myDockWidgets; + WgMap myToolbars; + WgMap myToolbarBreaks; + QList myMenus; + + typedef QMap DockWindowMap; + DockWindowMap myCommonMap; + + QStringList myTemporaryFiles; + + QtMsgHandler myOldMsgHandler; + + vtkEventQtSlotConnect *VTKConnect; + + pqPythonScriptEditor* myTraceWindow; + + int myStateCounter; - QList myDockWidgets; + static pqPVApplicationCore* MyCoreApp; }; #endif // PVGUI_Module_H