Isis 3 Developer Reference
ImportShapesWorkOrder.h
Go to the documentation of this file.
1 #ifndef ImportShapesWorkOrder_H
2 #define ImportShapesWorkOrder_H
3 
23 #include "WorkOrder.h"
24 
25 #include <functional>
26 
27 #include <QDir>
28 #include <QMutex>
29 
30 #include "IException.h"
31 
32 class QString;
33 
34 namespace 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::unary_function<const FileName &, Cube *> {
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
Internalizes a list of shapes and allows for operations on the entire list.
Definition: ShapeList.h:33
The main project for ipce.
Definition: Project.h:289
File name manipulation and expansion.
Definition: FileName.h:116
Add shape model cubes to a project.
Definition: ImportShapesWorkOrder.h:66
void execute()
Creates a project shape folder and copies the shape cubes into it.
Definition: ImportShapesWorkOrder.cpp:219
void postExecution()
Add the imported shapes into the project.
Definition: ImportShapesWorkOrder.cpp:231
virtual ImportShapesWorkOrder * clone() const
This method clones the current ImportShapesWorkOrder and returns it.
Definition: ImportShapesWorkOrder.cpp:88
void undoExecution()
delete the imported shapes from the disk.
Definition: ImportShapesWorkOrder.cpp:191
Provide Undo/redo abilities, serialization, and history for an operation.
Definition: WorkOrder.h:322
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
ImportShapesWorkOrder(Project *project)
Creates a work order to import a shape model.
Definition: ImportShapesWorkOrder.cpp:45
bool setupExecution()
Prompt the user for shape files to import and whether to copy DN data in to project.
Definition: ImportShapesWorkOrder.cpp:126
Definition: JigsawWorkOrder.h:28
void postUndoExecution()
delete the imported shapes from the project.
Definition: ImportShapesWorkOrder.cpp:206
Represents an item of a ProjectItemModel in Qt&#39;s model-view framework.
Definition: ProjectItem.h:146
Isis exception class.
Definition: IException.h:107
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
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
Project * project() const
Returns the Project this WorkOrder is attached to.
Definition: WorkOrder.cpp:1314
~ImportShapesWorkOrder()
Destructor.
Definition: ImportShapesWorkOrder.cpp:74
IO Handler for Isis Cubes.
Definition: Cube.h:170