Isis Developer Reference
ControlDisplayProperties.h
Go to the documentation of this file.
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
19class QAction;
20class QXmlStreamWriter;
21
22namespace 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,
74 };
75
76
77 ControlDisplayProperties(QString displayName, QObject *parent = NULL);
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:
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);
135 static QList<ControlDisplayProperties *> senderToData(QObject *sender);
136
142 Property m_propertiesUsed;
143
148 QMap<int, QVariant> *m_propertyValues;
149 };
150}
151
152Q_DECLARE_METATYPE(QList<Isis::ControlDisplayProperties *>);
153
154#endif
Q_DECLARE_METATYPE(QList< Isis::ControlDisplayProperties * >)
This class is designed to serialize QColor in a human-readable form.
Definition Color.h:26
This is the GUI communication mechanism for cubes.
Definition ControlDisplayProperties.h:59
void propertyChanged(ControlDisplayProperties *)
void setColor(QColor newColor)
Change the color associated with this cube.
Definition ControlDisplayProperties.cpp:143
static QColor randomColor()
Creates and returns a random color for the intial color of the footprint polygon.
Definition ControlDisplayProperties.cpp:104
ControlDisplayProperties(QString displayName, QObject *parent=NULL)
ControlDisplayProperties constructor.
Definition ControlDisplayProperties.cpp:34
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Definition ControlDisplayProperties.cpp:121
QVariant getValue(Property prop) const
Get a property's associated data.
Definition ControlDisplayProperties.cpp:95
bool supports(Property prop)
Support may come later, please make sure you are connected to the supportAdded signal.
Definition ControlDisplayProperties.cpp:85
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition ControlDisplayProperties.cpp:71
virtual ~ControlDisplayProperties()
destructor
Definition ControlDisplayProperties.cpp:61
Property
This is a list of properties and actions that are possible.
Definition ControlDisplayProperties.h:65
@ None
Null display property for bit-flag purposes.
Definition ControlDisplayProperties.h:67
@ ShowLabel
True if the control net should show its display name (bool)
Definition ControlDisplayProperties.h:73
@ Selected
The selection state of this control net (bool)
Definition ControlDisplayProperties.h:71
void setShowLabel(bool)
Change the visibility of the display name associated with this cube.
Definition ControlDisplayProperties.cpp:159
void setSelected(bool)
Change the selected state associated with this cube.
Definition ControlDisplayProperties.cpp:151
Definition DisplayProperties.h:34
QString displayName() const
Returns the display name.
Definition DisplayProperties.cpp:88
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
XML Handler that parses XMLs in a stack-oriented way.
Definition XmlStackedHandler.h:118
Manage a stack of content handlers for reading XML files.
Definition XmlStackedHandlerReader.h:30
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16