File failed to load: https://isis.astrogeology.usgs.gov/9.0.0/Object/assets/jax/output/NativeMML/config.js
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
38
39
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.
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.
void restoreZPositions(bool zValuesMightBeInUse)
MosaicSceneWidget * scene()
Returns the MosaicSceneWidget corresponding to this work order's interal data (the MosaicSceneWidget'...
The main project for ipce.
Definition Project.h:287
Provide Undo/redo abilities, serialization, and history for an operation.
Definition WorkOrder.h:311
QStringList internalData() const
Gets the internal data for this WorkOrder.
Directory * directory() const
return the workorder project directory Returns the Directory object of the Project this WorkOrder is ...
ImageList * imageList()
Returns a pointer to the ImageList for this WorkOrder.
This is free and unencumbered software released into the public domain.
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