Isis 3 Programmer Reference
Isis::Tool Class Reference

Base class for the Qisis tools. More...

#include <Tool.h>

Inheritance diagram for Isis::Tool:
Inheritance graph
Collaboration diagram for Isis::Tool:
Collaboration graph

Public Slots

void activate (bool)
 Activates the tool. More...
 
virtual void updateTool ()
 Updates the tool. More...
 
void setCubeViewport (MdiCubeViewport *cvp)
 Sets the current viewport to the given cvp. More...
 

Signals

void clearWarningSignal ()
 
void toolActivated ()
 
void viewportChanged ()
 

Public Member Functions

 Tool (QWidget *parent)
 Tool constructor. More...
 
void addTo (ViewportMainWindow *mw)
 Adds the tool to the application. More...
 
void addTo (ToolPad *toolpad)
 Adds the tool to the toolpad. More...
 
virtual QString menuName () const
 Anytime a tool is created, you must give it a name for the menu. More...
 
virtual void addTo (QMenu *menu)
 
virtual void addToPermanent (QToolBar *toolbar)
 
void addToActive (QToolBar *toolbar)
 
virtual void addTo (Workspace *ws)
 Adds the given workspace to the cubeviewport list. More...
 
QString toolIconDir () const
 returns the path to the icon directory. More...
 
virtual void paintViewport (MdiCubeViewport *vp, QPainter *painter)
 
RubberBandToolrubberBandTool ()
 
void setList (ToolList *currentList)
 

Protected Types

typedef QVector< MdiCubeViewport * > CubeViewportList
 A list of cubeviewports. More...
 

Protected Slots

virtual void rubberBandComplete ()
 
virtual void screenPixelsChanged ()
 This is called when actions change which pixels from the cube are displayed. More...
 
virtual void mouseEnter ()
 
virtual void mouseMove (QPoint p)
 
virtual void mouseMove (QPoint p, Qt::MouseButton)
 
virtual void mouseLeave ()
 

Protected Member Functions

virtual void mouseDoubleClick (QPoint p)
 
virtual void mouseButtonPress (QPoint p, Qt::MouseButton s)
 
virtual void mouseButtonRelease (QPoint p, Qt::MouseButton s)
 Resets the Warning to Nowarning when a different activity occurs on the application. More...
 
virtual void updateMeasure ()
 
virtual void scaleChanged ()
 
virtual void stretchRequested (MdiCubeViewport *, int)
 
void registerTool (MdiCubeViewport *viewport)
 Registers the tool to the viewport. More...
 
MdiCubeViewportcubeViewport () const
 Return the current cubeviewport. More...
 
CubeViewportListcubeViewportList () const
 Return the list of cubeviewports. More...
 
virtual QActiontoolPadAction (ToolPad *toolpad)
 Anytime a tool is created, you must setup a tool pad action with it. More...
 
virtual QWidgetcreateToolBarWidget (QStackedWidget *parent)
 Anytime a tool is created, you must add it to the tool bar. More...
 
virtual void addConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must add the connections for it. More...
 
virtual void removeConnections (MdiCubeViewport *cvp)
 Anytime a tool is created, you must be able to remove it's connections. More...
 
virtual void enableRubberBandTool ()
 Anytime a tool is created, you may use the rubber band tool. More...
 
Workspaceworkspace ()
 

Private Member Functions

void addViewportConnections ()
 Makes all the connections for the tool. More...
 
void removeViewportConnections ()
 Removes all the connections from the tool. More...
 
void enableToolBar ()
 Enables entire tool bar. More...
 
void disableToolBar ()
 Disables entire tool bar. More...
 

Private Attributes

MdiCubeViewportm_cvp
 current cubeviewport More...
 
Workspacem_workspace
 
bool m_active
 Is the tool acitve? More...
 
QWidgetm_toolBarWidget
 The tool bar on which this tool resides. More...
 
QActionm_toolPadAction
 The tool pad on which this tool resides. More...
 
QString m_toolIconDir
 The pathway to the icon directory. More...
 
ToolListm_toolList
 

Detailed Description

Base class for the Qisis tools.

