pqPythonScriptEditor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: pqPythonScriptEditor.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 pqPythonScriptEditor_h
33 #define pqPythonScriptEditor_h
34 
35 #include "pqPythonModule.h"
36 
37 #include "pqCoreUtilities.h"
38 #include "pqPythonEditorActions.h"
39 
40 #include <QMainWindow>
41 
42 class QAction;
43 class QMenu;
44 
45 class pqPythonManager;
46 class pqPythonTabWidget;
47 
68 class PQPYTHON_EXPORT pqPythonScriptEditor : public QMainWindow
69 {
70  Q_OBJECT
71 
72 public:
73  explicit pqPythonScriptEditor(QWidget* parent = nullptr);
74 
80  void setSaveDialogDefaultDirectory(const QString& dir);
81 
85  void setPythonManager(pqPythonManager* manager);
86 
90  void scrollToBottom();
91 
95  void open(const QString& filename);
96 
100  void load(const QString& filename);
101 
105  void updateTrace(const QString& str);
106 
110  void stopTrace(const QString& str);
111 
115  void runCurrentTab();
116 
120  static pqPythonScriptEditor* getUniqueInstance();
121 
125  static void updateMacroList();
126 
130  static void updateScriptList();
131 
136  static void linkTo(QTextEdit* obj);
137 
141  static void bringFront();
142 
146  static QString getMacrosDir();
147 
151  static QString getScriptsDir();
152 
153 protected:
158  void closeEvent(QCloseEvent* event) override;
159 
160 private:
161  void createMenus();
162 
163  void createStatusBar();
164 
165  QMenu* fileMenu = nullptr;
166  QMenu* editMenu = nullptr;
167 
168  using ScriptActionType = pqPythonEditorActions::ScriptAction::Type;
170 
171  pqPythonTabWidget* TabWidget;
172 
173  pqPythonEditorActions Actions;
174 
178  pqPythonManager* PythonManager;
179 
183  static pqPythonScriptEditor* UniqueInstance;
184 };
185 
186 #endif
Encapsulates the multitab python editor.
Stack array using an enum as indexer.
Definition: pqPythonUtils.h:89
#define PQPYTHON_EXPORT
load
dir
pqPythonManager is a class to facilitate the use of a python interpreter by various paraview GUI comp...