Isis Developer Reference
ShapeDisplayProperties.h
Go to the documentation of this file.
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:
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
115 Property m_propertiesUsed;
116
121 QMap<int, QVariant> *m_propertyValues;
122 };
123}
124
125Q_DECLARE_METATYPE(QList<Isis::ShapeDisplayProperties *>);
126
127#endif
Q_DECLARE_METATYPE(QList< Isis::ShapeDisplayProperties * >)
This class is designed to serialize QColor in a human-readable form.
Definition Color.h:26
Definition DisplayProperties.h:32
QString displayName() const
Returns the display name.
Definition DisplayProperties.cpp:79
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.
Definition ShapeDisplayProperties.h:58
bool supports(Property prop)
Support for this may come later.
Definition ShapeDisplayProperties.cpp:67
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
Definition ShapeDisplayProperties.cpp:88
virtual ~ShapeDisplayProperties()
The destructor.
Definition ShapeDisplayProperties.cpp:42
Property
This is a list of properties and actions that are possible.
Definition ShapeDisplayProperties.h:64
@ None
Null display property for bit-flag purposes.
Definition ShapeDisplayProperties.h:66
@ Selected
The selection state of this control net (bool)
Definition ShapeDisplayProperties.h:70
@ ShowLabel
True if the control net should show its display name (bool)
Definition ShapeDisplayProperties.h:72
void setColor(QColor newColor)
Change the color associated with this shape.
Definition ShapeDisplayProperties.cpp:133
QVariant getValue(Property prop) const
Get a property's associated data.
Definition ShapeDisplayProperties.cpp:78
void setShowLabel(bool)
Change the visibility of the display name associated with this shape.
Definition ShapeDisplayProperties.cpp:151
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
Definition ShapeDisplayProperties.cpp:110
void propertyChanged(ShapeDisplayProperties *)
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
Definition ShapeDisplayProperties.cpp:54
void setSelected(bool)
Change the selected state associated with this shape.
Definition ShapeDisplayProperties.cpp:142
ShapeDisplayProperties(QString displayName, QObject *parent=NULL)
ShapeDisplayProperties constructor.
Definition ShapeDisplayProperties.cpp:24
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16