Isis Developer Reference
TargetBodyDisplayProperties.h
Go to the documentation of this file.
1#ifndef TargetBodyDisplayProperties_H
2#define TargetBodyDisplayProperties_H
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QColor> // This is required since QColor is in a slot
13#include <QMetaType> // required since we're adding to QVariant
14#include <QObject>
15
16#include "DisplayProperties.h"
17
18class QAction;
19class QXmlStreamWriter;
20
21namespace Isis {
22 class FileName;
23 class Project;
24 class Pvl;
25 class PvlObject;
26
62 Q_OBJECT
63 public:
67 enum Property {
69 None = 0,
71 Color = 1,
76 };
77
78
79 TargetBodyDisplayProperties(QString displayName, QObject *parent = NULL);
81
82// void fromPvl(const PvlObject &pvl);
83// PvlObject toPvl() const;
84
85 void addSupport(Property prop);
86 bool supports(Property prop);
87
88 QVariant getValue(Property prop) const;
89
90 static QColor randomColor();
91
92 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
93
94 signals:
97
98 public slots:
99 void setColor(QColor newColor);
100 void setShowLabel(bool);
101 void setSelected(bool);
102
103 private slots:
104 void toggleShowLabel();
105
106 private:
109
110 void setValue(Property prop, QVariant value);
111 static QList<TargetBodyDisplayProperties *> senderToData(QObject *sender);
112
118 Property m_propertiesUsed;
119
124 QMap<int, QVariant> *m_propertyValues;
125 };
126}
127
128Q_DECLARE_METATYPE(QList<Isis::TargetBodyDisplayProperties *>);
129
130#endif
Q_DECLARE_METATYPE(QList< Isis::TargetBodyDisplayProperties * >)
This class is designed to serialize QColor in a human-readable form.
Definition Color.h:26
Definition DisplayProperties.h:32
QString displayName() const
Returns the display name.
Definition DisplayProperties.cpp:79
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:287
This is the GUI communication mechanism for target body objects.
Definition TargetBodyDisplayProperties.h:61
Property
This is a list of properties and actions that are possible.
Definition TargetBodyDisplayProperties.h:67
@ Selected
The selection state of this control net (bool)
Definition TargetBodyDisplayProperties.h:73
@ None
Null display property for bit-flag purposes.
Definition TargetBodyDisplayProperties.h:69
@ ShowLabel
True if the control net should show its display name (bool)
Definition TargetBodyDisplayProperties.h:75
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
Definition TargetBodyDisplayProperties.cpp:138
TargetBodyDisplayProperties(QString displayName, QObject *parent=NULL)
TargetBodyDisplayProperties constructor.
Definition TargetBodyDisplayProperties.cpp:23
bool supports(Property prop)
Support for this may come later.
Definition TargetBodyDisplayProperties.cpp:94
QVariant getValue(Property prop) const
Get a property's associated data.
Definition TargetBodyDisplayProperties.cpp:105
virtual ~TargetBodyDisplayProperties()
The destructor.
Definition TargetBodyDisplayProperties.cpp:41
void setColor(QColor newColor)
Change the color associated with this target.
Definition TargetBodyDisplayProperties.cpp:162
void propertyChanged(TargetBodyDisplayProperties *)
void setShowLabel(bool)
Change the visibility of the display name associated with this target.
Definition TargetBodyDisplayProperties.cpp:182
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
Definition TargetBodyDisplayProperties.cpp:115
void setSelected(bool)
Change the selected state associated with this target.
Definition TargetBodyDisplayProperties.cpp:172
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition TargetBodyDisplayProperties.cpp:81
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16