Author
????-??-?? Jeff Anderson
History:
2007-04-30 Tracie Sucharski, Added Qpainter to parameters for the paintViewport method. This will allow the tools to use the CubeViewport painter rather than creating a new one which causes warnings in Qt4.
History:
2007-09-11 Steven Lambright - Added code to handle the rubber band tool
History:
2007-11-19 Stacy Alley - Added code for the new ViewportMainWindow class which is used to keep track of the size and location of the qisis windows.
History:
2009-03-27 Noah Hilt, Steven Lambright - Removed old rubber band and changed cubeViewportList to call the Workspace viewport list.
History:
2010-03-18 Sharmila Prasad - Reset warning status when a different tool is chosen, done on mouse double click, press or release
History:
2010-05-24 Eric Hyer - setCubeViewport is now public
History:
2010-06-26 Eric Hyer - Now uses MdiCubeViewport
History:
2010-11-08 Eric Hyer - Added connects and disconnects for cubeViewport's new mouseMove signal
History:
2012-02-27 Tracie Sucharski - Added the signal, toolActivated, to enable a tool to connect and respond when user selects a given tool using the toolPad button.

Definition at line 67 of file Tool.h.

Member Typedef Documentation

◆ CubeViewportList

A list of cubeviewports.

Definition at line 205 of file Tool.h.

Constructor & Destructor Documentation

◆ Tool()

Isis::Tool::Tool ( QWidget parent)

Tool constructor.

Parameters
parent

Definition at line 27 of file Tool.cpp.

References Isis::FileName::expanded(), m_active, m_cvp, m_toolBarWidget, m_toolIconDir, and m_toolPadAction.

Member Function Documentation

◆ activate

◆ addConnections()

virtual void Isis::Tool::addConnections ( MdiCubeViewport cvp)
inlineprotectedvirtual

Anytime a tool is created, you must add the connections for it.

Parameters
cvp

Reimplemented in Isis::WindowTool, and Isis::TrackTool.

Definition at line 239 of file Tool.h.

Referenced by addViewportConnections().

◆ addTo() [1/4]

◆ addTo() [2/4]

void Isis::Tool::addTo ( ToolPad toolpad)

Adds the tool to the toolpad.

Parameters
toolpad

Definition at line 98 of file Tool.cpp.

References activate(), Isis::ToolPad::addAction(), m_toolPadAction, and toolPadAction().

◆ addTo() [3/4]

◆ addTo() [4/4]

void Isis::Tool::addTo ( Workspace ws)
virtual

Adds the given workspace to the cubeviewport list.

Parameters
ws

Reimplemented in Isis::WindowTool, Isis::SpecialPixelTool, Isis::FileTool, and Isis::EditTool.

Definition at line 45 of file Tool.cpp.

References registerTool(), and setCubeViewport().

◆ addToActive()

void Isis::Tool::addToActive ( QToolBar toolbar)
Parameters
toolbar

Definition at line 112 of file Tool.cpp.

References createToolBarWidget(), disableToolBar(), and m_toolBarWidget.

Referenced by addTo(), and Isis::Workspace::Workspace().

◆ addToPermanent()

virtual void Isis::Tool::addToPermanent ( QToolBar toolbar)
inlinevirtual
Parameters
toolbar

Reimplemented in Isis::WindowTool, Isis::SpecialPixelTool, Isis::HelpTool, Isis::FileTool, Isis::BlinkTool, and Isis::AdvancedTrackTool.

Definition at line 97 of file Tool.h.

Referenced by addTo(), and Isis::Workspace::Workspace().

◆ addViewportConnections()

void Isis::Tool::addViewportConnections ( )
private

Makes all the connections for the tool.

Definition at line 187 of file Tool.cpp.

References addConnections(), enableRubberBandTool(), m_cvp, m_toolPadAction, mouseButtonPress(), mouseButtonRelease(), mouseDoubleClick(), mouseMove(), and screenPixelsChanged().

Referenced by activate(), and setCubeViewport().

◆ createToolBarWidget()

virtual QWidget* Isis::Tool::createToolBarWidget ( QStackedWidget *  parent)
inlineprotectedvirtual

◆ cubeViewport()

MdiCubeViewport* Isis::Tool::cubeViewport ( ) const
inlineprotected

Return the current cubeviewport.

Returns
CubeViewport*

Definition at line 197 of file Tool.h.

References m_cvp.

