1#include "ImageTreeWidgetItem.h" 
    7#include "DisplayProperties.h" 
   10#include "IException.h" 
   13#include "ImageTreeWidget.h" 
   14#include "SpecialPixel.h" 
   29    m_imageList = imageList;
 
   33    connect(displayProps, SIGNAL(supportAdded(
int)), 
this, SLOT(onDisplayPropertiesChanged()));
 
   36    setColumnValue(ResolutionColumn, m_image->resolution());
 
   37    setColumnValue(EmissionAngleColumn, m_image->emissionAngle().degrees());
 
   38    setColumnValue(IncidenceAngleColumn, m_image->incidenceAngle().degrees());
 
   39    setColumnValue(PhaseAngleColumn, m_image->phaseAngle().degrees());
 
   40    setColumnValue(AspectRatioColumn, m_image->aspectRatio());
 
   41    setColumnValue(SampleResolutionColumn, m_image->sampleResolution());
 
   42    setColumnValue(LineResolutionColumn, m_image->lineResolution());
 
   43    setColumnValue(NorthAzimuthColumn, m_image->northAzimuth().degrees());
 
   45    setFlags(Qt::ItemIsEnabled |
 
   46             Qt::ItemIsUserCheckable |
 
   47             Qt::ItemIsSelectable |
 
   48             Qt::ItemIsDragEnabled |
 
   49             Qt::ItemIsDropEnabled);
 
 
   55  ImageTreeWidgetItem::~ImageTreeWidgetItem() {
 
   59  Image *ImageTreeWidgetItem::image() {
 
   64  QString ImageTreeWidgetItem::imageListName()
 const {
 
   65    return m_imageList->name();
 
   69  void ImageTreeWidgetItem::forgetImage() {
 
   74  void ImageTreeWidgetItem::update(
bool save) {
 
   76      ImageDisplayProperties *displayProps = m_image->displayProperties();
 
   80          displayProps->setShowFill(checkState(FootprintColumn));
 
   83          displayProps->setShowOutline(checkState(OutlineColumn));
 
   86          displayProps->setShowDNs(checkState(ImageColumn));
 
   89          displayProps->setShowLabel(checkState(LabelColumn));
 
   92          displayProps->setSelected(isSelected() || parent()->isSelected());
 
   97        setBackground(NameColumn,
 
  103          setCheckState(FootprintColumn,
 
  107          setCheckState(OutlineColumn,
 
  111          setCheckState(ImageColumn,
 
  115          setCheckState(LabelColumn,
 
  118        bool displaySelected =
 
  122          if (displaySelected && !isSelected() && !parent()->isSelected()) {
 
  125          else if (!displaySelected && (isSelected() || parent()->isSelected())) {
 
  127            parent()->setSelected(
false);
 
  135  Qt::CheckState ImageTreeWidgetItem::toCheck(QVariant var) {
 
  139      return Qt::Unchecked;
 
  143  QString ImageTreeWidgetItem::treeColumnToString(TreeColumn column) {
 
  147      case FootprintColumn:
 
  156      case ResolutionColumn:
 
  158      case EmissionAngleColumn:
 
  159        return "Emission Angle";
 
  160      case IncidenceAngleColumn:
 
  161        return "Incidence Angle";
 
  162      case PhaseAngleColumn:
 
  163        return "Phase Angle";
 
  164      case AspectRatioColumn:
 
  165        return "Aspect Ratio";
 
  166      case SampleResolutionColumn:
 
  167        return "Sample Resolution";
 
  168      case LineResolutionColumn:
 
  169        return "Line Resolution";
 
  170      case NorthAzimuthColumn:
 
  171        return "North Azimuth";
 
  178        "Invalid tree column passed to treeColumnToString", _FILEINFO_);
 
  182  void ImageTreeWidgetItem::onDisplayPropertiesChanged() {
 
  183    ImageTreeWidget *tree = qobject_cast<ImageTreeWidget *>(treeWidget());
 
  186      tree->enqueueReadDisplayProperties(
this);
 
  194  void ImageTreeWidgetItem::setColumnValue(TreeColumn column, 
double value) {
 
  196      setText(column, QString::number(value));
 
  201  bool ImageTreeWidgetItem::operator<(
const QTreeWidgetItem &other)
 const {
 
  202    int column = treeWidget()->sortColumn();
 
  204    switch((TreeColumn)column) {
 
  205      case FootprintColumn:
 
  210        return text(column) < other.text(column);
 
  212      case EmissionAngleColumn:
 
  213      case IncidenceAngleColumn:
 
  214      case PhaseAngleColumn:
 
  215      case ResolutionColumn:
 
  216      case AspectRatioColumn:
 
  217      case SampleResolutionColumn:
 
  218      case LineResolutionColumn:
 
  219      case NorthAzimuthColumn:
 
  220        return text(column).toDouble() <
 
  221               other.text(column).toDouble();
 
QString displayName() const
Returns the display name.
 
void addSupport(int property)
Call this with every property you support, otherwise they will not communicate properly between widge...
 
@ Programmer
This error is for when a programmer made an API call that was illegal.
 
This is the GUI communication mechanism for cubes.
 
@ ShowLabel
True if the cube should show its display name (bool)
 
@ ShowFill
True if the cube should show a fill area if possible (bool)
 
@ ShowDNs
True if the cube should show DN values if possible (bool)
 
@ Selected
The selection state of this cube (bool)
 
@ Color
The color of the cube, default randomized (QColor)
 
@ ShowOutline
True if the cube should be outlined (bool)
 
This represents a cube in a project-based GUI interface.
 
Internalizes a list of images and allows for operations on the entire list.
 
This is free and unencumbered software released into the public domain.
 
bool IsSpecial(const double d)
Returns if the input pixel is special.