Isis 3 Programmer Reference
Isis::ProjectItemTreeView Class Reference

A ProjectItemTreeView displays items from a ProjectItemProxyModel in a tree structure. More...

#include <ProjectItemTreeView.h>

Inheritance diagram for Isis::ProjectItemTreeView:
Inheritance graph
Collaboration diagram for Isis::ProjectItemTreeView:
Collaboration graph

Public Slots

virtual void addItem (ProjectItem *item)
 Adds an item to the view.
 
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.
 
virtual void disableActions ()
 Disables toolbars and toolpad actions.
 

Signals

void windowChangeEvent (bool event)
 

Public Member Functions

 ProjectItemTreeView (QWidget *parent=0)
 Constructs a ProjectItemTreeView.
 
 ~ProjectItemTreeView ()
 Default destructor.
 
virtual QSize sizeHint () const
 Returns the suggested size.
 
virtual void setInternalModel (ProjectItemModel *model)
 Sets the model so that the internal proxy model exactly matches the source model.
 
QTreeView * treeView ()
 Returns the tree view.
 
virtual void setModel (ProjectItemModel *model)
 Sets the model used by the view.
 
virtual ProjectItemModelmodel ()
 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 void leaveEvent (QEvent *event)
 Disables actions when cursor leaves the view.
 
virtual void enableActions ()
 Enables toolbars and toolpad actions.
 
virtual QList< QAction * > contextMenuActions ()
 Returns a list of actions appropriate for a context menu.
 
virtual ProjectItemcurrentItem ()
 Returns the current item of the model.
 
virtual QList< ProjectItem * > selectedItems ()
 Return the selected items of the model.
 
virtual ProjectItemModelinternalModel ()
 Returns the internal model of the view.
 

Protected Member Functions

bool eventFilter (QObject *watched, QEvent *event)
 Filters out drag and drop events so that they are handled by the ProjectItemTreeView.
 

Private Slots

void onItemAdded (ProjectItem *item)
 Expands the parent project item in the tree view to show the added item.
 

Private Attributes

QTreeView * m_treeView
 The tree view (widget)
 
ProjectItemModelm_internalModel
 The internal model used by the view.
 

Detailed Description

A ProjectItemTreeView displays items from a ProjectItemProxyModel in a tree structure.

The view can display the contents of the model directly without adding items to the model using the setInternalModel() method instead of setModel().

Author
2015-10-21 Jeffrey Covington
History

2015-10-21 Jeffrey Covington - Original version.

2016-01-13 Jeffrey Covington - Added destructor and treeView() methods. Added onItemAdded() slot. Replaced setSourceModel() with setInternalModel() method.

2016-06-27 Ian Humphrey - Added documentation (treeView() and onItemAdded()), checked coding standards. Fixes #4006.

2016-08-25 Adam Paquette - Updated documentation. Fixes #4299.

2016-12-01 Ian Humphrey - Updated #define header guard to match #ifndef pattern. Resolves [-Wheader-guard] warnings for prog17 (clang).

2017-04-12 Tracie Sucharski - Turn off dragging on the treeView for now since it is does not work and is causing errors.

2018-05-29 Summer Stapleton - updated the view to include a central widget and to remove layout capacity. This change was made to adjust to parent class now inheriting from QMainWindow instead of QWidget.

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 and cannot be made smaller. Changed the setSizePolicy to minimum so that the tree does not expand when a view is closed. References #5433

2018-07-25 Tracie Sucharski - Changed vertical sizePolicy so that other widgets such as JigsawRunWidget, ControlHealthMonitor can be split with the Project view.

Definition at line 56 of file ProjectItemTreeView.h.

Constructor & Destructor Documentation

◆ ProjectItemTreeView()

Isis::ProjectItemTreeView::ProjectItemTreeView ( QWidget * parent = 0)

Constructs a ProjectItemTreeView.

Parameters
[in]parent(QWidget *) The parent widget.

