/// Run the fitting algorithm.
void MultiDatasetFit::fit() {
  if (!m_functionBrowser->hasFunction()) {
    QMessageBox::warning(this, "MantidPlot - Warning", "Function wasn't set.");
    return;
  }

  auto fittingType = m_fitOptionsBrowser->getCurrentFittingType();
  auto n = getNumberOfSpectra();
  int fitAll = QMessageBox::Yes;

  if (fittingType == MantidWidgets::FitOptionsBrowser::Simultaneous) {
    if (n > 20 && m_fitAllSettings == QMessageBox::No) {
      fitAll = QMessageBox::question(this, "Fit All?",
                                     "Are you sure you would like to fit " +
                                         QString::number(n) +
                                         " spectrum simultaneously?",
                                     QMessageBox::Yes, QMessageBox::No);

      if (fitAll == QMessageBox::Yes)
        m_fitAllSettings = QMessageBox::Yes;
    }
    if (fitAll == QMessageBox::Yes) {
      fitSimultaneous();
    }

  } else if (fittingType == MantidWidgets::FitOptionsBrowser::Sequential) {
    if (n > 100 && m_fitAllSettings == QMessageBox::No) {
      fitAll = QMessageBox::question(this, "Fit All?",
                                     "Are you sure you would like to fit " +
                                         QString::number(n) +
                                         " spectrum sequentially?",
                                     QMessageBox::Yes, QMessageBox::No);

      if (fitAll == QMessageBox::Yes)
        m_fitAllSettings = QMessageBox::Yes;
    }
    if (fitAll == QMessageBox::Yes) {
      fitSequential();
    }
  } else {
    throw std::logic_error(
        "Unrecognised fitting type. Only Normal and Sequential are accepted.");
  }
}
示例#2
0
/// Run the fitting algorithm.
void MultiDatasetFit::fit()
{
  if ( !m_functionBrowser->hasFunction() )
  {
    QMessageBox::warning( this, "MantidPlot - Warning","Function wasn't set." );
    return;
  }

  auto fittingType = m_fitOptionsBrowser->getCurrentFittingType();
  
  if (fittingType == MantidWidgets::FitOptionsBrowser::Simultaneous)
  {
    fitSimultaneous();
  }
  else if (fittingType == MantidWidgets::FitOptionsBrowser::Sequential)
  {
    fitSequential();
  }
  else
  {
    throw std::logic_error("Unrecognised fitting type. Only Normal and Sequential are accepted.");
  }
}