Referenced by Isis::TrackTool::addConnections(), Isis::WindowTool::addConnections(), Isis::StretchTool::advancedStretchChanged(), Isis::FindTool::centerLinkedViewports(), Isis::StretchTool::changeStretch(), Isis::BandTool::changeView(), Isis::BandTool::copyLinkedViewports(), Isis::StretchTool::deleteFromCube(), Isis::FileTool::discard(), enableToolBar(), Isis::FileTool::exportToList(), Isis::FileTool::exportView(), Isis::StatisticsTool::getStatistics(), Isis::FindTool::handleRecordClicked(), Isis::EditTool::LineToPoints(), Isis::StretchTool::loadStretchFromCube(), Isis::TrackTool::locateCursor(), Isis::SunShadowTool::mouseButtonPress(), Isis::EditTool::mouseButtonRelease(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FeatureNomenclatureTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::MatchTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::RubberBandTool::mouseButtonRelease(), Isis::StretchTool::mouseButtonRelease(), Isis::AdvancedTrackTool::mouseLeave(), Isis::SunShadowTool::mouseMove(), Isis::TrackTool::mouseMove(), Isis::RubberBandTool::mouseMove(), Isis::ScatterPlotTool::mouseMove(), Isis::FindTool::paintViewport(), Isis::RubberBandTool::paintViewport(), Isis::SunShadowTool::paintViewport(), Isis::FileTool::print(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::EditTool::redoEdit(), Isis::FindTool::refresh(), Isis::HistogramTool::refreshPlot(), Isis::SpatialPlotTool::refreshPlot(), Isis::SpectralPlotTool::refreshPlot(), Isis::TrackTool::removeConnections(), Isis::WindowTool::removeConnections(), Isis::RubberBandTool::repaint(), Isis::WindowTool::resizeWindows(), Isis::EditTool::rubberBandComplete(), Isis::HistogramTool::rubberBandComplete(), Isis::MeasureTool::rubberBandComplete(), Isis::StretchTool::rubberBandComplete(), Isis::ZoomTool::rubberBandComplete(), Isis::FileTool::save(), Isis::FileTool::saveAs(), Isis::FileTool::saveAsCubeByOption(), Isis::FileTool::saveAsReducedCube(), Isis::FileTool::saveInfo(), Isis::StretchTool::saveStretchToCube(), Isis::BandTool::setBandBin(), Isis::BandTool::setList(), Isis::StretchTool::setStretchAcrossBands(), Isis::StretchTool::setStretchAllViewports(), Isis::StretchTool::showAdvancedDialog(), Isis::ScatterPlotTool::showNewScatterPlotConfig(), Isis::StretchTool::stretchChanged(), Isis::StretchTool::stretchGlobal(), Isis::StretchTool::stretchGlobalAllBands(), Isis::StretchTool::stretchRegional(), Isis::EditTool::undoEdit(), Isis::StretchTool::updateAdvStretchDialogforAll(), Isis::StretchTool::updateHistograms(), Isis::TrackTool::updateLabels(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::AbstractPlotTool::updateTool(), Isis::BandTool::updateTool(), Isis::BlinkTool::updateTool(), Isis::EditTool::updateTool(), Isis::FileTool::updateTool(), Isis::FindTool::updateTool(), Isis::SpecialPixelTool::updateTool(), Isis::StretchTool::updateTool(), Isis::SunShadowTool::updateTool(), Isis::WindowTool::updateTool(), Isis::ZoomTool::updateTool(), Isis::AbstractPlotTool::viewportsToPlot(), Isis::EditTool::writeToCube(), Isis::ZoomTool::zoomBy(), Isis::ZoomTool::zoomFit(), Isis::ZoomTool::zoomFitHeight(), Isis::ZoomTool::zoomFitWidth(), and Isis::ZoomTool::zoomManual().

◆ cubeViewportList()

Tool::CubeViewportList * Isis::Tool::cubeViewportList ( ) const
protected

Return the list of cubeviewports.

Returns
CubeViewportList*

Definition at line 390 of file Tool.cpp.

References Isis::Workspace::cubeViewportList().

Referenced by Isis::BlinkTool::advance(), Isis::SpecialPixelTool::apply(), Isis::FindTool::centerLinkedViewports(), Isis::WindowTool::changeCursor(), Isis::FileTool::closeAll(), Isis::BandTool::copyAllViewports(), Isis::BandTool::copyLinkedViewports(), Isis::MatchTool::createPoint(), Isis::BlinkTool::eventFilter(), Isis::FeatureNomenclatureTool::featuresIdentified(), Isis::FeatureNomenclatureTool::findMissingNomenclature(), Isis::FeatureNomenclatureTool::findNomenclatureStateChanged(), Isis::FindTool::handleLinkClicked(), Isis::WindowTool::linkWindows(), Isis::RubberBandTool::mouseButtonRelease(), Isis::RubberBandTool::mouseMove(), Isis::QnetTool::openGround(), Isis::ControlNetTool::paintAllViewports(), Isis::MatchTool::paintAllViewports(), Isis::StereoTool::paintAllViewports(), Isis::QnetTool::paintAllViewports(), Isis::FindTool::refresh(), Isis::ScatterPlotTool::repaintViewports(), Isis::AbstractPlotTool::repaintViewports(), Isis::WindowTool::resizeWindows(), Isis::BlinkTool::reverse(), Isis::ZoomTool::rubberBandComplete(), Isis::MatchTool::serialNumberList(), Isis::ControlNetTool::setControlNet(), Isis::FeatureNomenclatureTool::setFontColor(), Isis::FeatureNomenclatureTool::setFontSize(), Isis::FeatureNomenclatureTool::setShowApprovedOnly(), Isis::StretchTool::setStretchAllViewports(), Isis::FeatureNomenclatureTool::setVectorType(), Isis::StretchTool::stretchGlobalAllViewports(), Isis::BlinkTool::toggleLink(), Isis::WindowTool::unlinkWindows(), Isis::MeasureTool::updateMeasure(), Isis::AdvancedTrackTool::updateRow(), Isis::BlinkTool::updateTool(), Isis::FindTool::updateTool(), Isis::WindowTool::updateTool(), Isis::AbstractPlotTool::viewportsToPlot(), Isis::ZoomTool::zoomBy(), Isis::ZoomTool::zoomFit(), Isis::ZoomTool::zoomFitHeight(), Isis::ZoomTool::zoomFitWidth(), and Isis::ZoomTool::zoomManual().

◆ disableToolBar()

void Isis::Tool::disableToolBar ( )
private

Disables entire tool bar.

Definition at line 285 of file Tool.cpp.

References m_toolBarWidget.

Referenced by activate(), and addToActive().

◆ enableRubberBandTool()

void Isis::Tool::enableRubberBandTool ( )
protectedvirtual

Anytime a tool is created, you may use the rubber band tool.

Enable the use of the rubberband tool.

Reimplemented in Isis::ZoomTool, Isis::StereoTool, Isis::SpectralPlotTool, Isis::SpatialPlotTool, Isis::RubberBandTool, Isis::MeasureTool, and Isis::HistogramTool.

Definition at line 339 of file Tool.cpp.

References Isis::RubberBandTool::disable().

Referenced by addViewportConnections().

◆ enableToolBar()

void Isis::Tool::enableToolBar ( )
private

Enables entire tool bar.

Definition at line 297 of file Tool.cpp.

References cubeViewport(), m_toolBarWidget, and updateTool().

Referenced by activate(), and setCubeViewport().

◆ menuName()

virtual QString Isis::Tool::menuName ( ) const
inlinevirtual

Anytime a tool is created, you must give it a name for the menu.

Returns
QString

Reimplemented in Isis::ZoomTool, Isis::WindowTool, Isis::StretchTool, Isis::SpecialPixelTool, Isis::PanTool, Isis::MeasureTool, Isis::HelpTool, Isis::FindTool, Isis::FileTool, Isis::FeatureNomenclatureTool, Isis::BlinkTool, Isis::BandTool, and Isis::AdvancedTrackTool.

Definition at line 83 of file Tool.h.

Referenced by addTo(), and Isis::Workspace::Workspace().

◆ mouseButtonPress()

void Isis::Tool::mouseButtonPress ( QPoint  p,
Qt::MouseButton  s 
)
protectedvirtual
Parameters
p
s

Definition at line 367 of file Tool.cpp.

Referenced by addViewportConnections(), and removeViewportConnections().

◆ mouseButtonRelease()

void Isis::Tool::mouseButtonRelease ( QPoint  p,
Qt::MouseButton  s 
)
protectedvirtual

Resets the Warning to Nowarning when a different activity occurs on the application.

This is called by all the mouseButtonRelease events in all the tools.

Parameters
p
s

Reimplemented in Isis::FeatureNomenclatureTool.

Definition at line 380 of file Tool.cpp.

Referenced by addViewportConnections(), Isis::StretchTool::mouseButtonRelease(), and removeViewportConnections().

◆ mouseDoubleClick()

void Isis::Tool::mouseDoubleClick ( QPoint  p)
protectedvirtual
Parameters
p

Definition at line 358 of file Tool.cpp.

Referenced by addViewportConnections(), and removeViewportConnections().

◆ mouseMove

void Isis::Tool::mouseMove ( QPoint  p)
protectedvirtualslot
Parameters
p

Definition at line 352 of file Tool.cpp.

Referenced by addViewportConnections(), and removeViewportConnections().

◆ paintViewport()

virtual void Isis::Tool::paintViewport ( MdiCubeViewport vp,
QPainter *  painter 
)
inlinevirtual

◆ registerTool()

void Isis::Tool::registerTool ( MdiCubeViewport viewport)
protected

Registers the tool to the viewport.

Parameters
viewport

Definition at line 327 of file Tool.cpp.

References m_cvp, and Isis::MdiCubeViewport::registerTool().

Referenced by addTo().

◆ removeConnections()

virtual void Isis::Tool::removeConnections ( MdiCubeViewport cvp)
inlineprotectedvirtual

Anytime a tool is created, you must be able to remove it's connections.

Parameters
cvp

Reimplemented in Isis::WindowTool, Isis::TrackTool, and Isis::MeasureTool.

Definition at line 247 of file Tool.h.

Referenced by removeViewportConnections().

◆ removeViewportConnections()

void Isis::Tool::removeViewportConnections ( )
private

Removes all the connections from the tool.

Definition at line 238 of file Tool.cpp.

References m_cvp, mouseButtonPress(), mouseButtonRelease(), mouseDoubleClick(), mouseMove(), removeConnections(), and screenPixelsChanged().

Referenced by activate(), and setCubeViewport().

◆ screenPixelsChanged

virtual void Isis::Tool::screenPixelsChanged ( )
inlineprotectedvirtualslot

This is called when actions change which pixels from the cube are displayed.

Definition at line 148 of file Tool.h.

Referenced by addViewportConnections(), removeViewportConnections(), and Isis::FeatureNomenclatureTool::viewportDone().

◆ setCubeViewport

void Isis::Tool::setCubeViewport ( MdiCubeViewport cvp)
slot

Sets the current viewport to the given cvp.

Parameters
cvp

Definition at line 160 of file Tool.cpp.

References addViewportConnections(), enableToolBar(), m_active, m_cvp, removeViewportConnections(), and updateTool().

Referenced by addTo(), and Isis::FileTool::closeAll().

◆ toolIconDir()

QString Isis::Tool::toolIconDir ( ) const
inline

◆ toolPadAction()

virtual QAction* Isis::Tool::toolPadAction ( ToolPad toolpad)
inlineprotectedvirtual

◆ updateTool

Member Data Documentation

◆ m_active

bool Isis::Tool::m_active
private

Is the tool acitve?

Definition at line 264 of file Tool.h.

Referenced by activate(), setCubeViewport(), and Tool().

◆ m_cvp

MdiCubeViewport* Isis::Tool::m_cvp
private

current cubeviewport

Definition at line 261 of file Tool.h.

Referenced by addViewportConnections(), cubeViewport(), registerTool(), removeViewportConnections(), setCubeViewport(), and Tool().

◆ m_toolBarWidget

QWidget* Isis::Tool::m_toolBarWidget
private

The tool bar on which this tool resides.

Definition at line 265 of file Tool.h.

Referenced by addToActive(), disableToolBar(), enableToolBar(), and Tool().

◆ m_toolIconDir

QString Isis::Tool::m_toolIconDir
private

The pathway to the icon directory.

Definition at line 267 of file Tool.h.

Referenced by Tool(), and toolIconDir().

◆ m_toolPadAction

QAction* Isis::Tool::m_toolPadAction
private

The tool pad on which this tool resides.

Definition at line 266 of file Tool.h.

Referenced by activate(), addTo(), addViewportConnections(), and Tool().


The documentation for this class was generated from the following files: