Isis 3 Programmer Reference
Isis::JigsawSetupDialog Class Reference

#include <JigsawSetupDialog.h>

Inheritance diagram for Isis::JigsawSetupDialog:
Inheritance graph
Collaboration diagram for Isis::JigsawSetupDialog:
Collaboration graph

Public Slots

void slotTextChanged (const QString &text)
 
void checkIsValid ()
 
void treeViewSelectionChanged (const QItemSelection &selected, const QItemSelection &deselected)
 

Public Member Functions

 JigsawSetupDialog (Project *project, bool useLastSettings=true, bool readOnly=false, QWidget *parent=0)
 
ControlselectedControl ()
 
QString selectedControlName ()
 
QString outputControlName ()
 
BundleSettingsQsp bundleSettings ()
 
void loadSettings (const BundleSettingsQsp settings)
 Loads the passed bundle settings into the setup dialog. More...
 
void selectControl (const QString &controlName)
 Selects a control in the control network combo box by trying to find an item with the matching name. More...
 

Private Slots

void on_pointRadiusSigmaCheckBox_toggled (bool checked)
 
void on_inputControlNetCombo_currentTextChanged (const QString &arg1)
 
void on_pointLatitudeSigmaLineEdit_textChanged (const QString &arg1)
 
void on_pointLongitudeSigmaLineEdit_textChanged (const QString &arg1)
 
void on_pointRadiusSigmaLineEdit_textChanged (const QString &arg1)
 
void on_outlierRejectionMultiplierLineEdit_textChanged (const QString &arg1)
 
void on_maximumLikelihoodModel1QuantileLineEdit_textChanged (const QString &arg1)
 
void on_maximumLikelihoodModel2QuantileLineEdit_textChanged (const QString &arg1)
 
void on_maximumLikelihoodModel3QuantileLineEdit_textChanged (const QString &arg1)
 
void on_sigma0ThresholdLineEdit_textChanged (const QString &arg1)
 
void on_maximumIterationsLineEdit_textChanged (const QString &arg1)
 
void on_maximumLikelihoodModel1ComboBox_currentIndexChanged (int index)
 
void on_maximumLikelihoodModel2ComboBox_currentIndexChanged (int index)
 
void on_maximumLikelihoodModel3ComboBox_currentIndexChanged (int index)
 
void on_outlierRejectionCheckBox_stateChanged (int arg1)
 
void on_poleRaCheckBox_stateChanged (int arg1)
 
void on_poleRaVelocityCheckBox_stateChanged (int arg1)
 
void on_poleDecCheckBox_stateChanged (int arg1)
 
void on_poleDecVelocityCheckBox_stateChanged (int arg1)
 
void on_spinRateCheckBox_stateChanged (int arg1)
 
void on_primeMeridianOffsetCheckBox_stateChanged (int arg1)
 
void on_radiiButtonGroupClicked (int arg1)
 
void on_aRadiusLineEdit_textChanged (const QString &arg1)
 
void on_targetBodyComboBox_currentIndexChanged (int index)
 
void on_spkSolveDegreeSpinBox_valueChanged (int arg1)
 Slot that listens for changes to the SPK Solve Degree spin box. More...
 
void on_ckSolveDegreeSpinBox_valueChanged (int arg1)
 Slot that listens for changes to the CK Solve Degree spin box. More...
 
void on_rightAscensionLineEdit_textChanged (const QString &arg1)
 
void on_declinationLineEdit_textChanged (const QString &arg1)
 
void on_rightAscensionVelocityLineEdit_textChanged (const QString &arg1)
 
void on_declinationVelocityLineEdit_textChanged (const QString &arg1)
 
void on_spinRateLineEdit_textChanged (const QString &arg1)
 
void on_primeMeridianOffsetLineEdit_textChanged (const QString &arg1)
 
void on_applySettingsPushButton_clicked ()
 Slot for handling the Observation Solve Settings tab's Apply button. More...
 
void on_positionComboBox_currentIndexChanged (const QString &arg1)
 Slot that listens for when the Instrument Position Solve Option combobox changes. More...
 
void on_pointingComboBox_currentIndexChanged (const QString &arg1)
 Slot that listens for when the Instrument Pointing Solve Option combobox changes. More...
 
void updateSolveSettingsSigmaTables (const QComboBox *solveOptionComboBox, QTableWidget *table)
 Slot that updates the sigma tables based on the current solve option selection. More...
 
void validateSigmaValue (QTableWidgetItem *)
 Validates the a priori sigma values for a given QTableWidgetItem. More...
 
void validateSigmaTables ()
 Validates the tables in the observation solve settings tab and enables/disables the OK button appropriately. More...
 

Private Member Functions

void makeReadOnly ()
 
void fillFromSettings (const BundleSettingsQsp settings)
 
void showTargetParametersGroupBox ()
 
void hideTargetParametersGroupBox ()
 
void updateBundleObservationSolveSettings (BundleObservationSolveSettings &boss)
 updateBundleObservationSolveSettings: This function sets the parameters of a BundleObservationSolveSettings object by reading user settings from the BOSS tab, as well as reading in the selected images on the BOSS QTreeView these BOSS settings are to be applied to. More...
 
void createObservationSolveSettingsTreeView ()
 

Private Attributes

Ui::JigsawSetupDialog * m_ui
 
Projectm_project
 
BundleSettingsQsp m_bundleSettings
 The BundleSettings Object created by this dialog. More...
 

Detailed Description

Author
2014-04-21 Ken Edmundson
History:

2014-04-21 Ken Edmundson - Original version.

2014-07-16 Jeannie Backer - Use MaximumLikelihoodWFunctions static method to convert string to Model enum.

2014-07-23 Jeannie Backer - Added selectedControlName(). Commented out degree combo box enable calls.

2015-02-20 Jeannie Backer - Replaced BundleResults references with BundleSolutionInfo and BundleStatistics references with BundleResults due to class name changes.

2015-09-03 Jeannie Backer - Updated to be more compliant with ISIS coding standards. Changed condition of if-statements for QLineEdit::setText for the global a priori sigma variables from less than zero to !IsNullPixel for consistency with bundle classes.

2016-08-18 Jeannie Backer - Removed all references to deprecated solve methods SpeckialK and OldSparse. References #4162.

2016-08-25 Adam Paquette - Updated documentation. Fixes #4299.

2017-04-25 Ian Humphrey - Added public loadSettings() to allow JigsawRunWidget to load its current settings into the setup dialog. Fixes #4817.

2017-04-27 Ian Humphrey - Added selectControl() to allow JigsawRunWidget to properly tell the setup dialog which control to select in its combo box. References #4817.

2017-05-16 Tracie Sucharski - Comment qDebug statements.

2017-05-23 Tracie Sucharski - Added a QGroupBox for the target parameters so that the box can be disabled/enabled rather than each parameter separately.

2017-06-07 Ian Humphrey - Modified fillFromSettings() so when the weightings are loaded into the text line edits they are set to modified, which allows for proper restoring of user defined weightings.

2017-08-14 Summer Stapleton - Updated icons/images to properly licensed or open source images. Fixes #5105.

2018-03-19 Ken Edmundson - Added bundle output control network file name. Added method on_controlNetworkComboBox_currentTextChanged to update the output control network filename when the input control network selected filename changes. E.g. if input control net name is fred.net, the output filename QLineEdit is automatically changed to fred-out.net. The user can always manually change the output control net name to anything they choose.

2018-06-01 Christopher Combs - Added support for ui changes, exclusive options and input validators.

2018-06-21 Ian Humphrey - Added on_applySettingsPushButtonClicked() to listen for when the apply button is clicked on the observation solve settings tab. References #497.

2018-06-21 Tyler Wilson - Added support in the Bundle Observations Solve Settings (BOSS) tab for displaying user-selected images from the main Project treeview. All changes were made in the createObservationSolveSettingsTreeView() function. References #497.

2018-06-25 Ian Humphrey - Implemented the position and pointing a priori sigma tables in the observation solve settings tab. References #497.

2018-06-26 Tyler Wilson - Added the function updateBundleObservationSolveSettings(BundleObservationSolveSettings &) which grabs BOSS settings from the JSD BOSS tab for selected images in the BOSS QTreeView and saves them in a BOSS object.

