1#include "TargetBodyDisplayProperties.h"
11#include <QXmlStreamWriter>
15#include "XmlStackedHandlerReader.h"
48 xmlReader->pushContentHandler(
new XmlHandler(
this));
98 emit supportAdded(prop);
136 while (red + green + blue < 300) {
138 green = rand() % 256;
142 return QColor(red, green, blue, 60);
154 stream.writeStartElement(
"displayProperties");
156 stream.writeAttribute(
"displayName",
displayName());
160 dataBuffer.open(QIODevice::ReadWrite);
161 QDataStream propsStream(&dataBuffer);
165 stream.writeCharacters(dataBuffer.data().toHex());
167 stream.writeEndElement();
209 QList<TargetBodyDisplayProperties *> displays =
senderToData(sender());
215 foreach (display, displays) {
229 m_displayProperties = displayProperties;
244 const QString &localName,
const QString &qName,
const QXmlAttributes &atts) {
245 if (XmlStackedHandler::startElement(namespaceURI, localName, qName, atts)) {
246 if (localName ==
"displayProperties") {
272 return XmlStackedHandler::characters(ch);
289 const QString &localName,
const QString &qName) {
290 if (localName ==
"displayProperties") {
291 QByteArray hexValues(m_hexData.toLatin1());
292 QDataStream valuesStream(QByteArray::fromHex(hexValues));
293 valuesStream >> *m_displayProperties->m_propertyValues;
296 return XmlStackedHandler::endElement(namespaceURI, localName, qName);
311 (*m_propertyValues)[prop] = value;
314 emit propertyChanged(
this);
331 QList<TargetBodyDisplayProperties *> data;
335 QVariant callerData = caller->data();
337 if (callerData.canConvert< QList<TargetBodyDisplayProperties *> >() ) {
338 data = callerData.value< QList<TargetBodyDisplayProperties *> >();
This class is designed to serialize QColor in a human-readable form.
QString displayName() const
Returns the display name.
File name manipulation and expansion.
The main project for ipce.
Process an XML file containing information about a WorkOrder.
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
This overrides the parent startElement function in XmlStackedHandler so the parser can handle an XML ...
XmlHandler(TargetBodyDisplayProperties *displayProperties)
Constructor for the XmlHandler class.
virtual bool characters(const QString &ch)
This implementation of a virtual function calls QXmlDefaultHandler::characters(QString &ch) which in ...
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
The XML reader invokes this method at the end of every element in the XML document.
This is the GUI communication mechanism for target body objects.
Property
This is a list of properties and actions that are possible.
@ Selected
The selection state of this control net (bool)
@ None
Null display property for bit-flag purposes.
@ ShowLabel
True if the control net should show its display name (bool)
Property m_propertiesUsed
This indicated whether any widgets with this DisplayProperties is using a particular property.
void save(QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
Saves this object to an XML file.
TargetBodyDisplayProperties(QString displayName, QObject *parent=NULL)
TargetBodyDisplayProperties constructor.
static QList< TargetBodyDisplayProperties * > senderToData(QObject *sender)
Return display properties associated with a slot.
void toggleShowLabel()
Change the visibility of the display name.
bool supports(Property prop)
Support for this may come later.
QVariant getValue(Property prop) const
Get a property's associated data.
virtual ~TargetBodyDisplayProperties()
The destructor.
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...
void setColor(QColor newColor)
Change the color associated with this target.
void setShowLabel(bool)
Change the visibility of the display name associated with this target.
static QColor randomColor()
Creates and returns a random color for the initial color of the footprint polygon.
void setSelected(bool)
Change the selected state associated with this target.
void addSupport(Property prop)
Call this with every property you support, otherwise they will not communicate properly between widge...
void setValue(Property prop, QVariant value)
This is the generic mutator for properties.
Manage a stack of content handlers for reading XML files.
This is free and unencumbered software released into the public domain.