// -*- c++ -*- /*========================================================================= Program: Visualization Toolkit Module: pqSierraPlotToolsManager.h Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ /*------------------------------------------------------------------------- Copyright 2009 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. -------------------------------------------------------------------------*/ #ifndef pqSierraPlotToolsManager_h #define pqSierraPlotToolsManager_h #include class QAction; class pqPipelineSource; class pqPlotter; class pqServer; class pqView; class pqPlotVariablesDialog; class QListWidgetItem; class vtkSMProxy; /// This singleton class manages the state associated with the packaged /// visualizations provided class pqSierraPlotToolsManager : public QObject { Q_OBJECT; public: static pqSierraPlotToolsManager *instance(); ~pqSierraPlotToolsManager(); /// Get the action for the respective operation. QAction *actionDataLoadManager(); QAction *actionPlotVars(); QAction *actionSolidMesh(); QAction *actionWireframeSolidMesh(); QAction *actionWireframeAndBackMesh(); QAction *actionPlotOverTime(); QAction *actionToggleBackgroundBW(); QAction *actionPlotDEBUG(); QAction *actionHoverGlobalVarVsTimeLabel(); /// Convenience function for getting the current server. pqServer *getActiveServer(); /// Convenience function for getting the main window. QWidget *getMainWindow(); /// Get the window used for viewing the mesh. pqView *getMeshView(); /// Get the window used for viewing plots. pqView *getPlotView(); /// Get the reader objects. Returns NULL if that reader was never created. pqPipelineSource *getMeshReader(); pqPipelineSource *getParticlesReader(); /// Get plotting object. Returns NULL if that object was never created. pqPipelineSource *getPlotFilter(); /// Get plotting object. Returns NULL if that object was never created. pqPipelineSource *getGlobalVariablesPlotOverTimeFilter(); /// Get plotting object. Returns NULL if that object was never created. pqPipelineSource *getSelectionPlotOverTimeFilter(); /// Convenience function for destroying a pipeline object and all of its /// consumers. static void destroyPipelineSourceAndConsumers(pqPipelineSource *source); signals: void createdPlotGUI(); void createPlot(); public slots: void showDataLoadManager(); void checkActionEnabled(); void showSolidMesh(); void showWireframeSolidMesh(); void showWireframeAndBackMesh(); void toggleBackgroundBW(); void actOnPlotSelection(); void slotVariableDeselectionByName(QString varStr); void slotVariableSelectionByName(QString varStr); void slotPlotDialogAccepted(); void slotUseParaViewGUIToSelectNodesCheck(); protected: // Creates a plot over time. // returns true if plot successfuly created, false otherwise; virtual bool createPlotOverTime(); /// Finds a pipeline source with the given SM XML name. If there is more than /// one, the first is returned. virtual pqPipelineSource *findPipelineSource(const char *SMName); /// Finds a view appropriate for the data of the source and port given, /// constrained to those views with the given type. virtual pqView *findView(pqPipelineSource *source, int port, const QString &viewType); virtual bool setupGUIForVars(); virtual void setupPlotMenu(); virtual void showPlotGUI(pqPlotVariablesDialog *); private: pqSierraPlotToolsManager(QObject *p); class pqInternal; pqInternal *Internal; pqSierraPlotToolsManager(const pqSierraPlotToolsManager &); // Not implemented void operator=(const pqSierraPlotToolsManager &); // Not implemented }; #endif //pqSierraPlotToolsManager_h