Isis 3 Programmer Reference
TargetBodyDisplayProperties.h
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:
98 void propertyChanged(TargetBodyDisplayProperties *);
99 void supportAdded(Property);
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:
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
149
154 QMap<int, QVariant> *m_propertyValues;
155 };
156}
157
158Q_DECLARE_METATYPE(QList<Isis::TargetBodyDisplayProperties *>);
159
160#endif
This class is designed to serialize QColor in a human-readable form.
Definition Color.h:26
QString displayName() const
Returns the display name.
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
Process an XML file containing information about a WorkOrder.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
This overrides the parent startElement function in XmlStackedHandler so the parser can handle an XML ...
XmlHandler(TargetBodyDisplayProperties *displayProperties)
Constructor for the XmlHandler class.
virtual bool characters(const QString &ch)
This implementation of a virtual function calls QXmlDefaultHandler::characters(QString &ch) which in ...
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
The XML reader invokes this method at the end of every element in the XML document.
This is the GUI communication mechanism for target body objects.
Property
This is a list of properties and actions that are possible.
@ Selected
The selection state of this control net (bool)
@ None
Null display property for bit-flag purposes.
@ ShowLabel
True if the control net should show its display name (bool)
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
TargetBodyDisplayProperties(QString displayName, QObject *parent=NULL)
TargetBodyDisplayProperties constructor.
static QList< TargetBodyDisplayProperties * > senderToData(QObject *sender)
Return display properties associated with a slot.
void toggleShowLabel()
Change the visibility of the display name.
bool supports(Property prop)
Support for this may come later.
QVariant getValue(Property prop) const
Get a property's associated data.
QMap< int, QVariant > * m_propertyValues
This is a map from Property to value – the reason I use an int is so Qt knows how to serialize this Q...
void setColor(QColor newColor)
Change the color associated with this target.
void setShowLabel(bool)
Change the visibility of the display name associated with this target.
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
void setSelected(bool)
Change the selected state associated with this target.
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.
XML Handler that parses XMLs in a stack-oriented way.
Manage a stack of content handlers for reading XML files.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16