Unverified Commit 1bd3bbe1 authored by Makayla Shepherd's avatar Makayla Shepherd Committed by GitHub
Browse files

Merge pull request #315 from ihumphrey-usgs/ipceBundleWindow_snToObsNum

support observation mode in ipce
parents 70ba38d3 9d52a4a9
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include "ImageDisplayProperties.h"
#include "ImagePolygon.h"
#include "IString.h"
#include "ObservationNumber.h"
#include "PolygonTools.h"
#include "Project.h"
#include "SerialNumber.h"
@@ -311,6 +312,15 @@ namespace Isis {
  }


  /**
   * @brief Returns the observation number of the Cube
   * @return QString A string representation of the observation number of the cube.
   */
  QString Image::observationNumber() {
    return ObservationNumber::Compose(*(cube()));
  }


  /**
   * @brief Returns the serial number of the Cube
   * @return @b QString  A string representation of the serial number of the cube.
+4 −0
Original line number Diff line number Diff line
@@ -91,6 +91,9 @@ namespace Isis {
   *                           located outside of the import image directories such as the updated
   *                           Images from a bundle run.  To improve efficiency, return from method
   *                           if the project root has not changed. Fixes #4849.
   *   @history 2018-06-30 Ian Humphrey - Added observationNumber() method so anything that grabs
   *                           an Image ProjectItem can easily get both the serial number and
   *                           observation number now. References #497.
   */

  class Image : public QObject {
@@ -110,6 +113,7 @@ namespace Isis {
      ImageDisplayProperties *displayProperties();
      const ImageDisplayProperties *displayProperties() const;
      QString fileName() const;
      QString observationNumber();
      QString serialNumber();
      geos::geom::MultiPolygon *footprint();
      const geos::geom::MultiPolygon *footprint() const;
+12 −8
Original line number Diff line number Diff line
@@ -112,12 +112,12 @@ namespace Isis {
    if (!m_project->directory()->model()->selectedItems().isEmpty()) {
      foreach (ProjectItem * projItem, m_project->directory()->model()->selectedItems()) {
        if (projItem->isImage()) {
          defaultObservationSettings.addObservationNumber(projItem->image()->serialNumber());  
          defaultObservationSettings.addObservationNumber(projItem->image()->observationNumber());  
        }
        else if (projItem->isImageList()) {
          for (int i = 0; i < projItem->rowCount(); i++) {
            ProjectItem * childItem = projItem->child(i);
            defaultObservationSettings.addObservationNumber(childItem->image()->serialNumber());  
            defaultObservationSettings.addObservationNumber(childItem->image()->observationNumber());  
          }
        }
      }
@@ -132,7 +132,7 @@ namespace Isis {
          for (int j = 0; j < imglistItem->rowCount(); j++) {
            ProjectItem * imgItem = imglistItem->child(j);
            if (imgItem->isImage()) {
              defaultObservationSettings.addObservationNumber(imgItem->image()->serialNumber());  
              defaultObservationSettings.addObservationNumber(imgItem->image()->observationNumber());  
            }
          }
        } 
@@ -896,7 +896,7 @@ namespace Isis {

          if (projItem->isImage() ) {
            Image * img = projItem->data().value<Image *>();
            boss.addObservationNumber(img->serialNumber() );
            boss.addObservationNumber(img->observationNumber() );

          }
        }
@@ -1785,9 +1785,13 @@ namespace Isis {

      if (projItem) {
        // Tree traversal is top down so we dont need to do this check for imagelists?
        if (projItem->isImage() && 
            !selectedObservationNumbers.contains(projItem->image()->serialNumber())) {
          selectedObservationNumbers.append(projItem->image()->serialNumber());
        if (projItem->isImage()) {
          // Grab the observation up front so we don't need to re-compose the observation number
          // more than once (@todo: this should not be necessary when 5026 is integrated)
          const QString observationNumber = projItem->image()->observationNumber();
          if (!selectedObservationNumbers.contains(observationNumber)) {
            selectedObservationNumbers.append(observationNumber);
          }
        }
        else if (projItem->isImageList()) {
          // Use the proxymodel's children as it might not include all of the sourcemodel's children 
@@ -1795,7 +1799,7 @@ namespace Isis {
            QModelIndex childProxyIndex = proxyModel->index(i, 0, index);
            QModelIndex childSourceIndex = proxyModel->mapToSource(childProxyIndex);
            ProjectItem * childItem = sourceModel->itemFromIndex(childSourceIndex);
            selectedObservationNumbers.append(childItem->image()->serialNumber());
            selectedObservationNumbers.append(childItem->image()->observationNumber());
          }
        }
      }