Isis 3 Programmer Reference
Isis::ImageDisplayProperties Class Reference

This is the GUI communication mechanism for cubes. More...

#include <ImageDisplayProperties.h>

Inheritance diagram for Isis::ImageDisplayProperties:
Inheritance graph
Collaboration diagram for Isis::ImageDisplayProperties:
Collaboration graph

Public Types

enum  Property {
  None = 0, Color = 1, Selected = 2, ShowDNs = 4,
  ShowFill = 8, ShowLabel = 16, ShowOutline = 32, Zooming = 64,
  ZOrdering = 128, FootprintViewProperties
}
 This is a list of properties and actions that are possible. More...
 

Public Slots

void setColor (QColor newColor)
 Change the color associated with this cube. More...
 
void setShowDNs (bool)
 Change the visibility of DNs associated with this cube. More...
 
void setShowFill (bool)
 Change the visibility of the fill area associated with this cube. More...
 
void setShowLabel (bool)
 Change the visibility of the display name associated with this cube. More...
 
void setShowOutline (bool)
 Change the visibility of the outline associated with this cube. More...
 
void setSelected (bool)
 Change the selected state associated with this cube. More...
 

Signals

void moveUpOne ()
 Z Order up one. More...
 
void moveToTop ()
 Z Order to top. More...
 
void moveDownOne ()
 Z Order down one. More...
 
void moveToBottom ()
 Z Order to bottom. More...
 
void zoomFit ()
 Fit in window. More...
 
void propertyChanged (DisplayProperties *)
 
void supportAdded (int)
 

Public Member Functions

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

Static Public Member Functions

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

Protected Member Functions

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

Private Member Functions

 ImageDisplayProperties (const ImageDisplayProperties &)
 
ImageDisplayPropertiesoperator= (const ImageDisplayProperties &)
 
 Q_DISABLE_COPY (DisplayProperties)
 

Private Attributes

QString m_displayName
 This is the display name. More...
 
int m_propertiesUsed
 This indicated whether any widgets with this DisplayProperties is using a particulay property. More...
 
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. More...
 

Detailed Description

This is the GUI communication mechanism for cubes.

This class is the connector between various GUI interfaces for cubes. 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 cube in widgetA, widgetB and widgetC now have a chance to also select the same cube. This applies to all shared properties. Some of the properties are actions - such as zoomFit. This also allows a widget with no zooming (such as a list) to have an option to zoom (if any of the widgets support it*) and have that option work. There is no state associated with zoomFit - it's an action connected to a signal.

The proper way to detect a cube 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
2011-05-05 Steven Lambright
History:
2011-05-11 Steven Lambright - Added accessors for data that is complicated to get or expensive (i.e. Camera statistics and the footprint).
History:
2011-05-18 Steven Lambright - Fixed the second constructor
History:
2012-04-13 Steven Lambright, Stuart Sides, Ken Edmundson, Tracie Sucharski - Renamed CubeDisplayProperties to DisplayProperties and reduced functionality to just DisplayProperties.
History:
2012-06-12 Ken Edmundson - Made DisplayProperties a base class, derived ControlNetworkDisplayProperties and ImageDisplayProperties from it.

Definition at line 85 of file ImageDisplayProperties.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 cube, default randomized (QColor)

Selected 

The selection state of this cube (bool)

ShowDNs 

True if the cube should show DN values if possible (bool)

ShowFill 

True if the cube should show a fill area if possible (bool)

ShowLabel 

True if the cube should show its display name (bool)

ShowOutline 

True if the cube should be outlined (bool)

Zooming 

Data ignored. Tells if the cube supports the zoomFit action.

ZOrdering 

Data ignored. Tells if the cube supports the "move*" actions.

FootprintViewProperties 

Every display property for footprint views, provided for convenience.

Definition at line 91 of file ImageDisplayProperties.h.

Constructor & Destructor Documentation

◆ ImageDisplayProperties()

Isis::ImageDisplayProperties::ImageDisplayProperties ( QString  displayName,
QObject parent = NULL 
)

ImageDisplayProperties constructor.

This sets default values and constructs the Cube *. You cannot have much more than 1K of these without calling closeCube().

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

Definition at line 26 of file ImageDisplayProperties.cpp.

