Isis 3 Programmer Reference
Isis::TargetBodyDisplayProperties Class Reference

This is the GUI communication mechanism for target body objects. More...

#include <TargetBodyDisplayProperties.h>

Inheritance diagram for Isis::TargetBodyDisplayProperties:
Inheritance graph
Collaboration diagram for Isis::TargetBodyDisplayProperties:
Collaboration graph

Classes

class  XmlHandler
 Process an XML file containing information about a WorkOrder. More...
 

Public Types

enum  Property { None = 0 , Color = 1 , Selected = 2 , ShowLabel = 16 }
 This is a list of properties and actions that are possible. More...
 

Public Slots

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.
 
void setSelected (bool)
 Change the selected state associated with this target.
 

Signals

void propertyChanged (TargetBodyDisplayProperties *)
 
void supportAdded (Property)
 
void propertyChanged (DisplayProperties *)
 
void supportAdded (int)
 

Public Member Functions

 TargetBodyDisplayProperties (QString displayName, QObject *parent=NULL)
 TargetBodyDisplayProperties constructor.
 
 TargetBodyDisplayProperties (XmlStackedHandlerReader *xmlReader, QObject *parent=NULL)
 TargetBodyDisplayProperties constructor.
 
virtual ~TargetBodyDisplayProperties ()
 The destructor.
 
void addSupport (Property prop)
 Call this with every property you support, otherwise they will not communicate properly between widgets.
 
bool supports (Property prop)
 Support for this may come later.
 
QVariant getValue (Property prop) const
 Get a property's associated data.
 
void save (QXmlStreamWriter &stream, const Project *project, FileName newProjectRoot) const
 Saves this object to an XML file.
 
void fromPvl (const PvlObject &pvl)
 
PvlObject toPvl () const
 Convert to Pvl for project files.
 
void addSupport (int property)
 Call this with every property you support, otherwise they will not communicate properly between widgets.
 
bool supports (int property)
 Support may come later, please make sure you are connected to the supportAdded signal.
 
QVariant getValue (int property) const
 Get a property's associated data.
 
void setDisplayName (QString displayName)
 Sets display name.
 
QString displayName () const
 Returns the display name.
 

Static Public Member Functions

static QColor randomColor ()
 Creates and returns a random color for the initial color of the footprint polygon.
 

Protected Member Functions

void setValue (int prop, QVariant value)
 This is the generic mutator for properties.
 

Private Slots

void toggleShowLabel ()
 Change the visibility of the display name.
 

Private Member Functions

 TargetBodyDisplayProperties (const TargetBodyDisplayProperties &)
 
TargetBodyDisplayPropertiesoperator= (const TargetBodyDisplayProperties &)
 
void setValue (Property prop, QVariant value)
 This is the generic mutator for properties.
 
 Q_DISABLE_COPY (DisplayProperties)
 

Static Private Member Functions

static QList< TargetBodyDisplayProperties * > senderToData (QObject *sender)
 Return display properties associated with a slot.
 

Private Attributes

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 QMap into binary data.
 
QString m_displayName
 This is the display name.
 

Detailed Description

This is the GUI communication mechanism for target body objects.

This class is the connector between various GUI interfaces for target body objects. We use this to communicate shared properties that various widgets need to know/should react to in a generic way.

This is how this class is supposed to "connect" widgets:

widgetA widgetB widgetC | | | ---—DisplayProperties ----—

When a user selects a target in widgetA, widgetB and widgetC now have a chance to also select the same target. This applies to all shared properties. Some of the properties are actions - such as ?????. This also allows a widget with no ??? (such as a list) to have an option to ???? (if any of the widgets support it*) and have that option work. There is no state associated with ????? - it's an action connected to a signal.

The proper way to detect a target going away is to connect to the destroyed signal (from the parent QObject). Once that is emitted you cannot call any methods on this object.

Author
2015-05-27 Ken Edmundson
History
2015-05-27 Ken Edmundson - Creation. @hsitory 21016-06-14 Tyler Wilson - Added documentation to member functions/variables and corrected some formatting to bring the the code in line with ISIS coding standards. Fixes #3997.

Definition at line 63 of file TargetBodyDisplayProperties.h.

Member Enumeration Documentation

◆ Property

This is a list of properties and actions that are possible.

Enumerator
None 

Null display property for bit-flag purposes.

Color 

The color of the control net, default randomized (QColor)

Selected 

The selection state of this control net (bool)

ShowLabel 

True if the control net should show its display name (bool)