Definition at line 29 of file ProjectItemTreeView.cpp.

References Isis::AbstractProjectItemView::internalModel(), m_treeView, and setInternalModel().

◆ ~ProjectItemTreeView()

Isis::ProjectItemTreeView::~ProjectItemTreeView ( )

Default destructor.

Definition at line 71 of file ProjectItemTreeView.cpp.

Member Function Documentation

◆ addItem

void Isis::AbstractProjectItemView::addItem ( ProjectItem * item)
virtualslotinherited

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.

Parameters
[in]item(ProjectItem *) The item to add.

Definition at line 250 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

Referenced by Isis::CubeDnView::addItem().

◆ addItems

void Isis::AbstractProjectItemView::addItems ( QList< ProjectItem * > items)
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.

Parameters
[in]items(QList<ProjectItem *>) The items to add.

Definition at line 264 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

◆ contextMenuActions()

QList< QAction * > Isis::AbstractProjectItemView::contextMenuActions ( )
virtualinherited

Returns a list of actions appropriate for a context menu.

Returns
QList<QAction *> The actions

Definition at line 218 of file AbstractProjectItemView.cpp.

◆ currentItem()

ProjectItem * Isis::AbstractProjectItemView::currentItem ( )
virtualinherited

Returns the current item of the model.

Returns
ProjectItem * The item

Definition at line 228 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::model().

◆ disableActions

void Isis::AbstractProjectItemView::disableActions ( )
virtualslotinherited

◆ dragEnterEvent()

void Isis::AbstractProjectItemView::dragEnterEvent ( QDragEnterEvent * event)
virtualinherited

Accepts the drag enter event if the internal model can accept the mime data.

Parameters
[in]event(QDragEnterEvent *) The drag event

Definition at line 119 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

Referenced by Isis::Footprint2DView::eventFilter().

◆ dragMoveEvent()

void Isis::AbstractProjectItemView::dragMoveEvent ( QDragMoveEvent * event)
virtualinherited

Accepts the drag event if the internal model can accept the mime data.

Parameters
[in]event(QDragMoveEvent *) The drag event

Definition at line 134 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

Referenced by Isis::Footprint2DView::eventFilter().

◆ dropEvent()

void Isis::AbstractProjectItemView::dropEvent ( QDropEvent * event)
virtualinherited

Drops the data into the internal model if it can accept the data.

Parameters
[in]event(QDropEvent *) The drop event

Definition at line 148 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

Referenced by Isis::Footprint2DView::eventFilter().

◆ enableActions()

void Isis::AbstractProjectItemView::enableActions ( )
virtualinherited

Enables toolbars and toolpad actions.

Reimplemented in Isis::CubeDnView, and Isis::Footprint2DView.

Definition at line 206 of file AbstractProjectItemView.cpp.

Referenced by Isis::AbstractProjectItemView::enterEvent().

◆ enterEvent()

void Isis::AbstractProjectItemView::enterEvent ( QEvent * event)
virtualinherited

Enables actions when cursor enters the view.

Parameters
eventThe enter event

Definition at line 178 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::enableActions().

◆ eventFilter()

bool Isis::ProjectItemTreeView::eventFilter ( QObject * watched,
QEvent * event )
protected

Filters out drag and drop events so that they are handled by the ProjectItemTreeView.

Parameters
[in]watched(QObject *) The object being filtered.
[in]event(QEvent *) The event passed to the object.
Returns
bool True if the event is filtered by the project item tree view

Definition at line 131 of file ProjectItemTreeView.cpp.

◆ internalModel()

◆ leaveEvent()

void Isis::AbstractProjectItemView::leaveEvent ( QEvent * event)
virtualinherited

Disables actions when cursor leaves the view.

Parameters
eventThe leave event

Reimplemented in Isis::CnetEditorView, and Isis::CubeDnView.

Definition at line 188 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::disableActions().

◆ model()

