Isis 3 Programmer Reference
MosaicSceneWorkOrder.cpp
1#include "MosaicSceneWorkOrder.h"
2
3#include <QProgressDialog>
4
5#include "Directory.h"
6#include "Footprint2DView.h"
7#include "MosaicSceneWidget.h"
8
9namespace Isis {
10
11 MosaicSceneWorkOrder::MosaicSceneWorkOrder(QString actionText, MosaicSceneWidget *scene,
12 Project *project) : WorkOrder(project) {
13
14 QAction::setText(actionText);
15 QUndoCommand::setText(tr("%1 on [%2]").arg(actionText).arg(scene->windowTitle()));
16
17 QStringList data;
18 data.append(scene->windowTitle());
19 setInternalData(data);
20 }
21
22
23 MosaicSceneWorkOrder::MosaicSceneWorkOrder(Project *project) :
24 WorkOrder(project) {
25 }
26
27
28 MosaicSceneWorkOrder::MosaicSceneWorkOrder(const MosaicSceneWorkOrder &other) :
29 WorkOrder(other) {
30 }
31
32
36 MosaicSceneWorkOrder::~MosaicSceneWorkOrder() {
37 }
38
39
49 MosaicSceneWidget *MosaicSceneWorkOrder::scene() {
50
51 MosaicSceneWidget *result = NULL;
52
53 foreach (Footprint2DView *scene, directory()->footprint2DViews()) {
54 if (internalData().first() == scene->mosaicSceneWidget()->windowTitle()) {
55 result = scene->mosaicSceneWidget();
56 }
57 }
58 return result;
59 }
60
61
66 void MosaicSceneWorkOrder::restoreZPositions(bool zValuesMightBeInUse) {
67 QStringList zPositions = internalData().mid(1);
68
69 MosaicSceneWidget *sceneWidget = scene();
70
71 QProgressDialog progress(tr("Restoring Z Values"), "", 0, imageList()->count());
72 progress.setCancelButton(NULL);
73 for (int i = imageList()->count() - 1; i >= 0; i--) {
74 int originalZ = qRound(zPositions[i].toDouble());
75 sceneWidget->moveZ(imageList()->at(i), originalZ, zValuesMightBeInUse);
76 progress.setValue(progress.value() + 1);
77 }
78 }
79
80
81 void MosaicSceneWorkOrder::storeZPositions(QList<double> zPositions) {
82 QStringList data;
83 data.append(internalData().first());
84
85 foreach (double zPosition, zPositions) {
86 data.append(QString::number(qRound(zPosition)));
87 }
88
89 setInternalData(data);
90 }
91}
View for displaying footprints of images in a QMos like way.
MosaicSceneWidget * mosaicSceneWidget()
Accessor for the MosaicSceneWidget.
This widget encompasses the entire mosaic scene.
double moveZ(MosaicSceneItem *sceneItem, double newZ, bool newZValueMightExist=true)
This method moves the given scene item to the given Z value.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
double toDouble(const QString &string)
Global function to convert from a string to a double.
Definition IString.cpp:149