Isis 3 Programmer Reference
CnetDisplayProperties.h
1#ifndef CnetDisplayProperties_H
2#define CnetDisplayProperties_H
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QObject>
13
14
15class QAtomicInt;
16template< typename T > class QFutureWatcher;
17template< typename A, typename B > class QMap;
18class QReadWriteLock;
19class QString;
20class QTimer;
21
22
23namespace Isis {
24 class ControlNet;
25
50 Q_OBJECT
51
52 public:
53 // this is a singleton class!
54 static CnetDisplayProperties *getInstance();
55 virtual ~CnetDisplayProperties();
56
57 bool currentlyComposing() const;
58
59 // enumeration of coordinate display type
61 LatLonRadius = 0,
62 XYZ = 1
63 };
64
65 QList<QString> getCubeList(ControlNet *cnet) const;
66 QString getFileName(QString fileName, bool forceFullPaths = false) const;
67 QString getImageName(QString cubeSerialNumber,
68 bool forceFullPaths = false) const;
69 QString getSerialNumber(QString imageId);
70 bool getShowsFullPaths() const;
72
73 void setCubeList(QString fileName);
74 void setFileNameUsage(bool preferFileNames);
75 void setShowsFullPaths(bool newState);
76 void setCoordinateDisplayType(enum coordinateDisplayType coordDisplay);
77
78
79 private:
81
82
83 private: // not implemented
86
87
88 signals:
89 void composeProgressChanged(int);
90 void composeProgressRangeChanged(int, int);
91 void compositionFinished();
92
93
94 private:
95 QMap< QString, QString > composeSerialNumbers(QStringList fileNames);
96 void nullify();
97
98
99 private slots:
100 void composeStatusUpdated();
101 void serialNumbersComposed();
102
103
104 private:
105 bool useFileNames;
106 QMap< QString, QString > * m_serialNumberToFileNameMap;
107
108 QFutureWatcher< QMap< QString, QString > > * m_composeWatcher;
109 QTimer *m_composeStatusPoller;
110
111 QAtomicInt *m_composedCount;
112 QAtomicInt *m_interruptFlag;
113 bool m_curComposing;
114 bool m_showFullPath;
115 QReadWriteLock *m_readWriteLock;
116 enum Isis::CnetDisplayProperties::coordinateDisplayType m_coordinateDisplayType;
117
118 static CnetDisplayProperties *m_instance;
119 };
120}
121
122#endif
Handles how control networks should be displayed to the user.
QList< QString > getCubeList(ControlNet *cnet) const
TODO comment me.
QString getImageName(QString cubeSerialNumber, bool forceFullPaths=false) const
void setCoordinateDisplayType(enum coordinateDisplayType coordDisplay)
Sets the coordinate display type (0 = LatLonRadius, 1 = XYZ).
coordinateDisplayType
Returns coordinate display type (0 = LatLonRadius, 1 = XYZ).
a control network
Definition ControlNet.h:258
This is free and unencumbered software released into the public domain.
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