Isis 3 Programmer Reference
SetActiveControlWorkOrder.cpp
Go to the documentation of this file.
1
22
23#include <QMessageBox>
24#include <QtDebug>
25
26#include "Control.h"
27#include "Directory.h"
28#include "IException.h"
29#include "Project.h"
30#include "ProjectItem.h"
31#include "ProjectItemModel.h"
32
33namespace Isis {
34
40 WorkOrder(project) {
41
42 // This workorder is not undoable
43 m_isUndoable = false;
44
45 QAction::setText(tr("Set Active Control Network") );
46 QUndoCommand::setText(tr("Set Active Control Network"));
47 }
48
49
57
58
64
65
73
74
82
83 // Return false if more than 1 control was selected or if selected is already active
84 if (controls) {
85 if (controls->size() != 1 || project()->activeControl() == controls->at(0)) {
86 return false;
87 }
88 return true;
89 }
90 return false;
91 }
92
93
100
101 bool success = WorkOrder::setupExecution();
102 if (success) {
103 if (!project()->activeImageList()) {
104
105 QMessageBox::critical(NULL, tr("Unable to set active control."),
106 tr("You must first choose an active Image List before setting "
107 "the active control net."));
108 success = false;
109 }
110 // So far, so good, set the command text
111 else {
112 QUndoCommand::setText(tr("Set Active Control Network to [%1]").arg(
113 controlList()->at(0)->displayProperties()->displayName()));
114 }
115 }
116
117 return success;
118 }
119
120
129 try {
130 project()->setActiveControl(controlList()->at(0)->displayProperties()->displayName());
131 }
132 catch (IException &e) {
133 m_status = WorkOrderFinished;
134 QMessageBox::critical(NULL, tr("Error"), tr(e.what()));
135 }
136 }
137}
Unless noted otherwise, the portions of Isis written by the USGS are public domain.
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
The main project for ipce.
Definition Project.h:289
void setActiveControl(QString displayName)
Set the Active Control (control network)
Definition Project.cpp:1818
This is a child of class WorkOrder which is used for anything that performs an action in a Project.
bool setupExecution()
Make sure an active ImageList has been chosen.
virtual SetActiveControlWorkOrder * clone() const
Returns a copy of this SetActiveControlWorkOrder instance.
SetActiveControlWorkOrder(Project *project)
Creates a WorkOrder that will set the active Control in the project.
void execute()
Set the active control net for the project.
virtual bool isExecutable(ControlList *controls)
Determines if we can set this control as active.
Provide Undo/redo abilities, serialization, and history for an operation.
Definition WorkOrder.h:311
@ WorkOrderFinished
This is used for work orders that will not undo or redo (See createsCleanState())
Definition WorkOrder.h:331
bool m_isUndoable
Set the workorder to be undoable/redoable This is defaulted to true - his will allow the workorder to...
Definition WorkOrder.h:523
virtual bool setupExecution()
This sets up the state for the work order.
QPointer< ControlList > controlList()
Returns the Control List for this WorkOrder (a list of control networks).
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