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 
19 class QAction;
20 class QXmlStreamWriter;
21 
22 namespace 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,
75  Selected = 2,
77  ShowLabel = 16,
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 
159 
160 #endif
TargetBodyDisplayProperties.h
Isis::Color
This class is designed to serialize QColor in a human-readable form.
Definition: Color.h:26
FileName.h
Isis::TargetBodyDisplayProperties
This is the GUI communication mechanism for target body objects.
Definition: TargetBodyDisplayProperties.h:63
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::TargetBodyDisplayProperties::getValue
QVariant getValue(Property prop) const
Get a property's associated data.
Definition: TargetBodyDisplayProperties.cpp:119
Isis::TargetBodyDisplayProperties::TargetBodyDisplayProperties
TargetBodyDisplayProperties(QString displayName, QObject *parent=NULL)
TargetBodyDisplayProperties constructor.
Definition: TargetBodyDisplayProperties.cpp:24
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::XmlStackedHandlerReader::pushContentHandler
virtual void pushContentHandler(XmlStackedHandler *newHandler)
Push a contentHandler and maybe continue parsing...
Definition: XmlStackedHandlerReader.cpp:55
Isis::TargetBodyDisplayProperties::setColor
void setColor(QColor newColor)
Change the color associated with this target.
Definition: TargetBodyDisplayProperties.cpp:176
Isis::TargetBodyDisplayProperties::supportAdded
void supportAdded(Property)
Isis::DisplayProperties
Definition: DisplayProperties.h:34
Isis::XmlStackedHandler::startElement
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Definition: XmlStackedHandler.cpp:44
Isis::TargetBodyDisplayProperties::~TargetBodyDisplayProperties
virtual ~TargetBodyDisplayProperties()
The destructor.
Definition: TargetBodyDisplayProperties.cpp:55
Isis::TargetBodyDisplayProperties::ShowLabel
@ ShowLabel
True if the control net should show its display name (bool)
Definition: TargetBodyDisplayProperties.h:77
Isis::XmlStackedHandlerReader
Manage a stack of content handlers for reading XML files.
Definition: XmlStackedHandlerReader.h:30
Isis::TargetBodyDisplayProperties::Selected
@ Selected
The selection state of this control net (bool)
Definition: TargetBodyDisplayProperties.h:75
Isis::TargetBodyDisplayProperties::setSelected
void setSelected(bool)
Change the selected state associated with this target.
Definition: TargetBodyDisplayProperties.cpp:186
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::TargetBodyDisplayProperties::save
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
Definition: TargetBodyDisplayProperties.cpp:152
Isis::ReadWrite
const int ReadWrite
Definition: Process.h:24
Pvl.h
Isis::TargetBodyDisplayProperties::Property
Property
This is a list of properties and actions that are possible.
Definition: TargetBodyDisplayProperties.h:69
DisplayProperties.h
Isis::DisplayProperties::displayName
QString displayName() const
Returns the display name.
Definition: DisplayProperties.cpp:88
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QList< Isis::TargetBodyDisplayProperties * >)
Isis::TargetBodyDisplayProperties::None
@ None
Null display property for bit-flag purposes.
Definition: TargetBodyDisplayProperties.h:71
Isis::XmlStackedHandler::endElement
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: XmlStackedHandler.cpp:55
Isis::TargetBodyDisplayProperties::propertyChanged
void propertyChanged(TargetBodyDisplayProperties *)
Isis::TargetBodyDisplayProperties::randomColor
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
Definition: TargetBodyDisplayProperties.cpp:129
Isis::TargetBodyDisplayProperties::addSupport
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition: TargetBodyDisplayProperties.cpp:95
Isis::TargetBodyDisplayProperties::supports
bool supports(Property prop)
Support for this may come later.
Definition: TargetBodyDisplayProperties.cpp:108
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
QMap< int, QVariant >
QObject
QAction
XmlStackedHandlerReader.h
XmlStackedHandler.h
Isis::TargetBodyDisplayProperties::setShowLabel
void setShowLabel(bool)
Change the visibility of the display name associated with this target.
Definition: TargetBodyDisplayProperties.cpp:196
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16