2018-06-26 Tyler Wilson - Added support in updateBundleObservationSolveSettings(BundleObservationSolveSettings &) for the user to set an arbitrary number of position/pointing Apriori Sigma values beyond position/velocity/acceleration. References #497.

2018-06-27 Ian Humphrey - Added validateSigmaTables() that checks if there are any invalid a priori sigma values whenever an a priori sigma values changes. If any value is invalid, the OK and Apply Settings buttons are disabled until all the a priori sigma values are valid again. References #497.

2018-06-28 Christopher Combs - Implemented pseudocode in on_applySettings... method. Added selected images to default BOSS object. References #497.

2018-07-01 Ian Humphrey - Added updateSolveSettingsSigmaTables() to try to generalize how the sigma tables are updated. Solve options have their respective solve degree and degree combo boxes set to 2 unless the solve option is ALL. References #497.

Definition at line 97 of file JigsawSetupDialog.h.

Member Function Documentation

◆ loadSettings()

void Isis::JigsawSetupDialog::loadSettings ( const BundleSettingsQsp  settings)

Loads the passed bundle settings into the setup dialog.

This is used by JigsawDialog to load its current settings when not using the last (most recent) bundle settings in the project.

Parameters
constBundleSettingsQsp settings Shared pointer to the settings to load up.

Definition at line 691 of file JigsawSetupDialog.cpp.

◆ on_applySettingsPushButton_clicked

void Isis::JigsawSetupDialog::on_applySettingsPushButton_clicked ( )
privateslot

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.

Definition at line 1808 of file JigsawSetupDialog.cpp.

References Isis::BundleObservationSolveSettings::addObservationNumber(), Isis::ProjectItem::image(), Isis::ProjectItem::isImage(), Isis::ProjectItem::isImageList(), Isis::ProjectItemModel::itemFromIndex(), m_bundleSettings, Isis::Image::observationNumber(), and updateBundleObservationSolveSettings().

◆ on_ckSolveDegreeSpinBox_valueChanged

void Isis::JigsawSetupDialog::on_ckSolveDegreeSpinBox_valueChanged ( int  i)
privateslot

Slot that listens for changes to the CK Solve Degree spin box.

This slot populates the Instrument Pointing Solve Options table according to the value of the CK Solve Degree. Rows are added depending on the degree set, where number of rows added is equal to the CK Solve Degree + 1. Note that this relies on the updateSolveSettingsSigmaTables slot, which uses the CK Solve Degree if the ALL pointing option is selected.

Parameters
intValue the CK Solve Degree spin box was changed to.

Definition at line 1512 of file JigsawSetupDialog.cpp.

References updateSolveSettingsSigmaTables().

◆ on_pointingComboBox_currentIndexChanged

void Isis::JigsawSetupDialog::on_pointingComboBox_currentIndexChanged ( const QString &  arg1)
privateslot

Slot that listens for when the Instrument Pointing Solve Option combobox changes.

This slot updates the value of the CK Solve Degree spin box according to which solve pointing option is selected. This slot also disables the CK spin boxes whenever a solve pointing that is not ALL is selected.

Parameters
constQString & Reference to the value that the pointing option combobox was changed to.

Definition at line 1671 of file JigsawSetupDialog.cpp.

References updateSolveSettingsSigmaTables().

◆ on_positionComboBox_currentIndexChanged

void Isis::JigsawSetupDialog::on_positionComboBox_currentIndexChanged ( const QString &  arg1)
privateslot

Slot that listens for when the Instrument Position Solve Option combobox changes.

This slot updates the value of the SPK Solve Degree spin box according to which solve position option is selected. This slot also disables the SPK spin boxes whenever a solve position that is not ALL is selected.

Parameters
constQString & Reference to the value that the position option combobox was changed to.

Definition at line 1639 of file JigsawSetupDialog.cpp.

References updateSolveSettingsSigmaTables().

◆ on_spkSolveDegreeSpinBox_valueChanged

void Isis::JigsawSetupDialog::on_spkSolveDegreeSpinBox_valueChanged ( int  i)
privateslot

Slot that listens for changes to the SPK Solve Degree spin box.

