Isis 3 Programmer Reference
|
AbstractProjectItemView is a base class for views of a ProjectItemModel in Qt's model-view framework. More...
#include <AbstractProjectItemView.h>
Public Slots | |
virtual void | addItem (ProjectItem *item) |
Adds an item to the view. 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... | |
virtual void | disableActions () |
Disables toolbars and toolpad actions. More... | |
Signals | |
void | windowChangeEvent (bool event) |
Public Member Functions | |
AbstractProjectItemView (QWidget *parent=0) | |
Constructs the AbstractProjectItemView. More... | |
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 void | leaveEvent (QEvent *event) |
Disables actions when cursor leaves the view. More... | |
virtual void | enableActions () |
Enables toolbars and toolpad actions. 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 Attributes | |
ProjectItemModel * | m_internalModel |
The internal model used by the view. More... | |
AbstractProjectItemView is a base class for views of a ProjectItemModel in Qt's model-view framework.
AbstractProjectItemView is not meant to be instantiated directly. A view usually only shows items that have been added to the view. The views contains an internal ProjectItemProxyModel that represents the items appropriately for the view.
When mime data is dropped on a view the view adds the selected items from the source model to the view.
Note that AbstractProjectItemView does not inherit from QAbstractItemView.
2015-10-21 Jeffrey Covington - Original version.
2016-06-27 Ian Humphrey - Minor updates to documentation and coding standards. Fixes #4004.
2016-07-28 Tracie Sucharski - Implemented removeItem and removeItems methods.
2016-08-25 Adam Paquette - Minor updates to documentation. Fixes #4299.
2018-05-29 Tracie Sucharski & Summer Stapleton - updated to inherit from QMainWindow instead of QWidget. This updates all views in the ipce main window to be main windows themselves, changing from an mdi interface to an sdi interface.
2018-05-30 Tracie Sucharski - Added the WindowFlag to set this as a Widget.
2018-06-15 Kaitlyn Lee - Removed methods returing toolbar and menu actions because each individual has its own toolbar. These methods are not needed anymore.
2018-06-18 Summer Stapleton - Overloaded moveEvent and resizeEvent and added a windowChangeEvent signal to allow project to recognize a new save state. Fixes #5114
2018-06-25 Kaitlyn Lee - When multiple views are open, there is a possibility of getting ambiguous shortcut errors. To counter this, we need a way to focus on one widget. Giving the views focus did not work completely. Instead, enabling/disabling actions was the best option. Added enableActions(), disableActions(), enterEvent(), and leaveEvent(). 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 the view, the actions are disabled.
2018-07-05 Tracie Sucharski - Added SizePolicy and a large sizeHint. The large sizeHint() is because using sizePolicy with a reasonable sizeHint did not work to have views fill the available space in the dock area. References #5433.
2018-07-12 Kaitlyn Lee - Changed the sizeHint to be calculated based on the deskTop size, instead of being hard-coded. The percentages chosen allow for 2 CubeDnViews to be opened at once, since CubeDnView has an internal size policy. References #5433
2018-07-26 Tracie Sucharski - Cleaned up some documentation.
2018-08-10 Tracie Sucharski - Changed addItems method to call the ProjectItemProxyModel::addItems rather than this classes addItem. This speeds things up considerably loading items into the model. References #5296.
Definition at line 93 of file AbstractProjectItemView.h.
Isis::AbstractProjectItemView::AbstractProjectItemView | ( | QWidget * | parent = 0 | ) |
Constructs the AbstractProjectItemView.
[in] | parent | (QMainWindow *) The parent widget |
Definition at line 48 of file AbstractProjectItemView.cpp.
References m_internalModel.
|
virtualslot |
Adds an item to the view.
The item must be part of the view's model. This method can be overridden in a subclass to filter out unneeded items.
[in] | item | (ProjectItem *) The item to add. |
Definition at line 264 of file AbstractProjectItemView.cpp.
References internalModel().
Referenced by Isis::CubeDnView::addItem().
|
virtualslot |
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 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.
|
virtual |
Returns the current item of the model.
Definition at line 242 of file AbstractProjectItemView.cpp.
References Isis::ProjectItemModel::currentItem(), and model().
|
virtualslot |
Disables toolbars and toolpad actions.
Definition at line 210 of file AbstractProjectItemView.cpp.
Referenced by Isis::CnetEditorView::CnetEditorView(), Isis::CnetEditorView::createMenus(), Isis::Footprint2DView::Footprint2DView(), Isis::CnetEditorView::leaveEvent(), and leaveEvent().
|
virtual |
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 internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
virtual |
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 internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
virtual |
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 internalModel().
Referenced by Isis::Footprint2DView::eventFilter().
|
virtual |
Enables toolbars and toolpad actions.
Reimplemented in Isis::CubeDnView, and Isis::Footprint2DView.
Definition at line 220 of file AbstractProjectItemView.cpp.
Referenced by enterEvent().
|
virtual |
Enables actions when cursor enters the view.
event | The enter event |
Definition at line 192 of file AbstractProjectItemView.cpp.
References enableActions().
|
virtual |
Returns the internal model of the view.
By default it is a proxy model.
Definition at line 122 of file AbstractProjectItemView.cpp.
References m_internalModel.
Referenced by addItem(), addItems(), Isis::CubeDnView::CubeDnView(), dragEnterEvent(), dragMoveEvent(), dropEvent(), Isis::Footprint2DView::Footprint2DView(), model(), Isis::CubeDnView::onCubeViewportActivated(), Isis::CubeDnView::onCubeViewportDeleted(), Isis::CubeDnView::onCurrentChanged(), Isis::Footprint2DView::onQueueSelectionChanged(), Isis::ProjectItemTreeView::ProjectItemTreeView(), removeItem(), Isis::ProjectItemTreeView::setInternalModel(), and setModel().
|
virtual |
Disables actions when cursor leaves the view.
event | The leave event |
Reimplemented in Isis::CubeDnView, and Isis::CnetEditorView.
Definition at line 202 of file AbstractProjectItemView.cpp.
References disableActions().
|
virtual |
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 internalModel().
Referenced by currentItem(), Isis::BundleObservationView::displayCsvFile(), selectedItems(), Isis::ProjectItemTreeView::setInternalModel(), setInternalModel(), and setModel().
|
virtualslot |
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 internalModel().
Referenced by removeItems().
|
virtualslot |
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 removeItem().
|
virtual |
Return the selected items of the model.
Definition at line 252 of file AbstractProjectItemView.cpp.
References model(), and Isis::ProjectItemModel::selectedItems().
|
virtual |
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 m_internalModel, and model().
Referenced by Isis::ProjectItemTreeView::setInternalModel().
|
virtual |
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 internalModel(), and model().
Referenced by Isis::Directory::addCubeDnView(), Isis::Directory::addFootprint2DView(), and Isis::Directory::addProjectItemTreeView().
|
virtual |
Returns the suggested size.
Reimplemented in Isis::ProjectItemTreeView, and Isis::ControlHealthMonitorView.
Definition at line 67 of file AbstractProjectItemView.cpp.
|
private |
The internal model used by the view.
Definition at line 137 of file AbstractProjectItemView.h.
Referenced by AbstractProjectItemView(), internalModel(), and setInternalModel().