Isis 3.0 Programmer Reference
Back | Home
ProjectItemTreeView.cpp
Go to the documentation of this file.
1 
23 #include "ProjectItemTreeView.h"
24 
25 #include <QEvent>
26 #include <QObject>
27 #include <QTreeView>
28 #include <QVBoxLayout>
29 #include <QWidget>
30 
31 #include "ProjectItem.h"
32 #include "ProjectItemModel.h"
33 
34 namespace Isis {
41 
42  m_treeView = new QTreeView(this);
43  m_treeView->installEventFilter(this);
45  m_treeView->setDragEnabled(true);
46  m_treeView->setAcceptDrops(false);
47  m_treeView->setHeaderHidden(true);
48 
49  setAcceptDrops(true);
50 
51  QBoxLayout *layout = new QVBoxLayout;
52  layout->addWidget(m_treeView);
53  layout->setContentsMargins(0, 0, 0, 0);
54 
55  setLayout(layout);
56  }
57 
58 
63 
64 
71  return m_treeView;
72  }
73 
74 
82  disconnect(internalModel(), 0, this, 0);
83 
85  m_treeView->reset();
86  m_treeView->setModel(model);
87  m_treeView->setSelectionModel( model->selectionModel() );
88  m_treeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
89 
90  connect( model, SIGNAL( itemAdded(ProjectItem *) ),
91  this, SLOT( onItemAdded(ProjectItem *) ) );
92  }
93 
94 
101  ProjectItem *parent = item->parent();
102  if (!parent) {
103  return;
104  }
105  if ( !parent->isImageList() && !parent->isControlList() ) {
106  m_treeView->expand( parent->index() );
107  }
108  }
109 
110 
120  bool ProjectItemTreeView::eventFilter(QObject *watched, QEvent *event) {
121  if (event->type() == QEvent::DragEnter) {
122  return true;
123  }
124  else if (event->type() == QEvent::Drop) {
125  return true;
126  }
127 
128  return AbstractProjectItemView::eventFilter(watched, event);
129  }
130 
131 }
void onItemAdded(ProjectItem *item)
Expands the parent project item in the tree view to show the added item.
$Date$ $Revision$
QTreeView * treeView()
Returns the tree view.
~ProjectItemTreeView()
Default destructor.
virtual void setInternalModel(ProjectItemModel *model)
Sets the internal model of the view.
bool isImageList() const
Returns true if an ImageList is stored in the data of the item.
ProjectItem * parent() const
Returns the parent item of this item.
QTreeView * m_treeView
The tree view (widget)
AbstractProjectItemView is a base class for views of a ProjectItemModel in Qt&#39;s model-view framework...
Provides access to data stored in a Project through Qt&#39;s model-view framework.
virtual ProjectItemModel * internalModel()
Returns the internal model of the view.
QItemSelectionModel * selectionModel()
Returns the internal selection model.
bool eventFilter(QObject *watched, QEvent *event)
Filters out drag and drop events so that they are handled by the ProjectItemTreeView.
ProjectItemTreeView(QWidget *parent=0)
Constructs a ProjectItemTreeView.
$Date$ $Revision$
bool isControlList() const
Returns true if a ControlList is stored in the data of the item.
Represents an item of a ProjectItemModel in Qt&#39;s model-view framework.
Definition: ProjectItem.h:113
virtual void setInternalModel(ProjectItemModel *model)
Sets the model so that the internal proxy model exactly matches the source model. ...
$Date$ $Revision$

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 ISIS Support Center
File Modified: 07/12/2023 23:26:50