Isis 3 Programmer Reference
ImportControlNetWorkOrder.h
Go to the documentation of this file.
1#ifndef ImportControlNetWorkOrder_H
2#define ImportControlNetWorkOrder_H
25#include "WorkOrder.h"
26
27#include <functional>
28
29#include <QDir>
30#include <QFutureWatcher>
31#include <QString>
32
33#include "IException.h"
34
35namespace 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::function<
102 Control *(const QPair<FileName, Progress *> &)> {
103 public:
104 CreateControlsFunctor(Project *project, QDir destinationFolder);
105 Control *operator()(const QPair<FileName, Progress *> &cnetFilename);
106 IException errors() const;
107
108 private:
111 QSharedPointer<IException> m_errors;
112 };
113
114 private:
115 QFutureWatcher<Control *> *m_watcher;
117 QList<Progress *> m_readProgresses;
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:66
Maintains a list of Controls so that control nets can easily be copied from one Project to another,...
Definition ControlList.h:44
Isis exception class.
Definition IException.h:91
QSharedPointer< IException > m_errors
Stores any errors that occur during import.
Control * operator()(const QPair< FileName, Progress * > &cnetFilename)
Reads and writes the control network(s) asynchronously.
IException errors() const
Indicates if any errors occurred during the import.
CreateControlsFunctor(Project *project, QDir destinationFolder)
CreateControlsFunctor constructor.
QDir m_destinationFolder
The directory to copy the control net too.
Add control networks to a project c Asks the user for a list of control nets and copies them into the...
QList< Progress * > m_readProgresses
Keeps track of import progress.
ImportControlNetWorkOrder(Project *project)
Creates a work order to import a control network.
void execute()
Imports the control network asynchronously.
void cnetReady(int ready)
Adds the control net to the project.
bool setupExecution()
Sets up the work order for execution.
ControlList * m_list
List of controls added to project.
QString m_warning
String of any errors/warnings that occurred during import.
virtual ImportControlNetWorkOrder * clone() const
This method clones the current ImportControlNetWorkOrder and returns it.
QFutureWatcher< Control * > * m_watcher
QFutureWatcher, allows for asynchronous import.
virtual bool isExecutable(ProjectItem *item)
This method returns true if the user clicked on a project tree node with the text "Control Networks".
The main project for ipce.
Definition Project.h:289
Represents an item of a ProjectItemModel in Qt's model-view framework.
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.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16