Definition at line 69 of file TargetBodyDisplayProperties.h.

Constructor & Destructor Documentation

◆ TargetBodyDisplayProperties() [1/2]

Isis::TargetBodyDisplayProperties::TargetBodyDisplayProperties ( QString displayName,
QObject * parent = NULL )

TargetBodyDisplayProperties constructor.

This sets default values and constructs the object *.

Parameters
displayNameThe filename (fully expanded) of the object.
parentQt parent object (this is destroyed when parent is destroyed)

Definition at line 24 of file TargetBodyDisplayProperties.cpp.

References m_propertiesUsed, m_propertyValues, None, randomColor(), setSelected(), setShowLabel(), and setValue().

◆ TargetBodyDisplayProperties() [2/2]

Isis::TargetBodyDisplayProperties::TargetBodyDisplayProperties ( XmlStackedHandlerReader * xmlReader,
QObject * parent = NULL )

TargetBodyDisplayProperties constructor.

Parameters
xmlReaderThe XML reader parsing the XML file containing the display properties.
parentThe Qt parent object (this is destroyed when the parent is destroyed).

Definition at line 43 of file TargetBodyDisplayProperties.cpp.

References m_propertiesUsed, m_propertyValues, and None.

◆ ~TargetBodyDisplayProperties()

Isis::TargetBodyDisplayProperties::~TargetBodyDisplayProperties ( )
virtual

The destructor.

Definition at line 55 of file TargetBodyDisplayProperties.cpp.

Member Function Documentation

◆ addSupport() [1/2]

void Isis::DisplayProperties::addSupport ( int property)
inherited

Call this with every property you support, otherwise they will not communicate properly between widgets.

Parameters
propThe property you are adding support for

Definition at line 108 of file DisplayProperties.cpp.

References Isis::DisplayProperties::m_propertiesUsed, and Isis::DisplayProperties::supports().

Referenced by Isis::ImageTreeWidgetItem::ImageTreeWidgetItem(), and Isis::MosaicSceneItem::MosaicSceneItem().

◆ addSupport() [2/2]

void Isis::TargetBodyDisplayProperties::addSupport ( Property prop)

Call this with every property you support, otherwise they will not communicate properly between widgets.

Parameters
propThe property you are adding support for

Definition at line 95 of file TargetBodyDisplayProperties.cpp.

References m_propertiesUsed, and supports().

◆ displayName()

◆ fromPvl()

void Isis::DisplayProperties::fromPvl ( const PvlObject & pvl)
inherited

Definition at line 54 of file DisplayProperties.cpp.

◆ getValue() [1/2]

◆ getValue() [2/2]

QVariant Isis::TargetBodyDisplayProperties::getValue ( Property prop) const

Get a property's associated data.

Parameters
propThe property
Returns
QVariant The data associated with the property.

Definition at line 119 of file TargetBodyDisplayProperties.cpp.

References m_propertyValues.

Referenced by toggleShowLabel().

◆ randomColor()

QColor Isis::TargetBodyDisplayProperties::randomColor ( )
static

Creates and returns a random color for the initial color of the footprint polygon.

Returns
QColor The color for the initial footprint polygon.

Definition at line 129 of file TargetBodyDisplayProperties.cpp.

Referenced by TargetBodyDisplayProperties().

◆ save()

void Isis::TargetBodyDisplayProperties::save ( QXmlStreamWriter & stream,
const Project * project,
FileName newProjectRoot ) const

Saves this object to an XML file.

Parameters
streamThe XML stream writer write to.
projectThe project this object is attached to (not used).
newProjectRootFileName of the project? (not used).

Definition at line 152 of file TargetBodyDisplayProperties.cpp.

References Isis::DisplayProperties::displayName(), and m_propertyValues.

◆ senderToData()

QList< TargetBodyDisplayProperties * > Isis::TargetBodyDisplayProperties::senderToData ( QObject * senderObj)
staticprivate

Return display properties associated with a slot.

This is for the slots that have a list of display properties as associated data. This gets that list out of the data.

Parameters
Theobject requesting the data.
Returns
QList<TargetBodyDisplayProperties *> A list of pointers to TargetBodyDisplayProperties objects.

Definition at line 329 of file TargetBodyDisplayProperties.cpp.

Referenced by toggleShowLabel().

◆ setColor

void Isis::TargetBodyDisplayProperties::setColor ( QColor newColor)
slot

Change the color associated with this target.

Parameters
newColorThe new color associated with this target.

