Isis 3 Programmer Reference
ControlDisplayProperties.h
Go to the documentation of this file.
1 #ifndef ControlDisplayProperties_H
2 #define ControlDisplayProperties_H
3 
26 #include <QObject>
27 #include <QMetaType> // required since we're adding to QVariant
28 #include <QColor> // This is required since QColor is in a slot
29 
30 #include "DisplayProperties.h"
31 #include "XmlStackedHandler.h"
32 
33 class QAction;
34 class QXmlStreamWriter;
35 
36 namespace Isis {
37  class FileName;
38  class Project;
39  class Pvl;
40  class PvlObject;
41  class XmlStackedHandlerReader;
42 
74  Q_OBJECT
75  public:
79  enum Property {
81  None = 0,
83  Color = 1,
85  Selected = 2,
87  ShowLabel = 16,
88  };
89 
90 
91  ControlDisplayProperties(QString displayName, QObject *parent = NULL);
92  ControlDisplayProperties(XmlStackedHandlerReader *xmlReader, QObject *parent = NULL);
93  virtual ~ControlDisplayProperties();
94 
95 // void fromPvl(const PvlObject &pvl);
96 // PvlObject toPvl() const;
97 
98  void addSupport(Property prop);
99  bool supports(Property prop);
100 
101  QVariant getValue(Property prop) const;
102 
103  static QColor randomColor();
104 
105  void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
106 
107  signals:
108  void propertyChanged(ControlDisplayProperties *);
109  void supportAdded(Property);
110 
111  public slots:
112  void setColor(QColor newColor);
113  void setShowLabel(bool);
114  void setSelected(bool);
115 
116  private slots:
117  void toggleShowLabel();
118 
119  private:
125  class XmlHandler : public XmlStackedHandler {
126  public:
127  XmlHandler(ControlDisplayProperties *displayProperties);
128 
129  virtual bool startElement(const QString &namespaceURI, const QString &localName,
130  const QString &qName, const QXmlAttributes &atts);
131 
132  virtual bool characters(const QString &ch);
133 
134  virtual bool endElement(const QString &namespaceURI, const QString &localName,
135  const QString &qName);
136 
137  private:
138  Q_DISABLE_COPY(XmlHandler);
139 
140  ControlDisplayProperties *m_displayProperties;
141  QString m_hexData;
142  };
143 
144  private:
147 
148  void setValue(Property prop, QVariant value);
150 
157 
163  };
164 }
165 
167 
168 #endif
169 
void setSelected(bool)
Change the selected state associated with this cube.
ControlDisplayProperties(QString displayName, QObject *parent=NULL)
ControlDisplayProperties constructor.
Property
This is a list of properties and actions that are possible.
This class is designed to serialize QColor in a human-readable form.
Definition: Color.h:20
The main project for ipce.
Definition: Project.h:289
File name manipulation and expansion.
Definition: FileName.h:116
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 ...
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
QString displayName() const
Returns the display name.
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *&#39;s to be stored in a QVariant.
static QColor randomColor()
Creates and returns a random color for the intial color of the footprint polygon. ...
True if the control net should show its display name (bool)
bool supports(Property prop)
Support may come later, please make sure you are connected to the supportAdded signal.
This is the GUI communication mechanism for cubes.
void toggleShowLabel()
Change the visibility of the display name.
void setShowLabel(bool)
Change the visibility of the display name associated with this cube.
XML Handler that parses XMLs in a stack-oriented way.
static QList< ControlDisplayProperties * > senderToData(QObject *sender)
This is for the slots that have a list of display properties as associated data.
Null display property for bit-flag purposes.
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property...
QVariant getValue(Property prop) const
Get a property&#39;s associated data.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
The selection state of this control net (bool)
void setColor(QColor newColor)
Change the color associated with this cube.
Manage a stack of content handlers for reading XML files.
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.