![]() |
Isis 3 Programmer Reference
|
View that displays cubes in a QView-like way. More...
#include <CubeDnView.h>
Classes | |
class | XmlHandler |
Public Slots | |
void | addItem (ProjectItem *item) |
Adds an item to the view. More... | |
void | enableControlNetTool (bool value) |
A slot function that is called when directory emits a signal that an active control network is set. More... | |
virtual void | addItems (QList< ProjectItem *> items) |
Adds several items to the view. More... | |
virtual void | removeItem (ProjectItem *item) |
Removes an item to the view. More... | |
virtual void | removeItems (QList< ProjectItem *> items) |
Removes several items from the view. More... | |
Signals | |
void | modifyControlPoint (ControlPoint *controlPoint, QString serialNumber) |
void | deleteControlPoint (ControlPoint *controlPoint) |
void | createControlPoint (double latitude, double longitude, Cube *cube, bool isGroundSource=false) |
void | controlPointAdded (QString newPointId) |
void | redrawMeasures () |
void | windowChangeEvent (bool event) |
Public Member Functions | |
CubeDnView (Directory *directory, QWidget *parent=0) | |
Constructs the view, initializing the tools. More... | |
~CubeDnView () | |
Destructor. More... | |
bool | viewportContainsShape (MdiCubeViewport *viewport) |
void | load (XmlStackedHandlerReader *xmlReader, Project *project) |
void | save (QXmlStreamWriter &stream, Project *project, FileName newProjectRoot) const |
virtual QSize | sizeHint () const |
Returns the suggested size. More... | |
virtual void | setModel (ProjectItemModel *model) |
Sets the model used by the view. More... | |
virtual ProjectItemModel * | model () |
Returns the model used by the view. More... | |
virtual void | dragEnterEvent (QDragEnterEvent *event) |
Accepts the drag enter event if the internal model can accept the mime data. More... | |
virtual void | dragMoveEvent (QDragMoveEvent *event) |
Accepts the drag event if the internal model can accept the mime data. More... | |
virtual void | dropEvent (QDropEvent *event) |
Drops the data into the internal model if it can accept the data. More... | |
virtual void | moveEvent (QMoveEvent *event) |
virtual void | resizeEvent (QResizeEvent *event) |
virtual void | enterEvent (QEvent *event) |
Enables actions when cursor enters the view. More... | |
virtual QList< QAction * > | contextMenuActions () |
Returns a list of actions appropriate for a context menu. More... | |
virtual ProjectItem * | currentItem () |
Returns the current item of the model. More... | |
virtual QList< ProjectItem * > | selectedItems () |
Return the selected items of the model. More... | |
virtual ProjectItemModel * | internalModel () |
Returns the internal model of the view. More... | |
virtual void | setInternalModel (ProjectItemModel *model) |
Sets the internal model of the view. More... | |
Private Slots | |
void | createActions (Directory *directory) |
void | onCurrentChanged (const QModelIndex ¤t) |
Slot to connect to the currentChanged() signal from a selection model. More... | |
void | onCubeViewportActivated (MdiCubeViewport *) |
Slot to connect to the cubeViewportActivated signal from the Workspace. More... | |
void | onItemAdded (ProjectItem *item) |
Slot to connect to the itemAdded signal from a ProjectItemModel. More... | |
void | onCubeViewportAdded (MdiCubeViewport *viewport) |
Slot to connect to the viewportAdded signal from a Workspace. More... | |
void | onCubeViewportDeleted (QObject *obj) |
Slot to connect to the destroyed signal from a viewport. More... | |
void | disableActions () |
Disables toolbars and toolpad actions/widgets. More... | |
Private Member Functions | |
Cube * | workspaceActiveCube () |
Returns the cube of the active viewport in the Workspace, or a null pointer if no viewports are active. More... | |
void | setWorkspaceActiveCube (Image *image) |
Raises the subwindow corresponding with an image to the top. More... | |
void | leaveEvent (QEvent *event) |
Disables actions when the cursor leaves the view. More... | |
void | enableActions () |
Enables toolbars and toolpad actions/widgets. More... | |
Private Attributes | |
QMap< Cube *, ProjectItem * > | m_cubeItemMap |
Maps cubes to their items. More... | |
Workspace * | m_workspace |
The workspace. More... | |
Directory * | m_directory |
The directory. More... | |
ProjectItemViewMenu * | m_viewMenu |
View menu for storing actions. More... | |
ProjectItemViewMenu * | m_optionsMenu |
Options menu for storing actions. More... | |
ProjectItemViewMenu * | m_windowMenu |
Window menu for storing actions. More... | |
QAction * | m_separatorAction |
A separator action that is reused. More... | |
QToolBar * | m_permToolBar |
A tool bar for storing actions. More... | |
QToolBar * | m_activeToolBar |
A tool bar for storing actions. More... | |
ToolPad * | m_toolPad |
A tool bar for storing actions. More... | |
QList< QWidget * > | m_childWidgets |
Child widgets of the active toolbar. More... | |
View that displays cubes in a QView-like way.
2016-01-13 Jeffrey Covington - Original version.
2016-06-27 Ian Humphrey - Minor updates to documentation and coding standards. Fixes #4004.
2016-08-25 Adam Paquette - Updated documentation. Fixes #4299.
2016-09-14 Tracie Sucharski - Replaced QnetTool with IpceTool.Added signals for mouse clicks for modifying, deleting and creating control points. These are passed on to Directory slots.
2016-10-18 Tracie Sucharski - Added the status bar back in in order to display cube positional information (sample, line, latitude, longitude).
2016-10-18 Tracie Sucharski - Add method to return whether the viewport contains a Shape.
2016-11-10 Tracie Sucharski - Added functionality to save/restore CubeDnViews when opening projects.
2017-01-02 Tracie Sucharski - Moved IpceTool to first tool on tool bar, change icon to match the Footprint2DView.
2017-05-18 Tracie Sucharski - Added serialNumber to the modifyControlPoint signal.
2017-07-27 Tyler Wilson - Added a slot function (enableIPCETool) which is called when a control network (or list of control networks) is added to the active project. Fixes #4994.
2017-08-02 Tracie Sucharski - Added redrawMeasures signal which calls a slot in ipce tool to redraw control measures on cube viewports. Fixes #5007, #5008.
2017-08-03 Cole Neubauer - Changed all references from IpceTool to ControlNetTool Fixes #5090.
2018-05-30 Tracie Sucharski - Refactored for new docked interface. Views are now responsible for creating their menus and toolbars. AbstractProjectItemView now inherits from QMainWindow, so the Workspace of this view is the centralWidget. This needs further work to cleanup and fit in with the new docked view interface.git
2018-06-12 Kaitlyn Lee - Removed help menu and the "What's This?" action because the ipce help menu has this action.
2018-06-13 Kaitlyn Lee - Since views now inherit from QMainWindow, each individual view has its own toolbar, so having getters that return toolbar actions to fill the toolbar of the IpceMainWindow are unnecessary. Removed methods that returned menu and toolbar actions. Removed connections that connected the project and CubeDnView and called enableControlNetTool() because Directory now does this.
2018-06-25 Kaitlyn Lee - When multiple views are open, there is a possibility of getting ambiguous shortcut errors. To counter this, we enable/disable actions. Overrode leaveEvent() to handle open menus causing a leave event. Overrode enable/disableActions() because we need to disable the active toolbar's widgets. On default, a view's actions are disabled. To enable the actions, move the cursor over the view. When a user moves the cursor outside of a view, the actions are disabled.
2018-07-05 Tracie Sucharski - Moved sizeHint and sizePolicy to AbstractProjectItemView. References #5433.
2018-07-09 Tracie Sucharski - Serialize the objectName for this view so that the view can be re-created with the same objectName for restoring the project state. Qt's save/restoreState use the objectName.
Definition at line 111 of file CubeDnView.h.
Constructs the view, initializing the tools.
parent | (QWidget *) Pointer to parent widget |
Definition at line 95 of file CubeDnView.cpp.
References Isis::AbstractProjectItemView::internalModel(), m_cubeItemMap, m_directory, m_workspace, Isis::Workspace::mdiArea(), onCubeViewportActivated(), onCubeViewportAdded(), onCurrentChanged(), and onItemAdded().
Isis::CubeDnView::~CubeDnView | ( | ) |
Destructor.
Definition at line 346 of file CubeDnView.cpp.
References m_activeToolBar, m_optionsMenu, m_permToolBar, m_toolPad, m_viewMenu, and m_windowMenu.
|
slot |
Adds an item to the view.
Filters out items that are not Images or Shapes or ImageLists.
[in] | item | (ProjectItem *) The item to add. |
Definition at line 370 of file CubeDnView.cpp.
References Isis::AbstractProjectItemView::addItem(), Isis::ProjectItem::isImage(), Isis::ProjectItem::isImageList(), Isis::ProjectItem::isShape(), and Isis::ProjectItem::isShapeList().
Referenced by Isis::ControlHealthMonitorView::openImageEditor().
|
virtualslotinherited |
Adds several items to the view.
The items must be a part of the view's model. This method can be overridden in a subclass to filter out unneeded items.
[in] | items | (QList<ProjectItem *>) The items to add. |
Definition at line 278 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::CubeDnViewWorkOrder::execute(), and Isis::Footprint2DViewWorkOrder::execute().
Returns a list of actions appropriate for a context menu.
Definition at line 232 of file AbstractProjectItemView.cpp.
|
virtualinherited |
Returns the current item of the model.
Definition at line 242 of file AbstractProjectItemView.cpp.
References Isis::ProjectItemModel::currentItem(), and Isis::AbstractProjectItemView::model().
|
privateslot |
Disables toolbars and toolpad actions/widgets.
Overriden method.
Definition at line 297 of file CubeDnView.cpp.
References m_childWidgets.
Referenced by leaveEvent().
|
virtualinherited |
Accepts the drag enter event if the internal model can accept the mime data.
[in] | event | (QDragEnterEvent *) The drag event |
Definition at line 133 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
virtualinherited |
Accepts the drag event if the internal model can accept the mime data.
[in] | event | (QDragMoveEvent *) The drag event |
Definition at line 148 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
virtualinherited |
Drops the data into the internal model if it can accept the data.
[in] | event | (QDropEvent *) The drop event |
Definition at line 162 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
privatevirtual |
Enables toolbars and toolpad actions/widgets.
Overriden method. If an active control network has not been set, do not enable the cnet tool.
Reimplemented from Isis::AbstractProjectItemView.
Definition at line 311 of file CubeDnView.cpp.
References Isis::Project::activeControl(), m_childWidgets, m_directory, and Isis::Directory::project().
|
slot |
A slot function that is called when directory emits a signal that an active control network is set.
It enables the control network editor tool in the toolpad and loads the network.
value | The boolean that holds if a control network has been set. |
Definition at line 331 of file CubeDnView.cpp.
References m_toolPad.
|
virtualinherited |
Enables actions when cursor enters the view.
event | The enter event |
Definition at line 192 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::enableActions().
|
virtualinherited |
Returns the internal model of the view.
By default it is a proxy model.
Definition at line 122 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::m_internalModel.
Referenced by Isis::AbstractProjectItemView::addItem(), Isis::AbstractProjectItemView::addItems(), CubeDnView(), Isis::AbstractProjectItemView::dragEnterEvent(), Isis::AbstractProjectItemView::dragMoveEvent(), Isis::AbstractProjectItemView::dropEvent(), Isis::Footprint2DView::Footprint2DView(), Isis::AbstractProjectItemView::model(), onCubeViewportActivated(), onCubeViewportDeleted(), onCurrentChanged(), Isis::Footprint2DView::onQueueSelectionChanged(), Isis::ProjectItemTreeView::ProjectItemTreeView(), Isis::AbstractProjectItemView::removeItem(), Isis::ProjectItemTreeView::setInternalModel(), and Isis::AbstractProjectItemView::setModel().
|
privatevirtual |
Disables actions when the cursor leaves the view.
Overriden method If a project item view menu or toolpad action menu is visible, i.e. clicked on, this causes a leave event. We want the actions to still be enabled when a menu is visible.
event | The leave event |
Reimplemented from Isis::AbstractProjectItemView.
Definition at line 280 of file CubeDnView.cpp.
References disableActions(), m_optionsMenu, m_viewMenu, and m_windowMenu.
|
virtualinherited |
Returns the model used by the view.
If the internal model is a proxy model, it returns the source model.
Definition at line 97 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::AbstractProjectItemView::currentItem(), Isis::BundleObservationView::displayCsvFile(), Isis::AbstractProjectItemView::selectedItems(), Isis::ProjectItemTreeView::setInternalModel(), Isis::AbstractProjectItemView::setInternalModel(), and Isis::AbstractProjectItemView::setModel().
|
privateslot |
Slot to connect to the cubeViewportActivated signal from the Workspace.
Updates the selection model to reflect the activated viewport.
[in] | viewport | (MdiCubeViewport *) The viewport |
Definition at line 420 of file CubeDnView.cpp.
References Isis::CubeViewport::cube(), Isis::AbstractProjectItemView::internalModel(), m_cubeItemMap, and Isis::ProjectItemModel::selectionModel().
Referenced by CubeDnView().
|
privateslot |
Slot to connect to the viewportAdded signal from a Workspace.
Removes the corresponding item from the model when its viewport is closed.
[in] | viewport | (MdiCubeViewport *) The added viewport |
Definition at line 447 of file CubeDnView.cpp.
References onCubeViewportDeleted().
Referenced by CubeDnView().
|
privateslot |
Slot to connect to the destroyed signal from a viewport.
Removes the viewports corresponding item from the internal model.
[in] | obj | (QObject *) The deleted viewport |
Definition at line 459 of file CubeDnView.cpp.
References Isis::CubeViewport::cube(), Isis::AbstractProjectItemView::internalModel(), and m_cubeItemMap.
Referenced by onCubeViewportAdded().
|
privateslot |
Slot to connect to the currentChanged() signal from a selection model.
If the new current item is an image the corresponding subwindow is activated.
[in] | current | (const QModelIndex &) The new current index |
Definition at line 397 of file CubeDnView.cpp.
References Isis::ProjectItem::image(), Isis::AbstractProjectItemView::internalModel(), Isis::ProjectItem::isImage(), Isis::ProjectItemModel::itemFromIndex(), and setWorkspaceActiveCube().
Referenced by CubeDnView().
|
privateslot |
Slot to connect to the itemAdded signal from a ProjectItemModel.
Adds the image or shape to the Workspace and the item to an internal map.
[in] | item | (ProjectItem *) The added item |
Definition at line 480 of file CubeDnView.cpp.
References Isis::Workspace::addCubeViewport(), Isis::Shape::cube(), Isis::Image::cube(), Isis::Workspace::cubeToMdiWidget(), Isis::ProjectItem::image(), Isis::ProjectItem::isImage(), Isis::ProjectItem::isShape(), m_cubeItemMap, m_workspace, and Isis::ProjectItem::shape().
Referenced by CubeDnView().
|
virtualslotinherited |
Removes an item to the view.
The item must be part of the view's model. This method can be overriden in a subclass to filter out unneeded items.
[in] | item | (ProjectItem *) The item to remove. |
Definition at line 292 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::AbstractProjectItemView::removeItems().
|
virtualslotinherited |
Removes several items from the view.
The items must be a part of the view's model.
[in] | items | (QList<ProjectItem *>) The items to remove. |
Definition at line 306 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::removeItem().
|
virtualinherited |
Return the selected items of the model.
Definition at line 252 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::model(), and Isis::ProjectItemModel::selectedItems().
|
virtualinherited |
Sets the internal model of the view.
[in] | model | (ProjectItemModel *) The new internal model |
Reimplemented in Isis::ProjectItemTreeView.
Definition at line 111 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::m_internalModel, and Isis::AbstractProjectItemView::model().
Referenced by Isis::ProjectItemTreeView::setInternalModel().
|
virtualinherited |
Sets the model used by the view.
If the internal model is a proxy model, it sets the source model.
[in] | model | (ProjectItemModel *) The new model |
Definition at line 83 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel(), and Isis::AbstractProjectItemView::model().
Referenced by Isis::Directory::addCubeDnView(), Isis::Directory::addFootprint2DView(), and Isis::Directory::addProjectItemTreeView().
|
private |
Raises the subwindow corresponding with an image to the top.
Definition at line 523 of file CubeDnView.cpp.
References Isis::Image::cube(), Isis::Workspace::cubeToMdiWidget(), and m_workspace.
Referenced by onCurrentChanged().
|
virtualinherited |
Returns the suggested size.
Reimplemented in Isis::ProjectItemTreeView, and Isis::ControlHealthMonitorView.
Definition at line 67 of file AbstractProjectItemView.cpp.
|
private |
Returns the cube of the active viewport in the Workspace, or a null pointer if no viewports are active.
Definition at line 509 of file CubeDnView.cpp.
References Isis::CubeViewport::cube(), m_workspace, Isis::Workspace::mdiArea(), and Isis::ViewportMdiSubWindow::viewport().
|
private |
A tool bar for storing actions.
Definition at line 189 of file CubeDnView.h.
Referenced by ~CubeDnView().
Child widgets of the active toolbar.
Definition at line 191 of file CubeDnView.h.
Referenced by disableActions(), and enableActions().
|
private |
Maps cubes to their items.
Definition at line 178 of file CubeDnView.h.
Referenced by CubeDnView(), onCubeViewportActivated(), onCubeViewportDeleted(), and onItemAdded().
|
private |
The directory.
Definition at line 180 of file CubeDnView.h.
Referenced by CubeDnView(), and enableActions().
|
private |
Options menu for storing actions.
Definition at line 183 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
A tool bar for storing actions.
Definition at line 188 of file CubeDnView.h.
Referenced by ~CubeDnView().
|
private |
A separator action that is reused.
Definition at line 186 of file CubeDnView.h.
|
private |
A tool bar for storing actions.
Definition at line 190 of file CubeDnView.h.
Referenced by enableControlNetTool(), and ~CubeDnView().
|
private |
View menu for storing actions.
Definition at line 182 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
Window menu for storing actions.
Definition at line 184 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
The workspace.
Definition at line 179 of file CubeDnView.h.
Referenced by CubeDnView(), onItemAdded(), setWorkspaceActiveCube(), and workspaceActiveCube().
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/12/2023 23:45:09 |