This slot populates the Instrument Position Solve Options table according to the value of the SPK Solve Degree. Rows are added depending on the degree set, where number of rows added is equal to the SPK Solve Degree + 1. Note that this relies on the updateSolveSettingsSigmaTables slot, which uses the SPK Solve Degree if the ALL position option is selected.

Parameters
intValue the SPK Solve Degree spin box was changed to.

Definition at line 1496 of file JigsawSetupDialog.cpp.

References updateSolveSettingsSigmaTables().

◆ selectControl()

void Isis::JigsawSetupDialog::selectControl ( const QString &  controlName)

Selects a control in the control network combo box by trying to find an item with the matching name.

If the name is found in the combo box, the box's index is set to that found control network index. If the name is not found and the box is not empty, the current index is set to 0 (the first item). If the name is not found and the box is empty, the index is set to -1 (see Qt).

Parameters
constQString &controlName The name of the control to try to find in the combo box.

Definition at line 705 of file JigsawSetupDialog.cpp.

◆ updateBundleObservationSolveSettings()

void Isis::JigsawSetupDialog::updateBundleObservationSolveSettings ( BundleObservationSolveSettings boss)
private

updateBundleObservationSolveSettings: This function sets the parameters of a BundleObservationSolveSettings object by reading user settings from the BOSS tab, as well as reading in the selected images on the BOSS QTreeView these BOSS settings are to be applied to.

Parameters
BundleObservationSolveSettings&boss The object which stores user-specified settings from the BOSS tab.

Definition at line 749 of file JigsawSetupDialog.cpp.

References Isis::BundleObservationSolveSettings::addObservationNumber(), Isis::ProjectItem::isImage(), Isis::ProjectItemModel::itemFromIndex(), Isis::Image::observationNumber(), Isis::BundleObservationSolveSettings::setInstrumentId(), Isis::BundleObservationSolveSettings::setInstrumentPointingSettings(), and Isis::BundleObservationSolveSettings::setInstrumentPositionSettings().

Referenced by on_applySettingsPushButton_clicked().

◆ updateSolveSettingsSigmaTables

void Isis::JigsawSetupDialog::updateSolveSettingsSigmaTables ( const QComboBox solveOptionComboBox,
QTableWidget *  table 
)
privateslot

Slot that updates the sigma tables based on the current solve option selection.

This will add/remove rows based on the solve option selected, and if ALL, the current solve degree value.

Parameters
constQComboBox * The solve option combo box to read the solve option from
QTableWidget* The a priori sigma table we are going to update rows for

Definition at line 1527 of file JigsawSetupDialog.cpp.

References validateSigmaTables().

Referenced by on_ckSolveDegreeSpinBox_valueChanged(), on_pointingComboBox_currentIndexChanged(), on_positionComboBox_currentIndexChanged(), and on_spkSolveDegreeSpinBox_valueChanged().

◆ validateSigmaTables

void Isis::JigsawSetupDialog::validateSigmaTables ( )
privateslot

Validates the tables in the observation solve settings tab and enables/disables the OK button appropriately.

This method validates both the position and pointing a priori sigma tables in the observation solve settings tab. If any of the sigma values are invalid, the JigsawSetupDialog's OK button is disabled. If all of the sigma values are valid, the JigsawSetupDialog's OK button is (re)enabled.

Definition at line 1459 of file JigsawSetupDialog.cpp.

Referenced by updateSolveSettingsSigmaTables(), and validateSigmaValue().

◆ validateSigmaValue

void Isis::JigsawSetupDialog::validateSigmaValue ( QTableWidgetItem *  item)
privateslot

Validates the a priori sigma values for a given QTableWidgetItem.

This will only validate items in the a priori sigma column. Valid a priori sigma values are "FREE" or any positive double. Items that are invalid will be marked with a red background color.

Parameters
QTableWidgetItem*Pointer to the QTableWidgetItem to be validated.

Definition at line 1415 of file JigsawSetupDialog.cpp.

References validateSigmaTables().

Member Data Documentation

◆ m_bundleSettings

BundleSettingsQsp Isis::JigsawSetupDialog::m_bundleSettings
private

The BundleSettings Object created by this dialog.

Definition at line 195 of file JigsawSetupDialog.h.

Referenced by on_applySettingsPushButton_clicked().


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