1 #include <QApplication>
34 m_qnetTool = qnetTool;
36 openAction()->setText(
"Open control network and cube list");
37 openAction()->setToolTip(
"Open control network and cube list");
39 "<b>Function:</b> Open a <i>control network</i> \
40 <p><b>Shortcut:</b> Ctrl+O\n</p>";
43 saveAction()->setText(
"Save Control Network &As...");
45 "<b>Function:</b> Save the current <i>control network</i> under chosen filename";
51 m_openGround =
new QAction(parent);
52 m_openGround->setText(
"Open &Ground Source");
53 m_openGround->setStatusTip(
"Open a ground source for choosing ground points");
55 "<b>Function:</b> Open and display a ground source for choosing ground points."
56 "This can be level1, level2 or dem cube.";
57 m_openGround->setWhatsThis(whatsThis);
58 m_openGround->setEnabled(
false);
59 connect (m_openGround,SIGNAL(activated()),
this,SIGNAL(newGroundFile()));
61 m_openDem =
new QAction(parent);
62 m_openDem->setText(
"Open &Radius Source");
64 "<b>Function:</b> Open a DEM for determining the radius when "
65 "choosing ground points. This is not the file that will be displayed "
66 "to be used for visually picking points. This is strictly used to "
67 "determine the radius value.";
68 m_openDem->setWhatsThis(whatsThis);
69 m_openDem->setEnabled(
false);
70 connect (m_openDem,SIGNAL(activated()),
this,SIGNAL(newDemFile()));
74 QnetFileTool::~QnetFileTool() {
79 menu->addAction(m_openGround);
80 menu->addAction(m_openDem);
87 return m_qnetTool->controlNet();
91 SerialNumberList *QnetFileTool::serialNumberList() {
92 return m_qnetTool->serialNumberList();
121 if (serialNumberList() != NULL && m_isDirty) {
123 int resp = QMessageBox::warning((
QWidget *)parent(),
"Qnet",
124 "The control network files has been modified.\n"
125 "Do you want to save your changes?",
126 QMessageBox::Yes | QMessageBox::Default,
128 QMessageBox::Cancel | QMessageBox::Escape);
129 if (resp == QMessageBox::Yes) {
135 QString filter =
"List of cubes (*.lis *.lst *.list);;";
136 filter +=
"Text file (*.txt);;";
138 QString list = QFileDialog::getOpenFileName((
QWidget *)parent(),
139 "Select a list of cubes",
147 QString dir = file.
path();
149 QApplication::setOverrideCursor(Qt::WaitCursor);
156 QString message =
"Error processing cube list. \n";
159 QMessageBox::information((
QWidget *)parent(),
"Error", message);
160 QApplication::restoreOverrideCursor();
164 QApplication::restoreOverrideCursor();
165 filter =
"Control net (*.net *.cnet *.ctl);;";
166 filter +=
"Pvl file (*.pvl);;";
167 filter +=
"Text file (*.txt);;";
169 QString cNetFileName = QFileDialog::getOpenFileName((
QWidget *)parent(),
170 "Select a control network",
173 QApplication::setOverrideCursor(Qt::WaitCursor);
174 if (cNetFileName.isEmpty()) {
178 QScopedPointer<Cube> cube(
new Cube());
179 cube->open(serialNumberList()->
FileName(0));
180 controlNet()->
SetTarget(cube->camera()->target()->name());
185 *controlNet() =
ControlNet(cNetFileName, &progress);
188 QString message =
"Invalid control network. \n";
191 QMessageBox::information((
QWidget *)parent(),
"Error", message);
192 QApplication::restoreOverrideCursor();
200 controlNet()->
SetImages(*serialNumberList(), &progress);
203 QString message =
"Cannot initialize images in control network. \n";
206 QMessageBox::information((
QWidget *)parent(),
"Error", message);
207 QApplication::restoreOverrideCursor();
211 m_openGround->setEnabled(
true);
212 m_openDem->setEnabled(
true);
214 QApplication::restoreOverrideCursor();
216 m_cnetFileName = cNetFileName;
217 emit serialNumberListUpdated();
218 emit controlNetworkUpdated(cNetFileName);
219 emit newControlNetwork(controlNet());
229 int resp = QMessageBox::warning((
QWidget *)parent(),
"QnetTool",
230 "The control network files has been modified.\n"
231 "Do you want to save your changes?",
232 QMessageBox::Yes | QMessageBox::Default,
234 QMessageBox::Cancel | QMessageBox::Escape);
235 if (resp == QMessageBox::Yes) {
238 if (resp == QMessageBox::Cancel) {
257 controlNet()->
Write(m_cnetFileName);
273 QString filter =
"Control net (*.net *.cnet *.ctl);;";
274 filter +=
"Pvl file (*.pvl);;";
275 filter +=
"Text file (*.txt);;";
277 QString fn = QFileDialog::getSaveFileName((
QWidget *)parent(),
278 "Choose filename to save under",
282 controlNet()->
Write(fn);
285 QString message =
"Error saving control network. \n";
288 QMessageBox::information((
QWidget *)parent(),
"Error", message);
293 QMessageBox::information((
QWidget *)parent(),
294 "Error",
"Saving Aborted");
297 emit controlNetworkUpdated(fn);
322 QString tempFileName = serialNumberList()->
FileName(serialNumber);
323 QString filename = tempFileName;
326 for (
int i = 0; i < (int)cvpList->size(); i++) {
328 if (sn == serialNumber) {
329 m_qnetTool->workspace()->mdiArea()->setActiveSubWindow(
351 for (
int i = 0; i < point->GetNumMeasures(); i++) {
352 QString cubeSN = (*point)[i]->GetCubeSerialNumber();