Isis 3 Programmer Reference
ImportControlNetWorkOrder.h
Go to the documentation of this file.
1 #ifndef ImportControlNetWorkOrder_H
2 #define ImportControlNetWorkOrder_H
3 
25 #include "WorkOrder.h"
26 
27 #include <functional>
28 
29 #include <QDir>
30 #include <QFutureWatcher>
31 #include <QString>
32 
33 #include "IException.h"
34 
35 namespace Isis {
36  class Control;
37  class FileName;
38  class Progress;
39  class Project;
40 
73  Q_OBJECT
74  public:
78 
79  virtual ImportControlNetWorkOrder *clone() const;
80 
81  virtual bool isExecutable(ProjectItem *item);
82  bool setupExecution();
83  void execute();
84 
85  protected:
86  void postExecution();
87 
88  private slots:
89  void cnetReady(int ready);
90 
91  private:
93 // Control *createControls(const QString &cnetFilename);
94 
101  class CreateControlsFunctor : public std::unary_function<
102  const QPair<FileName, Progress *> &, Control *> {
103  public:
104  CreateControlsFunctor(Project *project, QDir destinationFolder);
105  Control *operator()(const QPair<FileName, Progress *> &cnetFilename);
106  IException errors() const;
107 
108  private:
112  };
113 
114  private:
118  QString m_warning;
119  };
120 }
121 #endif // ImportControlNetWorkOrder_H
This represents an ISIS control net in a project-based GUI interface.
Definition: Control.h:79
virtual ImportControlNetWorkOrder * clone() const
This method clones the current ImportControlNetWorkOrder and returns it.
QFutureWatcher< Control * > * m_watcher
QFutureWatcher, allows for asynchronous import.
The main project for ipce.
Definition: Project.h:289
CreateControlsFunctor(Project *project, QDir destinationFolder)
CreateControlsFunctor constructor.
virtual bool isExecutable(ProjectItem *item)
This method returns true if the user clicked on a project tree node with the text "Control Networks"...
ControlList * m_list
List of controls added to project.
Maintains a list of Controls so that control nets can easily be copied from one Project to another...
Definition: ControlList.h:36
QList< Progress * > m_readProgresses
Keeps track of import progress.
Control * operator()(const QPair< FileName, Progress *> &cnetFilename)
Reads and writes the control network(s) asynchronously.
QDir m_destinationFolder
The directory to copy the control net too.
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.
Add control networks to a project c Asks the user for a list of control nets and copies them into the...
void cnetReady(int ready)
Adds the control net to the project.
bool setupExecution()
Sets up the work order for execution.
ImportControlNetWorkOrder(Project *project)
Creates a work order to import a control network.
void execute()
Imports the control network asynchronously.
QString m_warning
String of any errors/warnings that occurred during import.
IException errors() const
Indicates if any errors occurred during the import.
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
QSharedPointer< IException > m_errors
Stores any errors that occur during import.
Project * project() const
Returns the Project this WorkOrder is attached to.
Definition: WorkOrder.cpp:1314