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
18class QAction;
19class QXmlStreamWriter;
20
21namespace Isis {
22 class FileName;
23 class Project;
24 class Pvl;
25 class PvlObject;
26
59 Q_OBJECT
60 public:
64 enum Property {
66 None = 0,
68 Color = 1,
73 };
74
75
76 ShapeDisplayProperties(QString displayName, QObject *parent = NULL);
78
79// void fromPvl(const PvlObject &pvl);
80// PvlObject toPvl() const;
81
82 void addSupport(Property prop);
83 bool supports(Property prop);
84
85 QVariant getValue(Property prop) const;
86
87 static QColor randomColor();
88
89 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
90
91 signals:
92 void propertyChanged(ShapeDisplayProperties *);
93 void supportAdded(Property);
94
95 public slots:
96 void setColor(QColor newColor);
97 void setShowLabel(bool);
98 void setSelected(bool);
99
100 private slots:
101 void toggleShowLabel();
102
103 private:
106
107 void setValue(Property prop, QVariant value);
108 static QList<ShapeDisplayProperties *> senderToData(QObject *sender);
109
116
121 QMap<int, QVariant> *m_propertyValues;
122 };
123}
124
125Q_DECLARE_METATYPE(QList<Isis::ShapeDisplayProperties *>);
126
127#endif
This class is designed to serialize QColor in a human-readable form.
Definition Color.h:26
QString displayName() const
Returns the display name.
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:287
This is the GUI communication mechanism for shape objects.
bool supports(Property prop)
Support for this may come later.
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
virtual ~ShapeDisplayProperties()
The destructor.
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.
Property
This is a list of properties and actions that are possible.
@ None
Null display property for bit-flag purposes.
@ Selected
The selection state of this control net (bool)
@ ShowLabel
True if the control net should show its display name (bool)
void setColor(QColor newColor)
Change the color associated with this shape.
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property.
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...
QVariant getValue(Property prop) const
Get a property's associated data.
void setShowLabel(bool)
Change the visibility of the display name associated with this shape.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
static QList< ShapeDisplayProperties * > senderToData(QObject *sender)
Get the display properties from a slot.
void setSelected(bool)
Change the selected state associated with this shape.
void toggleShowLabel()
Change the visibility of the display name.
ShapeDisplayProperties(QString displayName, QObject *parent=NULL)
ShapeDisplayProperties constructor.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16