File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
ControlDisplayProperties.h
1 #ifndef ControlDisplayProperties_H
2 #define ControlDisplayProperties_H
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <QObject>
13 #include <QMetaType> // required since we're adding to QVariant
14 #include <QColor> // This is required since QColor is in a slot
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 
60  Q_OBJECT
61  public:
65  enum Property {
67  None = 0,
69  Color = 1,
71  Selected = 2,
73  ShowLabel = 16,
74  };
75 
76 
77  ControlDisplayProperties(QString displayName, QObject *parent = NULL);
78  ControlDisplayProperties(XmlStackedHandlerReader *xmlReader, QObject *parent = NULL);
79  virtual ~ControlDisplayProperties();
80 
81 // void fromPvl(const PvlObject &pvl);
82 // PvlObject toPvl() const;
83 
84  void addSupport(Property prop);
85  bool supports(Property prop);
86 
87  QVariant getValue(Property prop) const;
88 
89  static QColor randomColor();
90 
91  void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
92 
93  signals:
94  void propertyChanged(ControlDisplayProperties *);
95  void supportAdded(Property);
96 
97  public slots:
98  void setColor(QColor newColor);
99  void setShowLabel(bool);
100  void setSelected(bool);
101 
102  private slots:
103  void toggleShowLabel();
104 
105  private:
111  class XmlHandler : public XmlStackedHandler {
112  public:
113  XmlHandler(ControlDisplayProperties *displayProperties);
114 
115  virtual bool startElement(const QString &namespaceURI, const QString &localName,
116  const QString &qName, const QXmlAttributes &atts);
117 
118  virtual bool characters(const QString &ch);
119 
120  virtual bool endElement(const QString &namespaceURI, const QString &localName,
121  const QString &qName);
122 
123  private:
124  Q_DISABLE_COPY(XmlHandler);
125 
126  ControlDisplayProperties *m_displayProperties;
127  QString m_hexData;
128  };
129 
130  private:
133 
134  void setValue(Property prop, QVariant value);
136 
143 
149  };
150 }
151 
153 
154 #endif
Isis::ControlDisplayProperties::XmlHandler
Definition: ControlDisplayProperties.h:111
Isis::Color
This class is designed to serialize QColor in a human-readable form.
Definition: Color.h:26
Isis::ControlDisplayProperties::senderToData
static QList< ControlDisplayProperties * > senderToData(QObject *sender)
This is for the slots that have a list of display properties as associated data.
Definition: ControlDisplayProperties.cpp:241
Isis::ControlDisplayProperties::None
@ None
Null display property for bit-flag purposes.
Definition: ControlDisplayProperties.h:67
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::ControlDisplayProperties::m_propertiesUsed
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property.
Definition: ControlDisplayProperties.h:142
Isis::ControlDisplayProperties::randomColor
static QColor randomColor()
Creates and returns a random color for the intial color of the footprint polygon.
Definition: ControlDisplayProperties.cpp:104
Isis::FileName
File name manipulation and expansion.
Definition: FileName.h:100
Isis::DisplayProperties
Definition: DisplayProperties.h:34
Isis::ControlDisplayProperties::ShowLabel
@ ShowLabel
True if the control net should show its display name (bool)
Definition: ControlDisplayProperties.h:73
Isis::ControlDisplayProperties
This is the GUI communication mechanism for cubes.
Definition: ControlDisplayProperties.h:59
Isis::ControlDisplayProperties::toggleShowLabel
void toggleShowLabel()
Change the visibility of the display name.
Definition: ControlDisplayProperties.cpp:169
Isis::ControlDisplayProperties::Selected
@ Selected
The selection state of this control net (bool)
Definition: ControlDisplayProperties.h:71
Isis::ControlDisplayProperties::~ControlDisplayProperties
virtual ~ControlDisplayProperties()
destructor
Definition: ControlDisplayProperties.cpp:61
Isis::XmlStackedHandlerReader
Manage a stack of content handlers for reading XML files.
Definition: XmlStackedHandlerReader.h:30
Isis::Project
The main project for ipce.
Definition: Project.h:289
Isis::ControlDisplayProperties::setSelected
void setSelected(bool)
Change the selected state associated with this cube.
Definition: ControlDisplayProperties.cpp:151
Isis::ControlDisplayProperties::ControlDisplayProperties
ControlDisplayProperties(QString displayName, QObject *parent=NULL)
ControlDisplayProperties constructor.
Definition: ControlDisplayProperties.cpp:34
Isis::ControlDisplayProperties::supports
bool supports(Property prop)
Support may come later, please make sure you are connected to the supportAdded signal.
Definition: ControlDisplayProperties.cpp:85
Isis::DisplayProperties::displayName
QString displayName() const
Returns the display name.
Definition: DisplayProperties.cpp:88
Isis::ControlDisplayProperties::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: ControlDisplayProperties.h:148
Isis::ControlDisplayProperties::setShowLabel
void setShowLabel(bool)
Change the visibility of the display name associated with this cube.
Definition: ControlDisplayProperties.cpp:159
Isis::ControlDisplayProperties::setColor
void setColor(QColor newColor)
Change the color associated with this cube.
Definition: ControlDisplayProperties.cpp:143
Isis::ControlDisplayProperties::addSupport
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition: ControlDisplayProperties.cpp:71
Isis::ControlDisplayProperties::setValue
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.
Definition: ControlDisplayProperties.cpp:226
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
QMap< int, QVariant >
Isis::ControlDisplayProperties::Property
Property
This is a list of properties and actions that are possible.
Definition: ControlDisplayProperties.h:65
QObject
QAction
Isis::ControlDisplayProperties::getValue
QVariant getValue(Property prop) const
Get a property's associated data.
Definition: ControlDisplayProperties.cpp:95
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.

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:17