Isis 3.0
Home
ImportImagesWorkOrder.h
Go to the documentation of this file.
1 #ifndef ImportImagesWorkOrder_H
2 #define ImportImagesWorkOrder_H
3 
25 #include "WorkOrder.h"
26 
27 #include <functional>
28 
29 #include <QDir>
30 #include <QMutex>
31 
32 #include "IException.h"
33 
34 class QString;
35 
36 namespace Isis {
37  class Cube;
38  class FileName;
39 
62  Q_OBJECT
63  public:
67 
68  virtual ImportImagesWorkOrder *clone() const;
69 
70  bool execute();
71 
72  void asyncRedo();
73  void postSyncRedo();
74  void asyncUndo();
75  void postSyncUndo();
76 
77  private:
78  ImportImagesWorkOrder &operator=(const ImportImagesWorkOrder &rhs);
79 
88  class OriginalFileToProjectCubeFunctor :
89  public std::unary_function<const FileName &, Cube *> {
90  public:
91  OriginalFileToProjectCubeFunctor(QThread *guiThread,
92  QDir destinationFolder, bool copyDnData);
93  OriginalFileToProjectCubeFunctor(const OriginalFileToProjectCubeFunctor &other);
94  ~OriginalFileToProjectCubeFunctor();
95 
96  Cube *operator()(const FileName &original);
97 
98  IException errors() const;
99 
100  private:
102  OriginalFileToProjectCubeFunctor &operator=(const OriginalFileToProjectCubeFunctor &rhs);
103 
104  QDir m_destinationFolder;
105  bool m_copyDnData;
106  QThread *m_guiThread;
107 
108  QMutex m_errorsLock;
109  QSharedPointer<IException> m_errors;
110  QSharedPointer<int> m_numErrors;
111  };
112 
113  private:
114  void importConfirmedImages(QStringList confirmedImages, bool copyDnData);
115 
116  private:
117  ImageList *m_newImages;
118  QString m_warning;
119  };
120 }
121 #endif // ImportImagesWorkOrder_H
Internalizes a list of images and allows for operations on the entire list.
Definition: ImageList.h:44
The main project for cnetsuite.
Definition: Project.h:105
File name manipulation and expansion.
Definition: FileName.h:111
virtual ImportImagesWorkOrder * clone() const
Definition: ImportImagesWorkOrder.cpp:61
Project * project() const
Returns the Project this WorkOrder is attached to.
Definition: WorkOrder.cpp:1116
void asyncRedo()
This method is designed to be implemented by children work orders.
Definition: ImportImagesWorkOrder.cpp:153
Add cubes to a project.
Definition: ImportImagesWorkOrder.h:61
Parent class for anything that performs an action in Project.
Definition: WorkOrder.h:104
void postSyncUndo()
This method is designed to be implemented by children work orders.
Definition: ImportImagesWorkOrder.cpp:143
~ImportImagesWorkOrder()
Definition: ImportImagesWorkOrder.cpp:55
Isis exception class.
Definition: IException.h:99
void postSyncRedo()
This method is designed to be implemented by children work orders.
Definition: ImportImagesWorkOrder.cpp:160
bool execute()
The (child) implementation of this method should prompt the user/gather state by any means necessary...
Definition: ImportImagesWorkOrder.cpp:66
ImportImagesWorkOrder(Project *project)
Definition: ImportImagesWorkOrder.cpp:39
void asyncUndo()
This method is designed to be implemented by children work orders.
Definition: ImportImagesWorkOrder.cpp:137
IO Handler for Isis Cubes.
Definition: Cube.h:158