diff --git a/qt/scientific_interfaces/Indirect/IFQFitObserver.h b/qt/scientific_interfaces/Indirect/IFQFitObserver.h index 049ff3520fd60ee066025693486e6dffe679d634..0f0d405738e4ce7f632c442d78eea8fcb7ca483e 100644 --- a/qt/scientific_interfaces/Indirect/IFQFitObserver.h +++ b/qt/scientific_interfaces/Indirect/IFQFitObserver.h @@ -10,6 +10,7 @@ enum DataType { WIDTH, EISF, + ALL, }; class IFQFitObserver { diff --git a/qt/scientific_interfaces/Indirect/IndirectFunctionBrowser/FQFunctionModel.cpp b/qt/scientific_interfaces/Indirect/IndirectFunctionBrowser/FQFunctionModel.cpp index da240e854af69737f07103cb253f0bc4c8374e5e..9db35f02deee90ec3776f1b6a34e9acffc8fccb5 100644 --- a/qt/scientific_interfaces/Indirect/IndirectFunctionBrowser/FQFunctionModel.cpp +++ b/qt/scientific_interfaces/Indirect/IndirectFunctionBrowser/FQFunctionModel.cpp @@ -25,8 +25,14 @@ QStringList widthFits = QStringList( QStringList eisfFits = QStringList( {"None", "EISFDiffCylinder", "EISFDiffSphere", "EISFDiffSphereAlkyl"}); -std::unordered_map<DataType, QStringList> dataTypeFitTypeMap( - {{DataType::WIDTH, widthFits}, {DataType::EISF, eisfFits}}); +QStringList combinedFits = QStringList( + {"None", "ChudleyElliot", "HallRoss", "FickDiffusion", "TeixeiraWater", + "EISFDiffCylinder", "EISFDiffSphere", "EISFDiffSphereAlkyl"}); + +std::unordered_map<DataType, QStringList> + dataTypeFitTypeMap({{DataType::WIDTH, widthFits}, + {DataType::EISF, eisfFits}, + {DataType::ALL, combinedFits}}); FQFunctionModel::FQFunctionModel() { for (auto functionName : widthFits + eisfFits) { diff --git a/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.cpp b/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.cpp index 8a420a076634e4172b2a2bfb45378bb4b82ed1f6..5c129c6824288c817e2af143f47370400beaad2c 100644 --- a/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.cpp +++ b/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.cpp @@ -25,9 +25,9 @@ JumpFitDataPresenter::JumpFitDataPresenter( m_lbParameterType(lbParameterType), m_lbParameter(lbParameter), m_jumpModel(model) { connect(view, SIGNAL(singleDataViewSelected()), this, - SLOT(showParameterComboBoxes())); + SLOT(handleSingleInputSelected())); connect(view, SIGNAL(multipleDataViewSelected()), this, - SLOT(hideParameterComboBoxes())); + SLOT(handleMultipleInputSelected())); connect(this, SIGNAL(requestedAddWorkspaceDialog()), this, SLOT(updateActiveDataIndex())); @@ -54,6 +54,23 @@ void JumpFitDataPresenter::handleSampleLoaded(const QString &workspaceName) { emit updateAvailableFitTypes(); } +void JumpFitDataPresenter::handleMultipleInputSelected() { + hideParameterComboBoxes(); + m_notifier.notify( + [](IFQFitObserver &obs) { obs.updateDataType(DataType::ALL); }); +} + +void JumpFitDataPresenter::handleSingleInputSelected() { + showParameterComboBoxes(); + m_dataIndex = TableDatasetIndex{0}; + std::string currentText = m_cbParameterType->currentText().toStdString(); + auto dataType = m_cbParameterType->currentText() == QString("Width") + ? DataType::WIDTH + : DataType::EISF; + m_notifier.notify( + [&dataType](IFQFitObserver &obs) { obs.updateDataType(dataType); }); +} + void JumpFitDataPresenter::hideParameterComboBoxes() { m_cbParameter->hide(); m_cbParameterType->hide(); @@ -66,7 +83,6 @@ void JumpFitDataPresenter::showParameterComboBoxes() { m_cbParameterType->show(); m_lbParameter->show(); m_lbParameterType->show(); - m_dataIndex = TableDatasetIndex{0}; } void JumpFitDataPresenter::setActiveParameterType(const std::string &type) { diff --git a/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.h b/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.h index 011bbf495097a8d18b717cd3e2389a9dd85d527e..e9052b0d9689256a82448ab7055885d4a279b13d 100644 --- a/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.h +++ b/qt/scientific_interfaces/Indirect/JumpFitDataPresenter.h @@ -47,6 +47,8 @@ private slots: void setSingleModelSpectrum(int index); void handleParameterTypeChanged(const QString ¶meter); void handleSpectrumSelectionChanged(int parameterIndex); + void handleMultipleInputSelected(); + void handleSingleInputSelected(); signals: void spectrumChanged(WorkspaceIndex);