Isis 3 Programmer Reference
|
View that displays cubes in a QView-like way. More...
#include <CubeDnView.h>
Public Slots | |
void | addItem (ProjectItem *item) |
Adds an item to the view. | |
void | enableControlNetTool (bool value) |
A slot function that is called when directory emits a signal that an active control network is set. | |
virtual void | addItems (QList< ProjectItem * > items) |
Adds several items to the view. | |
virtual void | removeItem (ProjectItem *item) |
Removes an item to the view. | |
virtual void | removeItems (QList< ProjectItem * > items) |
Removes several items from the view. | |
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. | |
~CubeDnView () | |
Destructor. | |
bool | viewportContainsShape (MdiCubeViewport *viewport) |
void | save (QXmlStreamWriter &stream, Project *project, FileName newProjectRoot) const |
virtual QSize | sizeHint () const |
Returns the suggested size. | |
virtual void | setModel (ProjectItemModel *model) |
Sets the model used by the view. | |
virtual ProjectItemModel * | model () |
Returns the model used by the view. | |
virtual void | dragEnterEvent (QDragEnterEvent *event) |
Accepts the drag enter event if the internal model can accept the mime data. | |
virtual void | dragMoveEvent (QDragMoveEvent *event) |
Accepts the drag event if the internal model can accept the mime data. | |
virtual void | dropEvent (QDropEvent *event) |
Drops the data into the internal model if it can accept the data. | |
virtual void | moveEvent (QMoveEvent *event) |
virtual void | resizeEvent (QResizeEvent *event) |
virtual void | enterEvent (QEvent *event) |
Enables actions when cursor enters the view. | |
virtual QList< QAction * > | contextMenuActions () |
Returns a list of actions appropriate for a context menu. | |
virtual ProjectItem * | currentItem () |
Returns the current item of the model. | |
virtual QList< ProjectItem * > | selectedItems () |
Return the selected items of the model. | |
virtual ProjectItemModel * | internalModel () |
Returns the internal model of the view. | |
virtual void | setInternalModel (ProjectItemModel *model) |
Sets the internal model of the view. | |
Private Slots | |
void | createActions (Directory *directory) |
void | onCurrentChanged (const QModelIndex ¤t) |
Slot to connect to the currentChanged() signal from a selection model. | |
void | onCubeViewportActivated (MdiCubeViewport *) |
Slot to connect to the cubeViewportActivated signal from the Workspace. | |
void | onItemAdded (ProjectItem *item) |
Slot to connect to the itemAdded signal from a ProjectItemModel. | |
void | onCubeViewportAdded (MdiCubeViewport *viewport) |
Slot to connect to the viewportAdded signal from a Workspace. | |
void | onCubeViewportDeleted (QObject *obj) |
Slot to connect to the destroyed signal from a viewport. | |
void | disableActions () |
Disables toolbars and toolpad actions/widgets. | |
Private Member Functions | |
Cube * | workspaceActiveCube () |
Returns the cube of the active viewport in the Workspace, or a null pointer if no viewports are active. | |
void | setWorkspaceActiveCube (Image *image) |
Raises the subwindow corresponding with an image to the top. | |
void | leaveEvent (QEvent *event) |
Disables actions when the cursor leaves the view. | |
void | enableActions () |
Enables toolbars and toolpad actions/widgets. | |
Private Attributes | |
QMap< Cube *, ProjectItem * > | m_cubeItemMap |
Maps cubes to their items. | |
Workspace * | m_workspace |
The workspace. | |
Directory * | m_directory |
The directory. | |
ProjectItemViewMenu * | m_viewMenu |
View menu for storing actions. | |
ProjectItemViewMenu * | m_optionsMenu |
Options menu for storing actions. | |
ProjectItemViewMenu * | m_windowMenu |
Window menu for storing actions. | |
QAction * | m_separatorAction |
A separator action that is reused. | |
QToolBar * | m_permToolBar |
A tool bar for storing actions. | |
QToolBar * | m_activeToolBar |
A tool bar for storing actions. | |
ToolPad * | m_toolPad |
A tool bar for storing actions. | |
QList< QWidget * > | m_childWidgets |
Child widgets of the active toolbar. | |
ProjectItemModel * | m_internalModel |
The internal model used by the view. | |
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 95 of file CubeDnView.h.
Constructs the view, initializing the tools.
parent | (QWidget *) Pointer to parent widget |
Definition at line 80 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 331 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 355 of file CubeDnView.cpp.
References Isis::AbstractProjectItemView::addItem(), Isis::ProjectItem::isImage(), Isis::ProjectItem::isImageList(), Isis::ProjectItem::isShape(), and Isis::ProjectItem::isShapeList().
|
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 265 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Returns a list of actions appropriate for a context menu.
Definition at line 219 of file AbstractProjectItemView.cpp.
|
privateslot |
Definition at line 109 of file CubeDnView.cpp.
|
virtualinherited |
Returns the current item of the model.
Definition at line 229 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::model().
|
privateslot |
Disables toolbars and toolpad actions/widgets.
Overriden method.
Definition at line 282 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 120 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 135 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 149 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 296 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 316 of file CubeDnView.cpp.
References m_toolPad.
|
virtualinherited |
Enables actions when cursor enters the view.
event | The enter event |
Definition at line 179 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 109 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 265 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 84 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::internalModel().
Referenced by Isis::AbstractProjectItemView::currentItem(), Isis::BundleObservationView::displayCsvFile(), Isis::AbstractProjectItemView::selectedItems(), Isis::AbstractProjectItemView::setInternalModel(), Isis::ProjectItemTreeView::setInternalModel(), and Isis::AbstractProjectItemView::setModel().
|
virtualinherited |
Definition at line 160 of file AbstractProjectItemView.cpp.
|
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 405 of file CubeDnView.cpp.
References Isis::CubeViewport::cube(), Isis::AbstractProjectItemView::internalModel(), and m_cubeItemMap.
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 432 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 444 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 382 of file CubeDnView.cpp.
References Isis::ProjectItem::image(), Isis::AbstractProjectItemView::internalModel(), Isis::ProjectItem::isImage(), 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 465 of file CubeDnView.cpp.
References Isis::Workspace::addCubeViewport(), Isis::Image::cube(), Isis::Shape::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 279 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 293 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::removeItem().
|
virtualinherited |
Definition at line 167 of file AbstractProjectItemView.cpp.
void Isis::CubeDnView::save | ( | QXmlStreamWriter & | stream, |
Project * | project, | ||
FileName | newProjectRoot ) const |
Definition at line 532 of file CubeDnView.cpp.
|
virtualinherited |
Return the selected items of the model.
Definition at line 239 of file AbstractProjectItemView.cpp.
References Isis::AbstractProjectItemView::model().
|
virtualinherited |
Sets the internal model of the view.
[in] | model | (ProjectItemModel *) The new internal model |
Reimplemented in Isis::ProjectItemTreeView.
Definition at line 98 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 70 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 508 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::ControlHealthMonitorView, and Isis::ProjectItemTreeView.
Definition at line 55 of file AbstractProjectItemView.cpp.
bool Isis::CubeDnView::viewportContainsShape | ( | MdiCubeViewport * | viewport | ) |
Definition at line 364 of file CubeDnView.cpp.
|
private |
Returns the cube of the active viewport in the Workspace, or a null pointer if no viewports are active.
Definition at line 494 of file CubeDnView.cpp.
References Isis::CubeViewport::cube(), m_workspace, and Isis::Workspace::mdiArea().
|
private |
A tool bar for storing actions.
Definition at line 148 of file CubeDnView.h.
Referenced by ~CubeDnView().
Child widgets of the active toolbar.
Definition at line 150 of file CubeDnView.h.
Referenced by disableActions(), and enableActions().
|
private |
Maps cubes to their items.
Definition at line 137 of file CubeDnView.h.
Referenced by CubeDnView(), onCubeViewportActivated(), onCubeViewportDeleted(), and onItemAdded().
|
private |
The directory.
Definition at line 139 of file CubeDnView.h.
Referenced by CubeDnView(), and enableActions().
|
privateinherited |
The internal model used by the view.
Definition at line 123 of file AbstractProjectItemView.h.
Referenced by Isis::AbstractProjectItemView::AbstractProjectItemView(), Isis::AbstractProjectItemView::internalModel(), and Isis::AbstractProjectItemView::setInternalModel().
|
private |
Options menu for storing actions.
Definition at line 142 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
A tool bar for storing actions.
Definition at line 147 of file CubeDnView.h.
Referenced by ~CubeDnView().
|
private |
A separator action that is reused.
Definition at line 145 of file CubeDnView.h.
|
private |
A tool bar for storing actions.
Definition at line 149 of file CubeDnView.h.
Referenced by enableControlNetTool(), and ~CubeDnView().
|
private |
View menu for storing actions.
Definition at line 141 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
Window menu for storing actions.
Definition at line 143 of file CubeDnView.h.
Referenced by leaveEvent(), and ~CubeDnView().
|
private |
The workspace.
Definition at line 138 of file CubeDnView.h.
Referenced by CubeDnView(), onItemAdded(), setWorkspaceActiveCube(), and workspaceActiveCube().