ParaView
pqPythonManager.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: pqPythonManager.h
5 
6  Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
7  All rights reserved.
8 
9  ParaView is a free software; you can redistribute it and/or modify it
10  under the terms of the ParaView license version 1.2.
11 
12  See License_v1.2.txt for the full ParaView license.
13  A copy of this license can be obtained by contacting
14  Kitware Inc.
15  28 Corporate Drive
16  Clifton Park, NY 12065
17  USA
18 
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 ========================================================================*/
32 #ifndef pqPythonManager_h
33 #define pqPythonManager_h
34 
35 #include "pqPythonModule.h"
36 #include <QObject>
37 
38 class QWidget;
39 class QToolBar;
40 class pqServer;
41 class pqPythonDialog;
42 
55 class PQPYTHON_EXPORT pqPythonManager : public QObject
56 {
57  Q_OBJECT
58 
59 public:
60  pqPythonManager(QObject* parent=NULL);
61  virtual ~pqPythonManager();
62 
63  // Description:
64  // Returns true if the interpreter has been initialized.
65  bool interpreterIsInitialized();
66 
67  // Description:
68  // Return the python shell dialog. This will cause the interpreter to be initialized
69  // if it has not been already.
70  pqPythonDialog* pythonShellDialog();
71 
72  // Description:
73  // Add a widget to be given macro actions. QActions representing script macros
74  // will be added to the widget. This could be a QToolBar, QMenu, or other type
75  // of widget.
76  void addWidgetForRunMacros(QWidget* widget);
77  void addWidgetForEditMacros(QWidget* widget);
78  void addWidgetForDeleteMacros(QWidget* widget);
79 
80  // Description:
81  // Show the python editor with the trace in it.
82  // If txt is empty, the editor will obtain the state from active vtkSMTrace
83  // instance, if any.
84  void editTrace(const QString& txt=QString(), bool update=false);
85 
86  // Description:
87  // Save the macro in ParaView configuration and update widget automatically
88  void addMacro(const QString& fileName);
89 
90  // Description:
91  // Invalidate the macro list, so the menu/toolbars are updated according to
92  // the content of the Macros directories...
93  void updateMacroList();
94 
95 signals:
96  void paraviewPythonModulesImported();
97 
98 
99 public slots:
100  // Description:
101  // Executes the given script. If the python interpreter hasn't been initialized
102  // yet it will be initialized.
103  void executeScript(const QString& filename);
104 
105  // Description:
106  // Launch python editor to edit the macro
107  void editMacro(const QString& fileName);
108 
109  // Description:
110  // Print on the status bar "Python Trace is currently ON" if currently tracing...
111  void updateStatusMessage();
112 
113 protected slots:
114  // Description:
115  // Whenever we are about to disconnect from a server, we "reset" the Python
116  // shell, if created. This will ensure all Python objects created by the shell
117  // are released.
118  void onRemovingServer(pqServer* server);
119 
120 protected:
121  QString getTraceString();
122 
123 private:
124  class pqInternal;
125  pqInternal* Internal;
126 
127 };
128 #endif
pqPythonManager is a class to facilitate the use of a python interpreter by various paraview GUI comp...
pqServer (should be renamed to pqSession) is a pqServerManagerModelItem subclass that represents a vt...
Definition: pqServer.h:62