Definition at line 176 of file TargetBodyDisplayProperties.cpp.

References setValue().

◆ setDisplayName()

void Isis::DisplayProperties::setDisplayName ( QString displayName)
inherited

Sets display name.

Parameters
displayNameDisplay name of the object.

Definition at line 97 of file DisplayProperties.cpp.

References Isis::DisplayProperties::displayName(), and Isis::DisplayProperties::m_displayName.

◆ setSelected

void Isis::TargetBodyDisplayProperties::setSelected ( bool newValue)
slot

Change the selected state associated with this target.

Parameters
Thenew state associated with this target.

Definition at line 186 of file TargetBodyDisplayProperties.cpp.

References Selected, and setValue().

Referenced by TargetBodyDisplayProperties().

◆ setShowLabel

void Isis::TargetBodyDisplayProperties::setShowLabel ( bool newValue)
slot

Change the visibility of the display name associated with this target.

Parameters
newValueThe visibiliy of the display name for this target.

Definition at line 196 of file TargetBodyDisplayProperties.cpp.

References setValue(), and ShowLabel.

Referenced by TargetBodyDisplayProperties(), and toggleShowLabel().

◆ setValue() [1/2]

void Isis::DisplayProperties::setValue ( int property,
QVariant value )
protectedinherited

◆ setValue() [2/2]

void Isis::TargetBodyDisplayProperties::setValue ( Property prop,
QVariant value )
private

This is the generic mutator for properties.

Given a value, this will change it and emit propertyChanged if its different and supported.

Parameters
propThe key into the m_propertyValues QMap <int, QVariant>
valueThe value we want to change to.

Definition at line 309 of file TargetBodyDisplayProperties.cpp.

References m_propertyValues, and supports().

Referenced by setColor(), setSelected(), setShowLabel(), and TargetBodyDisplayProperties().

◆ supports() [1/2]

bool Isis::DisplayProperties::supports ( int property)
inherited

Support may come later, please make sure you are connected to the supportAdded signal.

Returns
True if the property has support, false otherwise

Definition at line 122 of file DisplayProperties.cpp.

References Isis::DisplayProperties::m_propertiesUsed.

Referenced by Isis::DisplayProperties::addSupport(), Isis::ImageList::allSupport(), and Isis::DisplayProperties::setValue().

◆ supports() [2/2]

bool Isis::TargetBodyDisplayProperties::supports ( Property prop)

Support for this may come later.

Please make sure you are connected to the supportAdded signal.

Returns
bool True if the property has support, false otherwise.

Definition at line 108 of file TargetBodyDisplayProperties.cpp.

References m_propertiesUsed.

Referenced by addSupport(), and setValue().

◆ toggleShowLabel

void Isis::TargetBodyDisplayProperties::toggleShowLabel ( )
privateslot

Change the visibility of the display name.

This should only be connected to an action with a list of displays as its data. This synchronizes all of the values where at least one is guaranteed to be toggled.

Definition at line 208 of file TargetBodyDisplayProperties.cpp.

References getValue(), senderToData(), setShowLabel(), and ShowLabel.

◆ toPvl()

PvlObject Isis::DisplayProperties::toPvl ( ) const
inherited

Convert to Pvl for project files.

This stores all of the data associated with all of the properties (but not what is supported). This also stores the cube filename.

Definition at line 68 of file DisplayProperties.cpp.

References Isis::DisplayProperties::displayName(), and Isis::DisplayProperties::m_propertyValues.

Referenced by Isis::Image::toPvl(), and Isis::Shape::toPvl().

Member Data Documentation

◆ m_displayName

QString Isis::DisplayProperties::m_displayName
privateinherited

◆ m_propertiesUsed

Property Isis::TargetBodyDisplayProperties::m_propertiesUsed
private

This indicated whether any widgets with this DisplayProperties is using a particular property.

This helps others who can set but not display know whether they should give the option to set.

Definition at line 148 of file TargetBodyDisplayProperties.h.

Referenced by addSupport(), supports(), TargetBodyDisplayProperties(), and TargetBodyDisplayProperties().

◆ m_propertyValues

QMap<int, QVariant>* Isis::TargetBodyDisplayProperties::m_propertyValues
private

This is a map from Property to value – the reason I use an int is so Qt knows how to serialize this QMap into binary data.

Definition at line 154 of file TargetBodyDisplayProperties.h.

Referenced by getValue(), save(), setValue(), TargetBodyDisplayProperties(), and TargetBodyDisplayProperties().


The documentation for this class was generated from the following files: