Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Isis Developer Reference
ProjectItemModel.h
Go to the documentation of this file.
1#ifndef ProjectItemModel_h
2#define ProjectItemModel_h
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QStandardItemModel>
13
14#include "FileName.h"
15
16class QItemSelection;
17class QItemSelectionModel;
18class QMimeData;
19class QModelIndex;
20class QString;
21class QVariant;
22
23namespace Isis {
24
25 class ShapeList;
27 class Control;
28 class ControlList;
29 class FileName;
30 class GuiCameraList;
31 class ImageList;
32 class Project;
33 class ProjectItem;
34 class TargetBodyList;
35 class TemplateList;
36
132
133 Q_OBJECT
134
135 public:
136 ProjectItemModel(QObject *parent = 0);
138
139 QItemSelectionModel *selectionModel();
140
141 ProjectItem *addProject(Project *project);
142
143 ProjectItem *findItemData(const QVariant &data, int role = Qt::UserRole+1);
144
145 virtual bool canDropMimeData(const QMimeData *data,
146 Qt::DropAction action,
147 int row, int column,
148 const QModelIndex& parent) const;
149
150 virtual void removeItem(ProjectItem *item);
151 virtual void removeItems(QList<ProjectItem *> items);
152
156
157
159 void clean();
160 QModelIndex indexFromItem(const ProjectItem *item);
161 void insertRow(int row, ProjectItem *item);
162 ProjectItem *item(int row);
163 ProjectItem *itemFromIndex(const QModelIndex &index);
164 void setItem(int row, ProjectItem *item);
165 ProjectItem *takeItem(int row);
166
167 bool setData(const QModelIndex &index, const QVariant &value, int role);
168 Qt::ItemFlags flags(const QModelIndex &index) const;
169
170 signals:
175
176
181
185 void cleanProject(bool);
186
187
191 void projectNameEdited(QString);
192
193 protected slots:
194 void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
195
196 private slots:
197 void onNameChanged(QString newName);
198 void onBundleSolutionInfoAdded(BundleSolutionInfo *bundleSolutionInfo);
199 void onImagesAdded(ImageList *images);
200 void onShapesAdded(ShapeList *shapes);
201 void onControlAdded(Control *control);
202 void onControlListAdded(ControlList *controlList);
203 void onTargetsAdded(TargetBodyList *targets);
204 void onTemplatesAdded(TemplateList *templateList);
205 void onGuiCamerasAdded(GuiCameraList *cameras);
206 void onRowsInserted(const QModelIndex &parent, int start, int end);
207 void onRowsRemoved(const QModelIndex &parent, int start, int end);
208
209 private:
210
211 QItemSelectionModel *m_selectionModel;
212 QStringList m_reservedNames;
213 bool rejectName(QStringList &reserved, QString target);
214
215
216 };
217
218}
219
220#endif
Container class for BundleAdjustment results.
Definition BundleSolutionInfo.h:174
This represents an ISIS control net in a project-based GUI interface.
Definition Control.h:65
Maintains a list of Controls so that control nets can easily be copied from one Project to another,...
Definition ControlList.h:41
List of GuiCameras saved as QSharedPointers.
Definition GuiCameraList.h:32
Internalizes a list of images and allows for operations on the entire list.
Definition ImageList.h:52
The main project for ipce.
Definition Project.h:287
Represents an item of a ProjectItemModel in Qt's model-view framework.
Definition ProjectItem.h:134
ProjectItemModel(QObject *parent=0)
Constructs an empty model.
Definition ProjectItemModel.cpp:42
QList< ProjectItem * > selectedItems()
Returns a list of the selected items of the internal selection model.
Definition ProjectItemModel.cpp:156
void cleanProject(bool)
This signal is emitted whrn a ProjectItem's name is changed.
void appendRow(ProjectItem *item)
Appends a top-level item to the model.
Definition ProjectItemModel.cpp:352
void clean()
Used to clean the ProjectItemModel of everything but the headers.
Definition ProjectItemModel.cpp:950
void insertRow(int row, ProjectItem *item)
Inserts a top-level item at the given row.
Definition ProjectItemModel.cpp:375
void onSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Slot to connect to the selectionChanged() signal from a selection model.
Definition ProjectItemModel.cpp:773
void setItem(int row, ProjectItem *item)
Sets the item at the top-level row.
Definition ProjectItemModel.cpp:410
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
You cannot drop mime data into the ProjectItemModel.
Definition ProjectItemModel.cpp:78
bool setData(const QModelIndex &index, const QVariant &value, int role)
This virtual method was added to handle changing the project name by double-clicking the project name...
Definition ProjectItemModel.cpp:852
ProjectItem * itemFromIndex(const QModelIndex &index)
Returns the ProjectItem corresponding to a given QModelIndex.
Definition ProjectItemModel.cpp:399
ProjectItem * takeItem(int row)
Removes the top-level row and returns the removed item.
Definition ProjectItemModel.cpp:422
~ProjectItemModel()
Destructs the model.
Definition ProjectItemModel.cpp:60
QList< ProjectItem * > selectedBOSSImages()
ProjectItemModel::selectedBOSSImages.
Definition ProjectItemModel.cpp:175
void itemAdded(ProjectItem *)
This signal is emitted when a ProjectItem is added to the model.
ProjectItem * item(int row)
Returns the top-level item at the given row.
Definition ProjectItemModel.cpp:387
virtual void removeItems(QList< ProjectItem * > items)
Removes a list of items and their children from the model.
Definition ProjectItemModel.cpp:340
ProjectItem * addProject(Project *project)
Adds a Project to the model.
Definition ProjectItemModel.cpp:105
ProjectItem * findItemData(const QVariant &data, int role=Qt::UserRole+1)
Returns the first item found that contains the given data in the given role or a null pointer if no i...
Definition ProjectItemModel.cpp:288
ProjectItem * currentItem()
Returns the current item of the internal selection model.
Definition ProjectItemModel.cpp:137
void projectNameEdited(QString)
This signal is emitted when the project name is edited.
QModelIndex indexFromItem(const ProjectItem *item)
Returns the QModelIndex corresponding to a given ProjectItem.
Definition ProjectItemModel.cpp:364
void itemRemoved(ProjectItem *)
This signal is emitted when a ProjectItem is removed to the model.
virtual void removeItem(ProjectItem *item)
Removes an item and its children from the model.
Definition ProjectItemModel.cpp:313
Qt::ItemFlags flags(const QModelIndex &index) const
This virtual method was added to handle changing the project name by double-clicking the project name...
Definition ProjectItemModel.cpp:912
QItemSelectionModel * selectionModel()
Returns the internal selection model.
Definition ProjectItemModel.cpp:91
Internalizes a list of shapes and allows for operations on the entire list.
Definition ShapeList.h:30
List for holding TargetBodies.
Definition TargetBodyList.h:30
Definition TemplateList.h:35
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16