Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis Developer Reference
Tool.h
Go to the documentation of this file.
1#ifndef Tool_h
2#define Tool_h
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12
13#include <QObject>
14
15#include <QDebug>
16#include <QPoint>
17
18class QAction;
19class QMenu;
20class QPainter;
21//class QPoint;
22class QStackedWidget;
23class QToolBar;
24
25
26namespace Isis {
27 class CubeViewport;
28 class MdiCubeViewport;
29 class RubberBandTool;
30 class ToolList;
31 class ToolPad;
33 class Workspace;
34
64
65 class Tool : public QObject {
66 Q_OBJECT
67
68 public:
69 Tool(QWidget *parent);
70
71 void addTo(ViewportMainWindow *mw);
72
73 void addTo(ToolPad *toolpad);
74
81 virtual QString menuName() const {
82 return "";
83 }
84
85
89 virtual void addTo(QMenu *menu) {};
90
91
95 virtual void addToPermanent(QToolBar *toolbar) {};
96
97 void addToActive(QToolBar *toolbar);
98
102 virtual void addTo(Workspace *ws);
103
104
111 QString toolIconDir() const {
112 return m_toolIconDir;
113 };
114
115
120 virtual void paintViewport(MdiCubeViewport *vp, QPainter *painter) {}
121
123 void setList(ToolList *currentList);
124
125 public slots:
126 void activate(bool);
127 virtual void updateTool();
129
130
131 signals:
134
135 protected slots:
136
139 virtual void rubberBandComplete() { }
140
141
146 virtual void screenPixelsChanged() {}
147
150 virtual void mouseEnter() {}
151
152 virtual void mouseMove(QPoint p);
153 virtual void mouseMove(QPoint p, Qt::MouseButton) {}
154
157 virtual void mouseLeave() {};
158
159 virtual void mouseDoubleClick(QPoint p);
160 virtual void mouseButtonPress(QPoint p, Qt::MouseButton s);
161 virtual void mouseButtonRelease(QPoint p, Qt::MouseButton s);
162
165 virtual void updateMeasure() {}
166
167
170 virtual void scaleChanged() {}
171
172
175 virtual void stretchRequested(MdiCubeViewport *, int) {}
176
177
181 void registerTool(MdiCubeViewport *viewport);
182
183
184 signals:
188
189 protected:
196 return m_cvp;
197 }
198
199
204
206
207
215 virtual QAction *toolPadAction(ToolPad *toolpad) {
216 return NULL;
217 }
218
219
227 virtual QWidget *createToolBarWidget(QStackedWidget *parent) {
228 return NULL;
229 }
230
231
237 virtual void addConnections(MdiCubeViewport *cvp) {}
238
239
245 virtual void removeConnections(MdiCubeViewport *cvp) {}
246
247
249 virtual void enableRubberBandTool();
250
252
253 private:
254 void addViewportConnections();
255 void removeViewportConnections();
256 void enableToolBar();
257 void disableToolBar();
258
259 MdiCubeViewport *m_cvp;
260 Workspace *m_workspace;
261
262 bool m_active;
263 QWidget *m_toolBarWidget;
264 QAction *m_toolPadAction;
265 QString m_toolIconDir;
266 ToolList *m_toolList;
267 };
268}
269
270#endif
Widget to display Isis cubes for qt apps.
Definition CubeViewport.h:122
Cube display widget for certain Isis MDI applications.
Definition MdiCubeViewport.h:39
Rubber banding tool.
Definition RubberBandTool.h:50
virtual void removeConnections(MdiCubeViewport *cvp)
Anytime a tool is created, you must be able to remove it's connections.
Definition Tool.h:245
Tool(QWidget *parent)
Tool constructor.
Definition Tool.cpp:27
virtual QAction * toolPadAction(ToolPad *toolpad)
Anytime a tool is created, you must setup a tool pad action with it.
Definition Tool.h:215
virtual void rubberBandComplete()
Definition Tool.h:139
void addTo(ViewportMainWindow *mw)
Adds the tool to the application.
Definition Tool.cpp:78
virtual void mouseMove(QPoint p, Qt::MouseButton)
Definition Tool.h:153
virtual void enableRubberBandTool()
Anytime a tool is created, you may use the rubber band tool.
Definition Tool.cpp:339
virtual void addTo(QMenu *menu)
Definition Tool.h:89
virtual void screenPixelsChanged()
This is called when actions change which pixels from the cube are displayed.
Definition Tool.h:146
void toolActivated()
void setList(ToolList *currentList)
Definition Tool.cpp:68
virtual QString menuName() const
Anytime a tool is created, you must give it a name for the menu.
Definition Tool.h:81
QVector< MdiCubeViewport * > CubeViewportList
A list of cubeviewports.
Definition Tool.h:203
virtual void updateTool()
Updates the tool.
Definition Tool.cpp:318
virtual void mouseDoubleClick(QPoint p)
Definition Tool.cpp:358
RubberBandTool * rubberBandTool()
Definition Tool.cpp:57
virtual QWidget * createToolBarWidget(QStackedWidget *parent)
Anytime a tool is created, you must add it to the tool bar.
Definition Tool.h:227
virtual void mouseButtonRelease(QPoint p, Qt::MouseButton s)
Resets the Warning to Nowarning when a different activity occurs on the application.
Definition Tool.cpp:380
virtual void stretchRequested(MdiCubeViewport *, int)
Definition Tool.h:175
void activate(bool)
Activates the tool.
Definition Tool.cpp:131
CubeViewportList * cubeViewportList() const
Return the list of cubeviewports.
Definition Tool.cpp:390
virtual void mouseMove(QPoint p)
Definition Tool.cpp:352
void setCubeViewport(MdiCubeViewport *cvp)
Sets the current viewport to the given cvp.
Definition Tool.cpp:160
virtual void addConnections(MdiCubeViewport *cvp)
Anytime a tool is created, you must add the connections for it.
Definition Tool.h:237
virtual void paintViewport(MdiCubeViewport *vp, QPainter *painter)
Definition Tool.h:120
virtual void updateMeasure()
Definition Tool.h:165
virtual void addToPermanent(QToolBar *toolbar)
Definition Tool.h:95
void clearWarningSignal()
void addToActive(QToolBar *toolbar)
Definition Tool.cpp:112
void registerTool(MdiCubeViewport *viewport)
Registers the tool to the viewport.
Definition Tool.cpp:327
virtual void scaleChanged()
Definition Tool.h:170
MdiCubeViewport * cubeViewport() const
Return the current cubeviewport.
Definition Tool.h:195
virtual void mouseEnter()
Definition Tool.h:150
Workspace * workspace()
Definition Tool.cpp:344
virtual void mouseButtonPress(QPoint p, Qt::MouseButton s)
Definition Tool.cpp:367
virtual void mouseLeave()
Definition Tool.h:157
void viewportChanged()
QString toolIconDir() const
returns the path to the icon directory.
Definition Tool.h:111
Allows tools to share data between each other.
Definition ToolList.h:32
Definition ToolPad.h:14
This was called the Qisis MainWindow.
Definition ViewportMainWindow.h:43
Definition Workspace.h:76
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16