X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCalc%2Fgui%2FPresentationController.hxx;h=7faa1a4dc2a922910bb9325691a37d0bc94aa04e;hb=b42caeb1c5ea15a33c4085bd2cd2bf3e61f879eb;hp=f48f8e77b5d5cda0d96a3ee4e5a1aa4082ad89e2;hpb=c55144bfb0c9d1d77af03ad9d0c34e18781a0532;p=modules%2Fmed.git diff --git a/src/MEDCalc/gui/PresentationController.hxx b/src/MEDCalc/gui/PresentationController.hxx index f48f8e77b..7faa1a4dc 100644 --- a/src/MEDCalc/gui/PresentationController.hxx +++ b/src/MEDCalc/gui/PresentationController.hxx @@ -20,7 +20,7 @@ #ifndef PRESENTATION_CONTROLLER_HXX #define PRESENTATION_CONTROLLER_HXX -#include +#include #include "MEDCALCGUI.hxx" #include "MEDEventListener_i.hxx" @@ -30,22 +30,14 @@ #include "XmedDataModel.hxx" #include +#include "WidgetPresentationParameters.hxx" -typedef struct { - enum EventType { - EVENT_VIEW_OBJECT_CONTOUR, - EVENT_VIEW_OBJECT_DEFLECTION_SHAPE, - EVENT_VIEW_OBJECT_POINT_SPRITE, - EVENT_VIEW_OBJECT_SCALAR_MAP, - EVENT_VIEW_OBJECT_SLICES, - EVENT_VIEW_OBJECT_VECTOR_FIELD - }; - int eventtype; - XmedDataObject* objectdata; - QString objectalias; -} PresentationEvent; +#include "PresentationEvent.hxx" class MEDModule; +class QDockWidget; +class MEDWidgetHelper; +class XmedConsoleDriver; class MEDCALCGUI_EXPORT PresentationController : public QObject { Q_OBJECT @@ -56,28 +48,67 @@ public: void createActions(); - MEDCALC::MEDPresentationViewMode getSelectedViewMode(); + MEDCALC::ViewModeType getSelectedViewMode() const; + MEDCALC::ColorMapType getSelectedColorMap() const; + MEDCALC::ScalarBarRangeType getSelectedScalarBarRange() const; + + void showDockWidgets(bool isVisible); + + std::string getPresTypeFromWidgetHelper(int presId) const; + + void setConsoleDriver(XmedConsoleDriver* driver) { _consoleDriver = driver; }; signals: - void presentationSignal(const PresentationEvent* event); + void presentationSignal(const PresentationEvent*); protected slots: - void OnVisualizeScalarMap(); - void OnVisualizeContour(); - void OnVisualizeVectorField(); - void OnVisualizeSlices(); - void OnVisualizeDeflectionShape(); - void OnVisualizePointSprite(); - void processWorkspaceEvent(const MEDCALC::MedEvent* event); + void onVisualizeMeshView(); + void onVisualizeScalarMap(); + void onVisualizeContour(); + void onVisualizeVectorField(); + void onVisualizeSlices(); + void onVisualizeDeflectionShape(); + void onVisualizePointSprite(); + + void onDeletePresentation(); + void onParavisDump(); + + void onPresentationSelected(int presId, const QString& presType, const QString& presName); + + void processWorkspaceEvent(const MEDCALC::MedEvent*); + void processPresentationEvent(const PresentationEvent*); private: void visualize(PresentationEvent::EventType); - void updateTreeViewWithNewPresentation(long fieldId, long presentationId); + void updateTreeViewWithNewPresentation(long dataId, long presentationId); + void updateTreeViewForPresentationRemoval(long presId); + std::string _getIconName(const std::string&); + MEDWidgetHelper * findOrCreateWidgetHelper(MEDCALC::MEDPresentationManager_ptr presManager, + int presId, const std::string& type, const std::string& name); + + QString getViewModePython() const; + QString getColorMapPython() const; + QString getScalarBarRangePython() const; + QString getMeshModePython(const int mode) const; + QString getSliceOrientationPython(const int orient) const; + + void _dealWithReplaceMode(); private: MEDModule* _salomeModule; + XmedConsoleDriver* _consoleDriver; // the same as in WorkspaceController SALOME_AppStudyEditor* _studyEditor; // borrowed to MEDModule + QDockWidget *_dockWidget; + WidgetPresentationParameters* _widgetPresentationParameters; + + // GUI needs to talk directly to the pres manager to activate a view, get some params, print low level py dump, etc ...: + static MEDCALC::MEDPresentationManager_ptr _presManager; + + // Key: presentation ID, value MEDPresentationHelper * + std::map _presHelperMap; + + MEDWidgetHelper * _currentWidgetHelper; }; #endif /* PRESENTATION_CONTROLLER_HXX */