Isis 3.0 Programmer Reference
Back | Home
MosaicSceneWidgetTester.cpp
1 #include "MosaicSceneWidgetTester.h"
2 
3 #include <iostream>
4 #include <iomanip>
5 
6 #include <QMetaType>
7 #include <QSettings>
8 #include <QSignalSpy>
9 #include <QStatusBar>
10 #include <QTest>
11 #include <QtWidgets>
12 #include <QTreeWidgetItem>
13 
14 #include "FileName.h"
15 #include "Image.h"
16 #include "ImageList.h"
17 #include "MosaicSceneItem.h"
18 #include "MosaicSceneWidget.h"
19 
20 namespace Isis {
25  QStatusBar status;
26 
27  MosaicSceneWidget widget(&status, true, true, NULL);
28  widget.show();
29  QTest::qWaitForWindowExposed(widget.windowHandle());
30  QVERIFY(widget.getProgress());
31  QVERIFY(widget.getView());
32  QVERIFY(widget.getScene());
33  QVERIFY(widget.getProjection() == NULL);
34 
35  Image *image = new Image(QString("./lub3994m.342.lev1.cub"));
36  QScopedPointer<QMutex> cameraMutex(new QMutex);
37  image->initFootprint(cameraMutex.data());
38 
39  ImageList images;
40  images.append(image);
41 
42  widget.addImages(images);
43 
44  QCOMPARE(widget.allMosaicSceneItems().count(), 1);
45  QCOMPARE(image, widget.allMosaicSceneItems().first()->image());
46  QVERIFY(widget.cubesSelectable());
47 
48  // Check that the bounding rect is approx. the same
49  QRectF expected(QPointF(2376269.37351469, -964957.418535598), QSize(109739, 48049));
50 
51  QVERIFY(qAbs(widget.cubesBoundingRect().top() - expected.top()) < 0.0001);
52  QVERIFY(qAbs(widget.cubesBoundingRect().left() - expected.left()) < 0.0001);
53  QVERIFY(qAbs(widget.cubesBoundingRect().bottom() - expected.bottom()) < 1);
54  QVERIFY(qAbs(widget.cubesBoundingRect().right() - expected.right()) < 1);
55  }
56 
57 
58  void MosaicSceneWidgetTester::testSynchronization() {
59  QStatusBar status;
60 
61  MosaicSceneWidget widget(&status, true, true, NULL);
62  widget.show();
63  QTest::qWaitForWindowExposed(widget.windowHandle());
64 
65  Image *image = new Image(QString("./lub3994m.342.lev1.cub"));
66  QScopedPointer<QMutex> cameraMutex(new QMutex);
67  image->initFootprint(cameraMutex.data());
68 
69  ImageList images;
70  images.append(image);
71 
72  widget.addImages(images);
73 
74  MosaicSceneItem *sceneItem = widget.allMosaicSceneItems().first();
75 
76  ImageDisplayProperties *displayProperties = image->displayProperties();
77  QCOMPARE(sceneItem->color(),
78  displayProperties->getValue(ImageDisplayProperties::Color).value<QColor>());
79  QCOMPARE(sceneItem->isSelected(),
80  displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
81 
82  sceneItem->setSelected(true);
83 
84  QVERIFY(sceneItem->isSelected());
85  QCOMPARE(sceneItem->isSelected(),
86  displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
87 
88  displayProperties->setSelected(false);
89 
90  QVERIFY(!displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
91  QCOMPARE(sceneItem->isSelected(),
92  displayProperties->getValue(ImageDisplayProperties::Selected).toBool());
93  }
94 }
QVariant getValue(int property) const
Get a property&#39;s associated data.
Internalizes a list of images and allows for operations on the entire list.
Definition: ImageList.h:44
This widget encompasses the entire mosaic scene.
void setSelected(bool)
Change the selected state associated with this cube.
This is the GUI communication mechanism for cubes.
This represents a cube in a project-based GUI interface.
Definition: Image.h:91
void append(Image *const &value)
Appends an image to the image list.
Definition: ImageList.cpp:150
The selection state of this cube (bool)
The color of the cube, default randomized (QColor)
A single cube in the mosaic scene.
void testBasicFunctionality()
This is a very basic functionality test.

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:24:06