diff --git a/MantidPlot/src/Convolution.cpp b/MantidPlot/src/Convolution.cpp index fbbab201a7cf0981b88d3039e119b0df957a26cf..fad8a7afa63fb54e44c1c3953e164f2c672a7bf2 100644 --- a/MantidPlot/src/Convolution.cpp +++ b/MantidPlot/src/Convolution.cpp @@ -151,7 +151,7 @@ void Convolution::addResultCurve() d_table->setText(i, cols2, locale.toString(d_x[i], 'g', app->d_decimal_digits)); } - QStringList l = d_table->colNames().grep(tr("Index")); + QStringList l = d_table->colNames().filter(tr("Index")); QString id = QString::number((int)l.size()+1); QString label = objectName() + id; diff --git a/MantidPlot/src/Correlation.cpp b/MantidPlot/src/Correlation.cpp index b47c943aed9e22bbe8496499c372a1e04f1dfd48..57d6e36cb3958daec473f1b5d7176f1241fe229b 100644 --- a/MantidPlot/src/Correlation.cpp +++ b/MantidPlot/src/Correlation.cpp @@ -167,7 +167,7 @@ void Correlation::addResultCurve() d_table->setText(i, cols2, locale.toString(y, 'g', app->d_decimal_digits)); } - QStringList l = d_table->colNames().grep(tr("Lag")); + QStringList l = d_table->colNames().filter(tr("Lag")); QString id = QString::number((int)l.size()+1); QString label = objectName() + id; diff --git a/MantidPlot/src/CurveRangeDialog.cpp b/MantidPlot/src/CurveRangeDialog.cpp index 8a2b2e5f1a1d31063bdbb24b0327a93e2c9474e4..c997714f0b6fa5e23998f1b8952169f2c3a3ace0 100644 --- a/MantidPlot/src/CurveRangeDialog.cpp +++ b/MantidPlot/src/CurveRangeDialog.cpp @@ -42,7 +42,7 @@ CurveRangeDialog::CurveRangeDialog(QWidget* parent, Qt::WFlags fl ) : QDialog( parent, fl ), d_curve(NULL), d_graph(NULL) { setWindowTitle(tr("MantidPlot - Plot range")); - setName( "CurveRangeDialog" ); + setObjectName( "CurveRangeDialog" ); QGroupBox *gb1 = new QGroupBox(); QGridLayout *gl1 = new QGridLayout(gb1); @@ -53,12 +53,12 @@ CurveRangeDialog::CurveRangeDialog(QWidget* parent, Qt::WFlags fl ) gl1->addWidget(new QLabel(tr("From row number")), 1, 0); boxStart = new QSpinBox(); - boxStart->setMinValue(1); + boxStart->setMinimum(1); gl1->addWidget(boxStart, 1, 1); gl1->addWidget(new QLabel(tr("To row number")), 2, 0); boxEnd = new QSpinBox(); - boxEnd->setMinValue(1); + boxEnd->setMinimum(1); gl1->addWidget(boxEnd, 2, 1); gl1->setRowStretch(3, 1); @@ -105,8 +105,8 @@ void CurveRangeDialog::setCurveToModify(Graph *g, int curve) Table *t = d_curve->table(); if (t) { - boxStart->setMaxValue(t->numRows()); - boxEnd->setMaxValue(t->numRows()); + boxStart->setMaximum(t->numRows()); + boxEnd->setMaximum(t->numRows()); } boxName->setText(d_curve->title().text()); diff --git a/MantidPlot/src/CurvesDialog.cpp b/MantidPlot/src/CurvesDialog.cpp index 83663a1d5ec26db5201e39558fd1c6d45903daee..3e6c042a6c536d1adb2b3d7c8281289502098421 100644 --- a/MantidPlot/src/CurvesDialog.cpp +++ b/MantidPlot/src/CurvesDialog.cpp @@ -60,7 +60,7 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl ) if (!app) { throw std::logic_error("Null ApplicationWindow pointer is passed to CurvesDialog."); } - setName( "CurvesDialog" ); + setObjectName( "CurvesDialog" ); setWindowTitle( tr( "MantidPlot - Add/Remove curves" ) ); setSizeGripEnabled(true); setFocus(); @@ -101,14 +101,14 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl ) //add button (move to graph contents) QVBoxLayout* vl1 = new QVBoxLayout(); btnAdd = new QPushButton(); - btnAdd->setPixmap( getQPixmap("next_xpm") ); + btnAdd->setIcon( getQPixmap("next_xpm") ); btnAdd->setFixedWidth (35); btnAdd->setFixedHeight (30); vl1->addWidget(btnAdd); //remove button (move to available data) btnRemove = new QPushButton(); - btnRemove->setPixmap( getQPixmap("prev_xpm") ); + btnRemove->setIcon( getQPixmap("prev_xpm") ); btnRemove->setFixedWidth (35); btnRemove->setFixedHeight(30); vl1->addWidget(btnRemove); @@ -261,9 +261,9 @@ void CurvesDialog::contextMenuEvent(QContextMenuEvent *e) QMenu contextMenu(this); QList<QListWidgetItem *> lst = available->selectedItems(); if (lst.size() > 1) - contextMenu.insertItem(tr("&Plot Selection"), this, SLOT(addCurves())); + contextMenu.addAction(tr("&Plot Selection"), this, SLOT(addCurves())); else if (lst.size() == 1) - contextMenu.insertItem(tr("&Plot"), this, SLOT(addCurves())); + contextMenu.addAction(tr("&Plot"), this, SLOT(addCurves())); contextMenu.exec(QCursor::pos()); } @@ -275,9 +275,9 @@ void CurvesDialog::contextMenuEvent(QContextMenuEvent *e) QList<QListWidgetItem *> lst = contents->selectedItems(); if (lst.size() > 1) - contextMenu.insertItem(tr("&Delete Selection"), this, SLOT(removeCurves())); + contextMenu.addAction(tr("&Delete Selection"), this, SLOT(removeCurves())); else if (lst.size() > 0) - contextMenu.insertItem(tr("&Delete Curve"), this, SLOT(removeCurves())); + contextMenu.addAction(tr("&Delete Curve"), this, SLOT(removeCurves())); contextMenu.exec(QCursor::pos()); } e->accept(); @@ -298,25 +298,25 @@ void CurvesDialog::init() int style = d_app->defaultCurveStyle; if (style == Graph::Line) - boxStyle->setCurrentItem(0); + boxStyle->setCurrentIndex(0); else if (style == Graph::Scatter) - boxStyle->setCurrentItem(1); + boxStyle->setCurrentIndex(1); else if (style == Graph::LineSymbols) - boxStyle->setCurrentItem(2); + boxStyle->setCurrentIndex(2); else if (style == Graph::VerticalDropLines) - boxStyle->setCurrentItem(3); + boxStyle->setCurrentIndex(3); else if (style == Graph::Spline) - boxStyle->setCurrentItem(4); + boxStyle->setCurrentIndex(4); else if (style == Graph::VerticalSteps) - boxStyle->setCurrentItem(5); + boxStyle->setCurrentIndex(5); else if (style == Graph::HorizontalSteps) - boxStyle->setCurrentItem(6); + boxStyle->setCurrentIndex(6); else if (style == Graph::Area) - boxStyle->setCurrentItem(7); + boxStyle->setCurrentIndex(7); else if (style == Graph::VerticalBars) - boxStyle->setCurrentItem(8); + boxStyle->setCurrentIndex(8); else if (style == Graph::HorizontalBars) - boxStyle->setCurrentItem(9); + boxStyle->setCurrentIndex(9); QList<MdiSubWindow *> wList = d_app->windowsList(); foreach(MdiSubWindow* w, wList) @@ -509,7 +509,7 @@ void CurvesDialog::enableBtnOK(){ int CurvesDialog::curveStyle() { int style = 0; - switch (boxStyle->currentItem()) + switch (boxStyle->currentIndex()) { case 0: style = Graph::Line; diff --git a/MantidPlot/src/CustomActionDialog.cpp b/MantidPlot/src/CustomActionDialog.cpp index 8b779deb8ec2a2fb4978b0b5a1439b5d8ba7b504..51cedbdcd84edfce398f99427cff5bbce4e79681 100644 --- a/MantidPlot/src/CustomActionDialog.cpp +++ b/MantidPlot/src/CustomActionDialog.cpp @@ -543,7 +543,7 @@ void CustomActionDialog::setCurrentAction(int row) if (!w) return; - if (w->isA("QToolBar")){ + if (qstrcmp("QToolBar", w->metaObject()->className()) == 0){ int index = toolBarBox->findText((dynamic_cast<QToolBar*>(w))->windowTitle()); if (index >= 0){ toolBarBox->setCurrentIndex(index); diff --git a/MantidPlot/src/ErrDialog.cpp b/MantidPlot/src/ErrDialog.cpp index de2a40b79a205079f0b3e85185c1bb5e0469a833..191fc03960b69c65eb71b55c9f64bc23d5f27704 100644 --- a/MantidPlot/src/ErrDialog.cpp +++ b/MantidPlot/src/ErrDialog.cpp @@ -174,7 +174,7 @@ void ErrDialog::setSrcTables(QList<MdiSubWindow *> tables) tableNamesBox->clear(); foreach(MdiSubWindow *w, tables) - tableNamesBox->insertItem(w->objectName()); + tableNamesBox->addItem(w->objectName()); if (!nameLabel->currentText().contains("=")) tableNamesBox->setCurrentIndex(tableNamesBox->findText(nameLabel->currentText().split("_", QString::SkipEmptyParts)[0])); diff --git a/MantidPlot/src/ExpDecayDialog.cpp b/MantidPlot/src/ExpDecayDialog.cpp index c63834d6443ac028105d5bf23bf16d300bb17142..2fdc7427aa8d7e7c76b0620c0a23c452e453b9b9 100644 --- a/MantidPlot/src/ExpDecayDialog.cpp +++ b/MantidPlot/src/ExpDecayDialog.cpp @@ -47,7 +47,7 @@ ExpDecayDialog::ExpDecayDialog(int type, QWidget* parent, Qt::WFlags fl ) boxFirst(NULL), boxSecond(NULL), boxThird(NULL), boxStart(NULL), boxYOffset(NULL), thirdLabel(NULL), dampingLabel(NULL), boxColor(NULL) { - setName( "ExpDecayDialog" ); + setObjectName( "ExpDecayDialog" ); slopes = type; @@ -155,7 +155,7 @@ void ExpDecayDialog::setGraph(Graph *g) if (!selectedCurve.isEmpty()) { int index = boxName->findText (selectedCurve); - boxName->setCurrentItem(index); + boxName->setCurrentIndex(index); } activateCurve(boxName->currentText()); @@ -236,7 +236,7 @@ void ExpDecayDialog::fit() if (fitter->setDataFromCurve(boxName->currentText(), boxStart->text().toDouble(), c->maxXValue())) { - fitter->setColor(boxColor->currentItem()); + fitter->setColor(boxColor->currentIndex()); fitter->scaleErrors(app->fit_scale_errors); fitter->setOutputPrecision(app->fit_output_precision); fitter->generateFunction(app->generateUniformFitPoints, app->fitPoints); diff --git a/MantidPlot/src/ExportDialog.cpp b/MantidPlot/src/ExportDialog.cpp index efa532d3a4757872af0deacc7322027007393b00..2baddf77b25be05b7399441bb56396d513328db1 100644 --- a/MantidPlot/src/ExportDialog.cpp +++ b/MantidPlot/src/ExportDialog.cpp @@ -223,9 +223,9 @@ void ExportDialog::updateOptions(const QString & name) boxComments->setEnabled(w->inherits("Table")); boxNames->setEnabled(w->inherits("Table")); - boxSelection->setEnabled(!w->isA("MantidMatrix")); - boxSeparator->setEnabled(!w->isA("MantidMatrix")); - boxAllTables->setEnabled(!w->isA("MantidMatrix")); - sepText->setEnabled(!w->isA("MantidMatrix")); + boxSelection->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0); + boxSeparator->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0); + boxAllTables->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0); + sepText->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0); } diff --git a/MantidPlot/src/FFTDialog.cpp b/MantidPlot/src/FFTDialog.cpp index 7a6193e7d78ba8d5695719b5d2fa26fa5c97e335..dbf5567e3bbe88f8afdbf3def04a1aef8d61c4e8 100644 --- a/MantidPlot/src/FFTDialog.cpp +++ b/MantidPlot/src/FFTDialog.cpp @@ -153,7 +153,7 @@ void FFTDialog::accept() try { MyParser parser; - parser.SetExpr(boxSampling->text().ascii()); + parser.SetExpr(boxSampling->text().toAscii().constData()); sampling=parser.Eval(); } catch(mu::ParserError &e) @@ -193,7 +193,7 @@ void FFTDialog::accept() void FFTDialog::setGraph(Graph *g) { graph = g; - boxName->insertStringList (g->analysableCurvesList()); + boxName->insertItems (-1, g->analysableCurvesList()); activateCurve(boxName->currentText()); } @@ -217,13 +217,13 @@ void FFTDialog::setTable(Table *t) { d_table = t; QStringList l = t->columnsList(); - boxName->insertStringList (l); - boxReal->insertStringList (l); - boxImaginary->insertStringList (l); + boxName->insertItems (-1, l); + boxReal->insertItems (-1, l); + boxImaginary->insertItems (-1, l); int xcol = t->firstXCol(); if (xcol >= 0){ - boxName->setCurrentItem(xcol); + boxName->setCurrentIndex(xcol); double x0 = t->text(0, xcol).toDouble(); double x1 = t->text(1, xcol).toDouble(); @@ -233,14 +233,14 @@ void FFTDialog::setTable(Table *t) l = t->selectedColumns(); int selected = (int)l.size(); if (!selected){ - boxReal->setCurrentText(QString()); - boxImaginary->setCurrentText(QString()); + boxReal->setItemText(boxReal->currentIndex(), QString()); + boxImaginary->setItemText(boxImaginary->currentIndex(), QString()); } else if (selected == 1) { - boxReal->setCurrentItem(t->colIndex(l[0])); - boxImaginary->setCurrentText(QString()); + boxReal->setCurrentIndex(t->colIndex(l[0])); + boxImaginary->setItemText(boxImaginary->currentIndex(), QString()); } else { - boxReal->setCurrentItem(t->colIndex(l[0])); - boxImaginary->setCurrentItem(t->colIndex(l[1])); + boxReal->setCurrentIndex(t->colIndex(l[0])); + boxImaginary->setCurrentIndex(t->colIndex(l[1])); } } diff --git a/MantidPlot/src/Filter.cpp b/MantidPlot/src/Filter.cpp index 16d5c7c92f6d9bdb8cf9a52f8e9c98bb8b6fe475..02bf7f1a7dbba50d8a2865e3361ef35a1e7664ac 100644 --- a/MantidPlot/src/Filter.cpp +++ b/MantidPlot/src/Filter.cpp @@ -50,7 +50,7 @@ Filter::Filter( ApplicationWindow *parent, Graph *g, const QString& name) } Filter::Filter( ApplicationWindow *parent, Table *t, const QString& name) -: QObject( parent, name) +: QObject( parent) { init(); setObjectName(name); diff --git a/MantidPlot/src/FilterDialog.cpp b/MantidPlot/src/FilterDialog.cpp index 0698f42d379b74989de70c8086ea95b7b3e0a216..c5db27c063a5403a4eba0ef6dd3bc7ae3c3b26ae 100644 --- a/MantidPlot/src/FilterDialog.cpp +++ b/MantidPlot/src/FilterDialog.cpp @@ -48,7 +48,7 @@ FilterDialog::FilterDialog(int type, QWidget* parent, Qt::WFlags fl ) setWindowTitle(tr("MantidPlot - Filter options")); filter_type = type; - setName( "FilterDialog" ); + setObjectName( "FilterDialog" ); QGroupBox *gb1 = new QGroupBox(); QGridLayout *gl1 = new QGridLayout(gb1); @@ -118,7 +118,7 @@ double from = 0.0, to = 0.0; try { MyParser parser; - parser.SetExpr(boxStart->text().replace(",", ".").ascii()); + parser.SetExpr(boxStart->text().replace(",", ".").toAscii().constData()); from = parser.Eval(); } catch(mu::ParserError &e) @@ -141,7 +141,7 @@ if (filter_type >= FFTFilter::BandPass) try { MyParser parser; - parser.SetExpr(boxEnd->text().replace(",", ".").ascii()); + parser.SetExpr(boxEnd->text().replace(",", ".").toAscii().constData()); to=parser.Eval(); } catch(mu::ParserError &e) diff --git a/MantidPlot/src/Fit.cpp b/MantidPlot/src/Fit.cpp index 93ee8607633a36d6ad52c1a0fde066be757abc3d..415a001110f3eb61bcfcfc748b5794d7a947b80a 100644 --- a/MantidPlot/src/Fit.cpp +++ b/MantidPlot/src/Fit.cpp @@ -632,9 +632,9 @@ void Fit::fit() { QApplication::setOverrideCursor(Qt::WaitCursor); - const char *function = d_formula.ascii(); + const char *function = d_formula.toAscii().constData(); QString names = d_param_names.join(","); - const char *parNames = names.ascii(); + const char *parNames = names.toAscii().constData(); struct FitData d_data = {static_cast<size_t>(d_n), static_cast<size_t>(d_p), diff --git a/MantidPlot/src/FitDialog.cpp b/MantidPlot/src/FitDialog.cpp index 6a3ba1023b90aa8e1b920e2f893caf3939297cf8..8025227c5057e0ce518375d66c89aca7aa37041d 100644 --- a/MantidPlot/src/FitDialog.cpp +++ b/MantidPlot/src/FitDialog.cpp @@ -296,7 +296,7 @@ void FitDialog::initEditPage() hbox1->addWidget(polynomOrderLabel); polynomOrderBox = new QSpinBox(); - polynomOrderBox->setMinValue(1); + polynomOrderBox->setMinimum(1); polynomOrderBox->setValue(1); polynomOrderBox->hide(); connect(polynomOrderBox, SIGNAL(valueChanged(int)), this, SLOT(setNumPeaks(int))); @@ -322,7 +322,7 @@ void FitDialog::initEditPage() gb->setLayout(gl2); editBox = new QTextEdit(); - editBox->setTextFormat(Qt::PlainText); + //editBox->setTextFormat(Qt::PlainText); editBox->setFocus(); QVBoxLayout *vbox1 = new QVBoxLayout(); @@ -474,34 +474,37 @@ void FitDialog::initAdvancedPage() connect(buttonCancel3, SIGNAL(clicked()), this, SLOT(close())); } -void FitDialog::applyChanges() -{ - ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent()); +void FitDialog::applyChanges() { + ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent()); if (!app) { - throw std::logic_error("Parent of FitDialog is not ApplicationWindow as expected."); + throw std::logic_error( + "Parent of FitDialog is not ApplicationWindow as expected."); } - int prec = boxPrecision->value(); - app->fit_output_precision = prec; - if (!d_current_fit) return; + int prec = boxPrecision->value(); + app->fit_output_precision = prec; + if (!d_current_fit) + return; - d_current_fit->setOutputPrecision(prec); - for (int i=0; i<boxParams->rowCount(); i++){ + d_current_fit->setOutputPrecision(prec); + for (int i = 0; i < boxParams->rowCount(); i++) { boxParams_cellWidget<DoubleSpinBox>(i, 2)->setDecimals(prec); - if (d_current_fit->type() != Fit::BuiltIn){ + if (d_current_fit->type() != Fit::BuiltIn) { boxParams_cellWidget<RangeLimitBox>(i, 1)->setDecimals(prec); boxParams_cellWidget<RangeLimitBox>(i, 3)->setDecimals(prec); - } - } + } + } - app->pasteFitResultsToPlot = plotLabelBox->isChecked(); - app->writeFitResultsToLog = logBox->isChecked(); - app->fitPoints = generatePointsBox->value(); - app->generateUniformFitPoints = generatePointsBtn->isChecked(); - if (d_current_fit && !d_current_fit->isA("PolynomialFit") && - !d_current_fit->isA("LinearFit") && !d_current_fit->isA("LinearSlopeFit")) - app->fit_scale_errors = scaleErrorsBox->isChecked(); - app->saveSettings(); - btnApply->setEnabled(false); + app->pasteFitResultsToPlot = plotLabelBox->isChecked(); + app->writeFitResultsToLog = logBox->isChecked(); + app->fitPoints = generatePointsBox->value(); + app->generateUniformFitPoints = generatePointsBtn->isChecked(); + if (d_current_fit && + !(qstrcmp("PolynomialFit", d_current_fit->className()) == 0) && + !(qstrcmp("LinearFit", d_current_fit->className()) == 0) && + !(qstrcmp("LinearSlopeFit", d_current_fit->className()) == 0)) + app->fit_scale_errors = scaleErrorsBox->isChecked(); + app->saveSettings(); + btnApply->setEnabled(false); } void FitDialog::showParametersTable() @@ -563,7 +566,7 @@ void FitDialog::setGraph(Graph *g) QString selectedCurve = g->selectedCurveTitle(); if (!selectedCurve.isEmpty()){ int index = boxCurve->findText (selectedCurve); - boxCurve->setCurrentItem(index); + boxCurve->setCurrentIndex(index); } activateCurve(boxCurve->currentText()); @@ -587,7 +590,7 @@ void FitDialog::activateCurve(const QString& curveName) void FitDialog::saveUserFunction() { - if (editBox->text().isEmpty()){ + if (editBox->toPlainText().isEmpty()){ QMessageBox::critical(this, tr("MantidPlot - Input function error"), tr("Please enter a valid function!")); editBox->setFocus(); return; @@ -611,7 +614,7 @@ void FitDialog::saveUserFunction() return; } - if (editBox->text().contains(boxName->text())){ + if (editBox->toPlainText().contains(boxName->text())){ QMessageBox::critical(this, tr("MantidPlot - Input function error"), tr("You can't define functions recursively!")); editBox->setFocus(); @@ -620,9 +623,9 @@ void FitDialog::saveUserFunction() QString name = boxName->text(); QStringList lst = userFunctionNames(); - QString formula = parseFormula(editBox->text().simplified()); + QString formula = parseFormula(editBox->toPlainText().simplified()); if (lst.contains(name)){ - int index = lst.findIndex(name); + int index = lst.indexOf(name); d_current_fit = dynamic_cast<NonLinearFit *>(d_user_functions[index]); if (d_current_fit) { d_current_fit->setParametersList(boxParam->text().split(QRegExp("[,;]+[\\s]*"), QString::SkipEmptyParts)); @@ -693,7 +696,7 @@ void FitDialog::removeUserFunction() d_user_functions.removeAt(index); } - lst.remove(name); + lst.removeAll(name); funcBox->clear(); funcBox->addItems(lst); funcBox->setCurrentRow(0); @@ -705,7 +708,7 @@ void FitDialog::removeUserFunction() void FitDialog::showFitPage() { - QString formula = editBox->text().simplified(); + QString formula = editBox->toPlainText().simplified(); if (formula.isEmpty()){ QMessageBox::critical(this, tr("MantidPlot - Input function error"), tr("Please enter a valid function!")); editBox->setFocus(); @@ -724,8 +727,9 @@ void FitDialog::showFitPage() return; if (d_current_fit->type() == Fit::BuiltIn && - (d_current_fit->isA("PolynomialFit") || d_current_fit->isA("LinearFit") - || d_current_fit->isA("LinearSlopeFit"))){ + (isOfType(d_current_fit, "PolynomialFit") || + isOfType(d_current_fit, "LinearFit") || + isOfType(d_current_fit, "LinearSlopeFit"))){ btnParamRange->setEnabled(false); boxAlgorithm->setEnabled(false); boxPoints->setEnabled(false); @@ -813,8 +817,9 @@ void FitDialog::showEditPage() void FitDialog::showAdvancedPage() { tw->setCurrentWidget (advancedPage); - if (d_current_fit && (d_current_fit->isA("PolynomialFit") || - d_current_fit->isA("LinearFit") || d_current_fit->isA("LinearSlopeFit"))){ + if (d_current_fit && (isOfType(d_current_fit,"PolynomialFit") || + isOfType(d_current_fit, "LinearFit") || + isOfType(d_current_fit, "LinearSlopeFit"))){ scaleErrorsBox->setChecked(false); scaleErrorsBox->setEnabled(false); } else { @@ -837,7 +842,7 @@ void FitDialog::setFunction(bool ok) if (ok){ boxName->setText(funcBox->currentItem()->text()); - editBox->setText(explainBox->text()); + editBox->setText(explainBox->toPlainText()); boxParam->setText(d_current_fit->parameterNames().join(", ")); } } @@ -945,7 +950,7 @@ void FitDialog::loadPlugins() if (QLibrary::isLibrary (file)){ QLibrary lib(path + file); PluginFit *fit = new PluginFit(app, d_graph); - fit->load(lib.library()); + fit->load(lib.fileName()); d_plugins << fit; names << fit->objectName(); fit->setFileName(modelsDirPath + fit->objectName() + ".fit"); @@ -1008,16 +1013,16 @@ void FitDialog::showExpression(int function) void FitDialog::addFunction() { - QString f = explainBox->text(); + QString f = explainBox->toPlainText(); if (categoryBox->currentRow() == 2){//basic parser function - f = f.left(f.find("(", 0)+1); - if (editBox->hasSelectedText()){ - QString markedText=editBox->selectedText(); - editBox->insert(f+markedText+")"); + f = f.left(f.indexOf("(", 0)+1); + if (editBox->textCursor().hasSelection()){ + QString markedText=editBox->textCursor().selectedText(); + editBox->insertPlainText(f+markedText+")"); } else - editBox->insert(f+")"); + editBox->insertPlainText(f+")"); }else - editBox->insert(f); + editBox->insertPlainText(f); editBox->setFocus(); } @@ -1025,141 +1030,155 @@ void FitDialog::addFunction() void FitDialog::addFunctionName() { if (funcBox->count() > 0){ - editBox->insert(funcBox->currentItem()->text()); + editBox->insertPlainText(funcBox->currentItem()->text()); editBox->setFocus(); } } -void FitDialog::accept() -{ - ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent()); +void FitDialog::accept() { + ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent()); if (!app) { - throw std::logic_error("Parent of FitDialog is not ApplicationWindow as expected."); + throw std::logic_error( + "Parent of FitDialog is not ApplicationWindow as expected."); } - QString curve = boxCurve->currentText(); - QStringList curvesList = d_graph->curvesList(); - if (!curvesList.contains(curve)){ - QMessageBox::critical(app, tr("MantidPlot - Warning"), - tr("The curve <b> %1 </b> doesn't exist anymore! Operation aborted!").arg(curve)); - boxCurve->clear(); - boxCurve->addItems(curvesList); - return; - } + QString curve = boxCurve->currentText(); + QStringList curvesList = d_graph->curvesList(); + if (!curvesList.contains(curve)) { + QMessageBox::critical( + app, tr("MantidPlot - Warning"), + tr("The curve <b> %1 </b> doesn't exist anymore! Operation aborted!") + .arg(curve)); + boxCurve->clear(); + boxCurve->addItems(curvesList); + return; + } - double start = boxFrom->value(); - double end = boxTo->value(); - double eps = boxTolerance->value(); + double start = boxFrom->value(); + double end = boxTo->value(); + double eps = boxTolerance->value(); - if (start >= end){ - QMessageBox::critical(app, tr("MantidPlot - Input error"), - tr("Please enter x limits that satisfy: from < end!")); - boxTo->setFocus(); - return; - } + if (start >= end) { + QMessageBox::critical( + app, tr("MantidPlot - Input error"), + tr("Please enter x limits that satisfy: from < end!")); + boxTo->setFocus(); + return; + } - int n = 0, rows = boxParams->rowCount(); - if (!boxParams->isColumnHidden(4)){ - for (int i=0; i<rows; i++){//count the non-constant parameters + int n = 0, rows = boxParams->rowCount(); + if (!boxParams->isColumnHidden(4)) { + for (int i = 0; i < rows; i++) { // count the non-constant parameters QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4); - if (!cb->isChecked()) - n++; - } - } else - n = rows; - - QStringList parameters = QStringList(); - MyParser parser; - bool error = false; - QVarLengthArray<double> paramsInit(n); - QString formula = boxFunction->text(); - try { - if (!boxParams->isColumnHidden(4)){ - int j = 0; - for (int i=0; i<rows; i++){ + if (!cb->isChecked()) + n++; + } + } else + n = rows; + + QStringList parameters = QStringList(); + MyParser parser; + bool error = false; + QVarLengthArray<double> paramsInit(n); + QString formula = boxFunction->toPlainText(); + try { + if (!boxParams->isColumnHidden(4)) { + int j = 0; + for (int i = 0; i < rows; i++) { QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4); - if (!cb->isChecked()){ + if (!cb->isChecked()) { paramsInit[j] = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value(); - parser.DefineVar(boxParams->item(i, 0)->text().ascii(), ¶msInit[j]); - parameters << boxParams->item(i, 0)->text(); + parser.DefineVar(boxParams->item(i, 0)->text().toAscii().constData(), + ¶msInit[j]); + parameters << boxParams->item(i, 0)->text(); - if (d_current_fit->type() != Fit::BuiltIn){ + if (d_current_fit->type() != Fit::BuiltIn) { double left = boxParams_cellWidget<RangeLimitBox>(j, 1)->value(); double right = boxParams_cellWidget<RangeLimitBox>(j, 3)->value(); - d_current_fit->setParameterRange(j, left, right); - } - j++; - } else { + d_current_fit->setParameterRange(j, left, right); + } + j++; + } else { double val = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value(); - formula.replace(boxParams->item(i, 0)->text(), QString::number(val, 'e', app->fit_output_precision)); - } - } - } else { - for (int i=0; i<n; i++) { + formula.replace(boxParams->item(i, 0)->text(), + QString::number(val, 'e', app->fit_output_precision)); + } + } + } else { + for (int i = 0; i < n; i++) { paramsInit[i] = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value(); - parser.DefineVar(boxParams->item(i, 0)->text().ascii(), ¶msInit[i]); - parameters << boxParams->item(i, 0)->text(); + parser.DefineVar(boxParams->item(i, 0)->text().toAscii().constData(), + ¶msInit[i]); + parameters << boxParams->item(i, 0)->text(); - if (d_current_fit->type() != Fit::BuiltIn){ + if (d_current_fit->type() != Fit::BuiltIn) { double left = boxParams_cellWidget<RangeLimitBox>(i, 1)->value(); double right = boxParams_cellWidget<RangeLimitBox>(i, 3)->value(); - d_current_fit->setParameterRange(i, left, right); - } - } - } + d_current_fit->setParameterRange(i, left, right); + } + } + } - parser.SetExpr(formula.ascii()); - double x = start; - parser.DefineVar("x", &x); - parser.Eval(); - } catch(mu::ParserError &e) { - QString errorMsg = boxFunction->text() + " = " + formula + "\n" + QString::fromStdString(e.GetMsg()) + "\n" + - tr("Please verify that you have initialized all the parameters!"); - - QMessageBox::critical(app, tr("MantidPlot - Input function error"), errorMsg); - boxFunction->setFocus(); - error = true; - } + parser.SetExpr(formula.toAscii().constData()); + double x = start; + parser.DefineVar("x", &x); + parser.Eval(); + } catch (mu::ParserError &e) { + QString errorMsg = + boxFunction->toPlainText() + " = " + formula + "\n" + + QString::fromStdString(e.GetMsg()) + "\n" + + tr("Please verify that you have initialized all the parameters!"); + + QMessageBox::critical(app, tr("MantidPlot - Input function error"), + errorMsg); + boxFunction->setFocus(); + error = true; + } - if (!error){ - if (d_current_fit->type() == Fit::BuiltIn) - modifyGuesses (paramsInit.data()); - if (d_current_fit->type() == Fit::User){ - d_current_fit->setParametersList(parameters); - d_current_fit->setFormula(formula); - } + if (!error) { + if (d_current_fit->type() == Fit::BuiltIn) + modifyGuesses(paramsInit.data()); + if (d_current_fit->type() == Fit::User) { + d_current_fit->setParametersList(parameters); + d_current_fit->setFormula(formula); + } - d_current_fit->setInitialGuesses(paramsInit.data()); - - if (!d_current_fit->setDataFromCurve(curve, start, end) || - !d_current_fit->setWeightingData ((Fit::WeightingMethod)boxWeighting->currentIndex(), - tableNamesBox->currentText()+"_"+colNamesBox->currentText())) return; - - d_current_fit->setTolerance(eps); - d_current_fit->setOutputPrecision(app->fit_output_precision); - d_current_fit->setAlgorithm((Fit::Algorithm)boxAlgorithm->currentIndex()); - d_current_fit->setColor(boxColor->currentIndex()); - d_current_fit->generateFunction(generatePointsBtn->isChecked(), generatePointsBox->value()); - d_current_fit->setMaximumIterations(boxPoints->value()); - if (!d_current_fit->isA("PolynomialFit") && !d_current_fit->isA("LinearFit") && !d_current_fit->isA("LinearSlopeFit")) - d_current_fit->scaleErrors(scaleErrorsBox->isChecked()); - d_current_fit->fit(); - double *res = d_current_fit->results(); - if (!boxParams->isColumnHidden(4)){ - int j = 0; - for (int i=0; i<rows; i++){ - QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4); - if (!cb->isChecked()) + d_current_fit->setInitialGuesses(paramsInit.data()); + + if (!d_current_fit->setDataFromCurve(curve, start, end) || + !d_current_fit->setWeightingData( + (Fit::WeightingMethod)boxWeighting->currentIndex(), + tableNamesBox->currentText() + "_" + colNamesBox->currentText())) + return; + + d_current_fit->setTolerance(eps); + d_current_fit->setOutputPrecision(app->fit_output_precision); + d_current_fit->setAlgorithm((Fit::Algorithm)boxAlgorithm->currentIndex()); + d_current_fit->setColor(boxColor->currentIndex()); + d_current_fit->generateFunction(generatePointsBtn->isChecked(), + generatePointsBox->value()); + d_current_fit->setMaximumIterations(boxPoints->value()); + if (!isOfType(d_current_fit, "PolynomialFit") && + !isOfType(d_current_fit, "LinearFit") && + !isOfType(d_current_fit, "LinearSlopeFit")) + d_current_fit->scaleErrors(scaleErrorsBox->isChecked()); + d_current_fit->fit(); + double *res = d_current_fit->results(); + if (!boxParams->isColumnHidden(4)) { + int j = 0; + for (int i = 0; i < rows; i++) { + QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4); + if (!cb->isChecked()) boxParams_cellWidget<DoubleSpinBox>(i, 2)->setValue(res[j++]); - } - } else { - for (int i=0; i<rows; i++) + } + } else { + for (int i = 0; i < rows; i++) boxParams_cellWidget<DoubleSpinBox>(i, 2)->setValue(res[i]); - } + } - if (globalParamTableBox->isChecked() && d_param_table) - d_current_fit->writeParametersToTable(d_param_table, true); - } + if (globalParamTableBox->isChecked() && d_param_table) + d_current_fit->writeParametersToTable(d_param_table, true); + } } void FitDialog::modifyGuesses(double* initVal) @@ -1495,6 +1514,10 @@ QString FitDialog::parseFormula(const QString& s) return formula; } +bool FitDialog::isOfType(const QObject *obj, const char *toCompare) const { + return strcmp(obj->metaObject()->className(), toCompare) == 0; +} + template<class Widget> Widget* FitDialog::boxParams_cellWidget(int i, int j) const { Widget *w = dynamic_cast<Widget*>(boxParams->cellWidget(i, j)); diff --git a/MantidPlot/src/FitDialog.h b/MantidPlot/src/FitDialog.h index f36edf34f508d6079ec761f8057b7183b8b96e68..d4b845caea9dc695c08cfc3918a78e4cfc088bbe 100644 --- a/MantidPlot/src/FitDialog.h +++ b/MantidPlot/src/FitDialog.h @@ -107,8 +107,9 @@ private slots: void showParameterRange(bool); private: + bool isOfType(const QObject *obj, const char *toCompare) const; void loadPlugins(); - void loadUserFunctions(); + void loadUserFunctions(); void initBuiltInFunctions(); void modifyGuesses(double* initVal); QStringList builtInFunctionNames(); diff --git a/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp b/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp index ff72dfb951c80b987f846328cb4e574e0297e2b3..1f9f01f697d68bc0fb8204e7255da72c72ecb447 100644 --- a/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp +++ b/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp @@ -131,9 +131,7 @@ void DimensionSliceWidget::setShownDim(int dim) if (ui.horizontalSpacer != NULL) { // Remove the 3rd item (if it's not gone already) = the spacer - auto it = QLayoutIterator(ui.horizontalLayout); - ++it; ++it; ++it; - ui.horizontalLayout->removeItem(it.current()); + ui.horizontalLayout->removeItem(ui.horizontalLayout->itemAt(3)); delete ui.horizontalSpacer; ui.horizontalSpacer = NULL; }