Commit 7421a387 authored by chrisryancombs's avatar chrisryancombs
Browse files

Added documentation, fixed bug with items not in proxy model being selected.

parent 639777b9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -484,6 +484,12 @@ namespace Isis {
  }


  /**
   * Retrieves solve settings for the observation corresponding to the given index.
   *
   * @return QList<BundleObservationSolveSettings> The QList of BundleObservationSolveSettings
   *                              objects
   */
  QList<BundleObservationSolveSettings> BundleSettings::observationSolveSettings() const {
    return m_observationSolveSettings;
  } 
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ namespace Isis {
   *                              is for creating and displaying the correlation matrix, which is
   *                              currently not working.
   *                           2) commented out hdf5 header includes in cpp
   *   @history 2018-06-26 Christopher Combs - Added observationSolveSettings() method to retrieve
   *                            m_observationSolveSettings. Fixes #497.
   *
   *   @todo Determine which XmlStackedHandlerReader constructor is preferred
   *   @todo Determine which XmlStackedHandler needs a Project pointer (see constructors)
+13 −77
Original line number Diff line number Diff line
@@ -381,8 +381,6 @@ namespace Isis {

  void JigsawSetupDialog::fillFromSettings(const BundleSettingsQsp settings) {

    BundleObservationSolveSettings observationSolveSettings = settings->observationSolveSettings(0);

    // general tab
    m_ui->observationModeCheckBox->setChecked(settings->solveObservationMode());
    m_ui->pointRadiusSigmaCheckBox->setChecked(settings->solveRadius());
@@ -393,37 +391,6 @@ namespace Isis {
    m_ui->sigma0ThresholdLineEdit->setText(toString(settings->convergenceCriteriaThreshold()));
    m_ui->maximumIterationsLineEdit->setText(toString(settings->convergenceCriteriaMaximumIterations()));


    // m_ui->positionComboBox->setCurrentIndex(observationSolveSettings.instrumentPositionSolveOption());
    m_ui->hermiteSplineCheckBox->setChecked(observationSolveSettings.solvePositionOverHermite());
    m_ui->spkDegreeSpinBox->setValue(observationSolveSettings.spkDegree());
    m_ui->spkSolveDegreeSpinBox->setValue(observationSolveSettings.spkSolveDegree());


    int pointingOption = observationSolveSettings.instrumentPointingSolveOption();
    if (pointingOption == 0) {
      pointingOption = 1;
    }
    if (pointingOption == 1) {
      pointingOption = 0;
    }

    if ( pointingOption > 0 ) {
      m_ui->twistCheckBox->setEnabled(true);
    }
    else {
      m_ui->twistCheckBox->setEnabled(true);
    }

    // m_ui->pointingComboBox->setCurrentIndex(pointingOption);
//    m_ui->pointingComboBox->setCurrentIndex(observationSolveSettings.instrumentPointingSolveOption());


    m_ui->twistCheckBox->setChecked(observationSolveSettings.solveTwist());
    m_ui->fitOverPointingCheckBox->setChecked(observationSolveSettings.solvePolyOverPointing());
    m_ui->ckDegreeSpinBox->setValue(observationSolveSettings.ckDegree());
    m_ui->ckSolveDegreeSpinBox->setValue(observationSolveSettings.ckSolveDegree());

    // weighting tab
    if ( !IsNullPixel(settings->globalLatitudeAprioriSigma()) ) {
      m_ui->pointLatitudeSigmaLineEdit->setText(toString(settings->globalLatitudeAprioriSigma()));
@@ -439,46 +406,6 @@ namespace Isis {

    }

    QList<double> aprioriPositionSigmas = observationSolveSettings.aprioriPositionSigmas();

    if ( aprioriPositionSigmas.size() > 0 && !IsNullPixel(aprioriPositionSigmas[0]) ) {
      m_ui->positionSigmaLineEdit->setText(toString(aprioriPositionSigmas[0]));
      m_ui->positionSigmaLineEdit->setModified(true);
    }

    if ( aprioriPositionSigmas.size() > 1 && !IsNullPixel(aprioriPositionSigmas[1]) ) {
      m_ui->velocitySigmaLineEdit->setText(toString(aprioriPositionSigmas[1]));
      m_ui->velocitySigmaLineEdit->setModified(true);
    }

    if ( aprioriPositionSigmas.size() > 2 && !IsNullPixel(aprioriPositionSigmas[2]) ) {
      m_ui->accelerationSigmaLineEdit->setText(toString(aprioriPositionSigmas[2]));
      m_ui->accelerationSigmaLineEdit->setModified(true);
    }

    QList<double> aprioriPointingSigmas = observationSolveSettings.aprioriPointingSigmas();

    if ( aprioriPointingSigmas.size() > 0 && !IsNullPixel(aprioriPointingSigmas[0]) ) {
      m_ui->pointingAnglesSigmaLineEdit->setText(toString(aprioriPointingSigmas[0]));
      m_ui->pointingAnglesSigmaLineEdit->setModified(true);
    }

    if ( aprioriPointingSigmas.size() > 1 && !IsNullPixel(aprioriPointingSigmas[1]) ) {
      m_ui->pointingAngularVelocitySigmaLineEdit->setText(toString(aprioriPointingSigmas[1]));
      m_ui->pointingAngularVelocitySigmaLineEdit->setModified(true);
    }

    if ( aprioriPointingSigmas.size() > 2 && !IsNullPixel(aprioriPointingSigmas[2]) ) {
      m_ui->pointingAngularAccelerationSigmaLineEdit->setText(toString(aprioriPointingSigmas[2]));
      m_ui->pointingAngularAccelerationSigmaLineEdit->setModified(true);
    }

    // maximum liklihood tab

    // self-calibration tab

    // target body tab

    update();

  }
@@ -1365,6 +1292,13 @@ namespace Isis {
  }


  /**
   * Slot for handling the Observation Solve Settings tab's Apply button. Retrieve's the selected
   * ProjectItems and adds their images' serial numbers to a new BundleObservationSolveSettings
   * object. Serial numbers will be removed from all other BOSS objects, and empty BOSS objects will
   * be removed. 
   */ 

  void JigsawSetupDialog::on_applySettingsPushButton_clicked() {

    // Get the current selected images and the item models
@@ -1386,10 +1320,12 @@ namespace Isis {
          selectedObservationNumbers.append(projItem->image()->serialNumber());
        }
        else if (projItem->isImageList()) {
          foreach (Image *image,  *projItem->imageList()) {
            // issue: if we pick an imagelist from treeview, we append all of its sources' chldrens'
            // serial numbers, even if they arent on the proxy
            selectedObservationNumbers.append(image->serialNumber());
          // Use the proxymodel's children as it might not include all of the sourcemodel's children 
          for (int i = 0; i < proxyModel->rowCount(index); i++) {
            QModelIndex childProxyIndex = proxyModel->index(i, 0, index);
            QModelIndex childSourceIndex = proxyModel->mapToSource(childProxyIndex);
            ProjectItem * childItem = sourceModel->itemFromIndex(childSourceIndex);
            selectedObservationNumbers.append(childItem->image()->serialNumber());
          }
        }
      }
+3 −1
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ namespace Isis {
   *                           (BOSS) tab for displaying user-selected images from the main Project
   *                           treeview.  All changes were made in the
   *                           createObservationSolveSettingsTreeView() function.  References #497.
   *   @history 2018-06-26 Christopher Combs - Implemented pseudocode in on_applySettings... method.
   *                           References #497.
   */

  class JigsawSetupDialog : public QDialog {
@@ -157,7 +159,7 @@ namespace Isis {
  private:
    Ui::JigsawSetupDialog *m_ui;
    Project *m_project;
    BundleSettingsQsp m_bundleSettings;
    BundleSettingsQsp m_bundleSettings; /**< The BundleSettings Object created by this dialog */
  };
};
#endif // JigsawSetupDialog_h