Isis 3 Programmer Reference
ShapeDisplayProperties.h
1 #ifndef ShapeDisplayProperties_H
2 #define ShapeDisplayProperties_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 
61  Q_OBJECT
62  public:
66  enum Property {
68  None = 0,
70  Color = 1,
72  Selected = 2,
74  ShowLabel = 16,
75  };
76 
77 
78  ShapeDisplayProperties(QString displayName, QObject *parent = NULL);
79  ShapeDisplayProperties(XmlStackedHandlerReader *xmlReader, QObject *parent = NULL);
80  virtual ~ShapeDisplayProperties();
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:
95  void propertyChanged(ShapeDisplayProperties *);
96  void supportAdded(Property);
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:
115  class XmlHandler : public XmlStackedHandler {
116  public:
117  XmlHandler(ShapeDisplayProperties *displayProperties);
118 
119  virtual bool startElement(const QString &namespaceURI, const QString &localName,
120  const QString &qName, const QXmlAttributes &atts);
121 
122  virtual bool characters(const QString &ch);
123 
124  virtual bool endElement(const QString &namespaceURI, const QString &localName,
125  const QString &qName);
126 
127  private:
128  Q_DISABLE_COPY(XmlHandler);
129 
130  ShapeDisplayProperties *m_displayProperties;
131  QString m_hexData;
132  };
133 
134  private:
137 
138  void setValue(Property prop, QVariant value);
140 
147 
153  };
154 }
155 
157 
158 #endif
Isis::ShapeDisplayProperties::toggleShowLabel
void toggleShowLabel()
Change the visibility of the display name.
Definition: ShapeDisplayProperties.cpp:177
Isis::Color
This class is designed to serialize QColor in a human-readable form.
Definition: Color.h:26
Isis::ShapeDisplayProperties::None
@ None
Null display property for bit-flag purposes.
Definition: ShapeDisplayProperties.h:68
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::ShapeDisplayProperties::setValue
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.
Definition: ShapeDisplayProperties.cpp:280
Isis::ShapeDisplayProperties::addSupport
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition: ShapeDisplayProperties.cpp:68
Isis::DisplayProperties
Definition: DisplayProperties.h:34
Isis::ShapeDisplayProperties::setColor
void setColor(QColor newColor)
Change the color associated with this shape.
Definition: ShapeDisplayProperties.cpp:147
Isis::ShapeDisplayProperties::save
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
Definition: ShapeDisplayProperties.cpp:124
Isis::ShapeDisplayProperties::Property
Property
This is a list of properties and actions that are possible.
Definition: ShapeDisplayProperties.h:66
Isis::ShapeDisplayProperties::Selected
@ Selected
The selection state of this control net (bool)
Definition: ShapeDisplayProperties.h:72
Isis::ShapeDisplayProperties::ShapeDisplayProperties
ShapeDisplayProperties(QString displayName, QObject *parent=NULL)
ShapeDisplayProperties constructor.
Definition: ShapeDisplayProperties.cpp:25
Isis::XmlStackedHandlerReader
Manage a stack of content handlers for reading XML files.
Definition: XmlStackedHandlerReader.h:30
Isis::ShapeDisplayProperties
This is the GUI communication mechanism for shape objects.
Definition: ShapeDisplayProperties.h:60
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::ShapeDisplayProperties::m_propertyValues
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...
Definition: ShapeDisplayProperties.h:152
Isis::ShapeDisplayProperties::senderToData
static QList< ShapeDisplayProperties * > senderToData(QObject *sender)
Get the display properties from a slot.
Definition: ShapeDisplayProperties.cpp:300
Isis::ShapeDisplayProperties::XmlHandler
This class is used for processing an XML file containing information about a WorkOrder.
Definition: ShapeDisplayProperties.h:115
Isis::ShapeDisplayProperties::XmlHandler::characters
virtual bool characters(const QString &ch)
This is called when the XML processor has parsed a chunk of character data.
Definition: ShapeDisplayProperties.cpp:240
Isis::ShapeDisplayProperties::~ShapeDisplayProperties
virtual ~ShapeDisplayProperties()
The destructor.
Definition: ShapeDisplayProperties.cpp:56
Isis::DisplayProperties::displayName
QString displayName() const
Returns the display name.
Definition: DisplayProperties.cpp:88
Isis::ShapeDisplayProperties::supports
bool supports(Property prop)
Support for this may come later.
Definition: ShapeDisplayProperties.cpp:81
Isis::ShapeDisplayProperties::XmlHandler::startElement
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 ...
Definition: ShapeDisplayProperties.cpp:212
Isis::ShapeDisplayProperties::getValue
QVariant getValue(Property prop) const
Get a property's associated data.
Definition: ShapeDisplayProperties.cpp:92
Isis::ShapeDisplayProperties::m_propertiesUsed
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property.
Definition: ShapeDisplayProperties.h:146
Isis::ShapeDisplayProperties::XmlHandler::XmlHandler
XmlHandler(ShapeDisplayProperties *displayProperties)
Constructor for the XmlHandler class.
Definition: ShapeDisplayProperties.cpp:197
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
QMap< int, QVariant >
QObject
QAction
Isis::ShapeDisplayProperties::XmlHandler::endElement
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.
Definition: ShapeDisplayProperties.cpp:259
Isis::ShapeDisplayProperties::setSelected
void setSelected(bool)
Change the selected state associated with this shape.
Definition: ShapeDisplayProperties.cpp:156
Isis::ShapeDisplayProperties::randomColor
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
Definition: ShapeDisplayProperties.cpp:102
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(Isis::PlotWindow *)
We have plot windows as QVariant data types, so here it's enabled.
Isis::ShapeDisplayProperties::setShowLabel
void setShowLabel(bool)
Change the visibility of the display name associated with this shape.
Definition: ShapeDisplayProperties.cpp:165
Isis::ShapeDisplayProperties::ShowLabel
@ ShowLabel
True if the control net should show its display name (bool)
Definition: ShapeDisplayProperties.h:74