ProjectItemModel * Isis::AbstractProjectItemView::model ( )
virtualinherited

◆ moveEvent()

void Isis::AbstractProjectItemView::moveEvent ( QMoveEvent * event)
virtualinherited

Definition at line 159 of file AbstractProjectItemView.cpp.

◆ onItemAdded

void Isis::ProjectItemTreeView::onItemAdded ( ProjectItem * item)
privateslot

Expands the parent project item in the tree view to show the added item.

Parameters
[in]item(ProjectItem *) The added project item.

Definition at line 111 of file ProjectItemTreeView.cpp.

References Isis::ProjectItem::isControlList(), Isis::ProjectItem::isImageList(), m_treeView, and Isis::ProjectItem::parent().

Referenced by setInternalModel().

◆ removeItem

void Isis::AbstractProjectItemView::removeItem ( ProjectItem * item)
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.

Parameters
[in]item(ProjectItem *) The item to remove.

Definition at line 278 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel().

Referenced by Isis::AbstractProjectItemView::removeItems().

◆ removeItems

void Isis::AbstractProjectItemView::removeItems ( QList< ProjectItem * > items)
virtualslotinherited

Removes several items from the view.

The items must be a part of the view's model.

Parameters
[in]items(QList<ProjectItem *>) The items to remove.

Definition at line 292 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::removeItem().

◆ resizeEvent()

void Isis::AbstractProjectItemView::resizeEvent ( QResizeEvent * event)
virtualinherited

Definition at line 166 of file AbstractProjectItemView.cpp.

◆ selectedItems()

QList< ProjectItem * > Isis::AbstractProjectItemView::selectedItems ( )
virtualinherited

Return the selected items of the model.

Returns
QList<ProjectItem *> The items

Definition at line 238 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::model().

◆ setInternalModel()

void Isis::ProjectItemTreeView::setInternalModel ( ProjectItemModel * model)
virtual

Sets the model so that the internal proxy model exactly matches the source model.

Parameters
[in]model(ProjectItemModel *) The source model.

Reimplemented from Isis::AbstractProjectItemView.

Definition at line 90 of file ProjectItemTreeView.cpp.

References Isis::AbstractProjectItemView::internalModel(), m_treeView, Isis::AbstractProjectItemView::model(), onItemAdded(), and Isis::AbstractProjectItemView::setInternalModel().

Referenced by ProjectItemTreeView().

◆ setModel()

void Isis::AbstractProjectItemView::setModel ( ProjectItemModel * model)
virtualinherited

Sets the model used by the view.

If the internal model is a proxy model, it sets the source model.

Parameters
[in]model(ProjectItemModel *) The new model

Definition at line 69 of file AbstractProjectItemView.cpp.

References Isis::AbstractProjectItemView::internalModel(), and Isis::AbstractProjectItemView::model().

Referenced by Isis::Directory::addCubeDnView(), Isis::Directory::addFootprint2DView(), and Isis::Directory::addProjectItemTreeView().

◆ sizeHint()

QSize Isis::ProjectItemTreeView::sizeHint ( ) const
virtual

Returns the suggested size.

Returns
QSize The size hint

Reimplemented from Isis::AbstractProjectItemView.

Definition at line 61 of file ProjectItemTreeView.cpp.

◆ treeView()

QTreeView * Isis::ProjectItemTreeView::treeView ( )

Returns the tree view.

Returns
QTreeView* The tree view.

Definition at line 79 of file ProjectItemTreeView.cpp.

References m_treeView.

Member Data Documentation

◆ m_internalModel

ProjectItemModel* Isis::AbstractProjectItemView::m_internalModel
privateinherited

◆ m_treeView

QTreeView* Isis::ProjectItemTreeView::m_treeView
private

The tree view (widget)

Definition at line 77 of file ProjectItemTreeView.h.

Referenced by onItemAdded(), ProjectItemTreeView(), setInternalModel(), and treeView().


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