Isis Developer Reference
ImportShapesWorkOrder.h
Go to the documentation of this file.
1#ifndef ImportShapesWorkOrder_H
2#define ImportShapesWorkOrder_H
23#include "WorkOrder.h"
24
25#include <functional>
26
27#include <QDir>
28#include <QMutex>
29
30#include "IException.h"
31
32class QString;
33
34namespace Isis {
35 class Cube;
36 class FileName;
37 class ShapeList;
38
67 Q_OBJECT
68 public:
72
73 virtual ImportShapesWorkOrder *clone() const;
74
75 virtual bool isExecutable(ProjectItem *item);
76 bool setupExecution();
77
78 void execute();
79 void postExecution();
80 void undoExecution();
81 void postUndoExecution();
82
83 private:
84 ImportShapesWorkOrder &operator=(const ImportShapesWorkOrder &rhs);
85
95 class OriginalFileToProjectCubeFunctor :
96 public std::function<Cube *(const FileName &)> {
97 public:
98 OriginalFileToProjectCubeFunctor(QThread *guiThread,
99 QDir destinationFolder, bool copyDnData);
100 OriginalFileToProjectCubeFunctor(const OriginalFileToProjectCubeFunctor &other);
101 ~OriginalFileToProjectCubeFunctor();
102
103 Cube *operator()(const FileName &original);
104
105 IException errors() const;
106
107 private:
109 OriginalFileToProjectCubeFunctor &operator=(const OriginalFileToProjectCubeFunctor &rhs);
110
111 QDir m_destinationFolder;
112 bool m_copyDnData;
113 QThread *m_guiThread;
114
115 QMutex m_errorsLock;
116 QSharedPointer<IException> m_errors;
117 QSharedPointer<int> m_numErrors;
118 };
119
120 private:
121 void importConfirmedShapes(QStringList confirmedShapes, bool copyDnData);
122
123 private:
124 ShapeList *m_newShapes;
125 ShapeList *m_list;
126 QString m_warning;
127 };
128}
129#endif // ImportShapesWorkOrder_H
IO Handler for Isis Cubes.
Definition Cube.h:168
File name manipulation and expansion.
Definition FileName.h:100
Isis exception class.
Definition IException.h:91
Add shape model cubes to a project.
Definition ImportShapesWorkOrder.h:66
void postUndoExecution()
delete the imported shapes from the project.
Definition ImportShapesWorkOrder.cpp:206
virtual bool isExecutable(ProjectItem *item)
This method returns true if the user clicked on a project tree node with the text "Shapes".
Definition ImportShapesWorkOrder.cpp:102
bool setupExecution()
Prompt the user for shape files to import and whether to copy DN data in to project.
Definition ImportShapesWorkOrder.cpp:126
void postExecution()
Add the imported shapes into the project.
Definition ImportShapesWorkOrder.cpp:231
void undoExecution()
delete the imported shapes from the disk.
Definition ImportShapesWorkOrder.cpp:191
virtual ImportShapesWorkOrder * clone() const
This method clones the current ImportShapesWorkOrder and returns it.
Definition ImportShapesWorkOrder.cpp:88
void execute()
Creates a project shape folder and copies the shape cubes into it.
Definition ImportShapesWorkOrder.cpp:219
~ImportShapesWorkOrder()
Destructor.
Definition ImportShapesWorkOrder.cpp:74
ImportShapesWorkOrder(Project *project)
Creates a work order to import a shape model.
Definition ImportShapesWorkOrder.cpp:45
The main project for ipce.
Definition Project.h:289
Represents an item of a ProjectItemModel in Qt's model-view framework.
Definition ProjectItem.h:134
Internalizes a list of shapes and allows for operations on the entire list.
Definition ShapeList.h:33
Provide Undo/redo abilities, serialization, and history for an operation.
Definition WorkOrder.h:311
Project * project() const
Returns the Project this WorkOrder is attached to.
Definition WorkOrder.cpp:1298
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16