Isis 3 Programmer Reference
DisplayProperties.h
1#ifndef DisplayProperties_H
2#define DisplayProperties_H
3
10/* SPDX-License-Identifier: CC0-1.0 */
11
12#include <QObject>
13
14// This is required since QColor is in a slot
15#include <QColor>
16
17#include "XmlStackedHandler.h"
18
19class QAction;
20class QBitArray;
21class QXmlStreamWriter;
22
23namespace Isis {
24 class FileName;
25 class Project;
26 class Pvl;
27 class PvlObject;
28
34 class DisplayProperties : public QObject {
35 Q_OBJECT
36 public:
37 DisplayProperties(QString displayName, QObject *parent = NULL);
38 DisplayProperties(XmlStackedHandlerReader *xmlReader, QObject *parent = NULL);
39 virtual ~DisplayProperties();
40
41 void fromPvl(const PvlObject &pvl);
42 void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const;
43 PvlObject toPvl() const;
44
45 void addSupport(int property);
46 bool supports(int property);
47
48 QVariant getValue(int property) const;
49
50 void setDisplayName(QString displayName);
51 QString displayName() const;
52
53 static QColor randomColor();
54
55 signals:
56 void propertyChanged(DisplayProperties *);
57 void supportAdded(int);
58
59 protected:
60 void setValue(int prop, QVariant value);
61
62 private:
63 Q_DISABLE_COPY(DisplayProperties);
64
71 public:
72 XmlHandler(DisplayProperties *displayProperties);
73
74 virtual bool startElement(const QString &namespaceURI, const QString &localName,
75 const QString &qName, const QXmlAttributes &atts);
76
77 virtual bool characters(const QString &ch);
78
79 virtual bool endElement(const QString &namespaceURI, const QString &localName,
80 const QString &qName);
81
82 private:
83 Q_DISABLE_COPY(XmlHandler);
84
85 DisplayProperties *m_displayProperties;
86 QString m_hexData;
87 };
88
89
90 private:
91
96
103
108 QMap<int, QVariant> *m_propertyValues;
109 };
110}
111
112#endif
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(int property) const
Get a property's associated data.
QString displayName() const
Returns the display name.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Output format:
void setDisplayName(QString displayName)
Sets display name.
void setValue(int prop, QVariant value)
This is the generic mutator for properties.
virtual ~DisplayProperties()
destructor
PvlObject toPvl() const
Convert to Pvl for project files.
QString m_displayName
This is the display name.
DisplayProperties(QString displayName, QObject *parent=NULL)
DisplayProperties constructor.
bool supports(int property)
Support may come later, please make sure you are connected to the supportAdded signal.
void addSupport(int property)
Call this with every property you support, otherwise they will not communicate properly between widge...
int m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particulay property.
File name manipulation and expansion.
Definition FileName.h:100
The main project for ipce.
Definition Project.h:289
Contains Pvl Groups and Pvl Objects.
Definition PvlObject.h:61
XML Handler that parses XMLs in a stack-oriented way.
Manage a stack of content handlers for reading XML files.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16