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#include "XmlStackedHandler.h"
18
19class QAction;
20class QXmlStreamWriter;
21
22namespace Isis {
23 class FileName;
24 class Project;
25 class Pvl;
26 class PvlObject;
27 class XmlStackedHandlerReader;
28
64 Q_OBJECT
65 public:
69 enum Property {
71 None = 0,
73 Color = 1,
78 };
79
80
81 TargetBodyDisplayProperties(QString displayName, QObject *parent = NULL);
84
85// void fromPvl(const PvlObject &pvl);
86// PvlObject toPvl() const;
87
88 void addSupport(Property prop);
89 bool supports(Property prop);
90
91 QVariant getValue(Property prop) const;
92
93 static QColor randomColor();
94
95 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
96
97 signals:
100
101 public slots:
102 void setColor(QColor newColor);
103 void setShowLabel(bool);
104 void setSelected(bool);
105
106 private slots:
107 void toggleShowLabel();
108
109 private:
117 class XmlHandler : public XmlStackedHandler {
118 public:
119 XmlHandler(TargetBodyDisplayProperties *displayProperties);
120
121 virtual bool startElement(const QString &namespaceURI, const QString &localName,
122 const QString &qName, const QXmlAttributes &atts);
123
124 virtual bool characters(const QString &ch);
125
126 virtual bool endElement(const QString &namespaceURI, const QString &localName,
127 const QString &qName);
128
129 private:
130 Q_DISABLE_COPY(XmlHandler);
131
132 TargetBodyDisplayProperties *m_displayProperties;
133 QString m_hexData;
134 };
135
136 private:
139
140 void setValue(Property prop, QVariant value);
141 static QList<TargetBodyDisplayProperties *> senderToData(QObject *sender);
142
148 Property m_propertiesUsed;
149
154 QMap<int, QVariant> *m_propertyValues;
155 };
156}
157
158Q_DECLARE_METATYPE(QList<Isis::TargetBodyDisplayProperties *>);
159
160#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:34
QString displayName() const
Returns the display name.
Definition DisplayProperties.cpp:88
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
This is the GUI communication mechanism for target body objects.
Definition TargetBodyDisplayProperties.h:63
Property
This is a list of properties and actions that are possible.
Definition TargetBodyDisplayProperties.h:69
@ Selected
The selection state of this control net (bool)
Definition TargetBodyDisplayProperties.h:75
@ None
Null display property for bit-flag purposes.
Definition TargetBodyDisplayProperties.h:71
@ ShowLabel
True if the control net should show its display name (bool)
Definition TargetBodyDisplayProperties.h:77
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
Definition TargetBodyDisplayProperties.cpp:152
TargetBodyDisplayProperties(QString displayName, QObject *parent=NULL)
TargetBodyDisplayProperties constructor.
Definition TargetBodyDisplayProperties.cpp:24
bool supports(Property prop)
Support for this may come later.
Definition TargetBodyDisplayProperties.cpp:108
QVariant getValue(Property prop) const
Get a property's associated data.
Definition TargetBodyDisplayProperties.cpp:119
virtual ~TargetBodyDisplayProperties()
The destructor.
Definition TargetBodyDisplayProperties.cpp:55
void setColor(QColor newColor)
Change the color associated with this target.
Definition TargetBodyDisplayProperties.cpp:176
void propertyChanged(TargetBodyDisplayProperties *)
void setShowLabel(bool)
Change the visibility of the display name associated with this target.
Definition TargetBodyDisplayProperties.cpp:196
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
Definition TargetBodyDisplayProperties.cpp:129
void setSelected(bool)
Change the selected state associated with this target.
Definition TargetBodyDisplayProperties.cpp:186
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition TargetBodyDisplayProperties.cpp:95
XML Handler that parses XMLs in a stack-oriented way.
Definition XmlStackedHandler.h:118
Manage a stack of content handlers for reading XML files.
Definition XmlStackedHandlerReader.h:30
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16