References randomColor(), setShowDNs(), setShowFill(), setShowOutline(), and Isis::DisplayProperties::setValue().

Member Function Documentation

◆ addSupport()

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().

◆ displayName()

◆ getValue()

◆ moveDownOne

void Isis::ImageDisplayProperties::moveDownOne ( )
signal

Z Order down one.

◆ moveToBottom

void Isis::ImageDisplayProperties::moveToBottom ( )
signal

Z Order to bottom.

◆ moveToTop

void Isis::ImageDisplayProperties::moveToTop ( )
signal

Z Order to top.

◆ moveUpOne

void Isis::ImageDisplayProperties::moveUpOne ( )
signal

Z Order up one.

◆ randomColor()

QColor Isis::ImageDisplayProperties::randomColor ( )
static

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

Definition at line 54 of file ImageDisplayProperties.cpp.

Referenced by Isis::MosaicControlNetTool::displayConnectivity(), ImageDisplayProperties(), Isis::ImageList::saveAndApplyRandomColor(), and Isis::ImageList::showRandomColor().

◆ save()

void Isis::DisplayProperties::save ( QXmlStreamWriter &  stream,
const Project project,
FileName  newProjectRoot 
) const
inherited

Output format:

<displayProperties displayName="..."> Hex-encoded data </displayProperties>

Definition at line 159 of file DisplayProperties.cpp.

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

Referenced by Isis::Image::save().

◆ setColor

◆ 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::ImageDisplayProperties::setSelected ( bool  newValue)
slot

Change the selected state associated with this cube.

Definition at line 82 of file ImageDisplayProperties.cpp.

References Selected, and Isis::DisplayProperties::setValue().

Referenced by Isis::ProjectItemModel::onSelectionChanged(), and Isis::MosaicSceneItem::updateSelection().

◆ setShowDNs

void Isis::ImageDisplayProperties::setShowDNs ( bool  newValue)
slot

Change the visibility of DNs associated with this cube.

Definition at line 90 of file ImageDisplayProperties.cpp.

References Isis::DisplayProperties::setValue(), and ShowDNs.

Referenced by Isis::ImageList::applyShowDNs(), ImageDisplayProperties(), and Isis::ImageList::saveAndToggleShowDNs().

◆ setShowFill

void Isis::ImageDisplayProperties::setShowFill ( bool  newValue)
slot

◆ setShowLabel

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

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

Definition at line 106 of file ImageDisplayProperties.cpp.

References Isis::DisplayProperties::setValue(), and ShowLabel.

Referenced by Isis::ImageList::applyShowLabel(), and Isis::ImageList::saveAndToggleShowLabel().

◆ setShowOutline

void Isis::ImageDisplayProperties::setShowOutline ( bool  newValue)
slot

Change the visibility of the outline associated with this cube.

Definition at line 114 of file ImageDisplayProperties.cpp.

References Isis::DisplayProperties::setValue(), and ShowOutline.

Referenced by Isis::ImageList::applyShowOutline(), ImageDisplayProperties(), and Isis::ImageList::saveAndToggleShowOutline().

◆ setValue()

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

This is the generic mutator for properties.

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

Definition at line 131 of file DisplayProperties.cpp.

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

Referenced by ImageDisplayProperties(), setColor(), setSelected(), setShowDNs(), setShowFill(), setShowLabel(), and setShowOutline().

◆ supports()

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().

◆ 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().

◆ zoomFit

void Isis::ImageDisplayProperties::zoomFit ( )
signal

Fit in window.

Member Data Documentation

◆ m_displayName

QString Isis::DisplayProperties::m_displayName
privateinherited

◆ m_propertiesUsed

int Isis::DisplayProperties::m_propertiesUsed
privateinherited

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

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

Definition at line 102 of file DisplayProperties.h.

Referenced by Isis::DisplayProperties::addSupport(), Isis::DisplayProperties::DisplayProperties(), and Isis::DisplayProperties::supports().

◆ m_propertyValues

QMap<int, QVariant>* Isis::DisplayProperties::m_propertyValues
privateinherited

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 108 of file DisplayProperties.h.

Referenced by Isis::DisplayProperties::DisplayProperties(), Isis::DisplayProperties::getValue(), Isis::DisplayProperties::save(), Isis::DisplayProperties::setValue(), and Isis::DisplayProperties::toPvl().


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