Raw -> Smart Pointers for musrWiz, qt5.

This commit is contained in:
2023-10-24 12:15:20 +02:00
parent b9d05d5fcb
commit 5002ed84de
4 changed files with 199 additions and 187 deletions

View File

@@ -28,6 +28,7 @@
***************************************************************************/
#include <iostream>
#include <memory>
#include <QtWidgets>
#include <QObject>
@@ -423,26 +424,26 @@ PShowTheo::PShowTheo(QString theo, QString func, QWidget *parent, Qt::WindowFlag
{
setWindowTitle("used Theory");
QLabel *label = new QLabel("<h2>used Theory</h2>");
QPlainTextEdit *theoTextEdit = new QPlainTextEdit(theo);
std::unique_ptr<QLabel> label = std::make_unique<QLabel>("<h2>used Theory</h2>");
std::unique_ptr<QPlainTextEdit> theoTextEdit = std::make_unique<QPlainTextEdit>(theo);
theoTextEdit->setReadOnly(true);
QPlainTextEdit *funcTextEdit = 0;
std::unique_ptr<QPlainTextEdit> funcTextEdit;
if (!func.isEmpty()) {
funcTextEdit = new QPlainTextEdit(func);
funcTextEdit = std::make_unique<QPlainTextEdit>(func);
funcTextEdit->setReadOnly(true);
}
QPushButton *cancel = new QPushButton("&Cancel");
std::unique_ptr<QPushButton> cancel = std::make_unique<QPushButton>("&Cancel");
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(theoTextEdit);
std::unique_ptr<QVBoxLayout> layout = std::unique_ptr<QVBoxLayout>();
layout->addWidget(label.get());
layout->addWidget(theoTextEdit.get());
if (funcTextEdit)
layout->addWidget(funcTextEdit);
layout->addWidget(cancel);
layout->addWidget(funcTextEdit.get());
layout->addWidget(cancel.get());
setLayout(layout);
setLayout(layout.get());
connect(cancel, SIGNAL(pressed()), this, SLOT(accept()));
connect(cancel.get(), SIGNAL(pressed()), this, SLOT(accept()));
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -459,23 +460,23 @@ PIntroPage::PIntroPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
setTitle("<h2>Introduction</h2>");
setSubTitle("This wizard will help you to create your msr-file.");
fMsrFileName = new QLineEdit();
fMsrFileName = std::make_unique<QLineEdit>();
fMsrFileName->setToolTip("enter msr-file name or leave it empty.");
fMsrFileName->setWhatsThis("If empty the file name will be generate,\nbased on the run number, the fit type\nand the type of measurement.");
fYear = new QLineEdit();
fYear = std::unique_ptr<QLineEdit>();
fYear->setValidator(new QIntValidator());
QDate date = QDate::currentDate();
fYear->setText(QString("%1").arg(date.year()));
fYear->setToolTip("year when the run took place.");
fYear->setWhatsThis("The year is used to generate\nthe RUN header information where\nmusrfit will look for the data.");
fRunNumber = new QLineEdit();
fRunNumber = std::unique_ptr<QLineEdit>();
fRunNumber->setValidator(new QIntValidator());
fRunNumber->setText(QString("%1").arg(fMsrData->getRunNumber()));
fRunNumber->setToolTip("enter the run number here.");
fInstitute = new QComboBox();
fInstitute = std::unique_ptr<QComboBox>();
QStringList list = fAdmin->getInstituteList(); // get list form the instrument_def's
list.prepend("UnDef");
fInstitute->addItems(list);
@@ -483,7 +484,7 @@ PIntroPage::PIntroPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
if (idx != -1)
fInstitute->setCurrentIndex(idx);
fInstrument = new QComboBox();
fInstrument = std::unique_ptr<QComboBox>();
list.clear();
list << fAdmin->getInstrumentList(fMsrData->getInstitute());
list.prepend("UnDef");
@@ -492,20 +493,20 @@ PIntroPage::PIntroPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
if (idx != -1)
fInstrument->setCurrentIndex(idx);
fFitType = new QComboBox();
fFitType = std::unique_ptr<QComboBox>();
list.clear();
list << "UnDef" << "Single Histo" << "Single Histo RRF" << "Asymmetry" << "Asymmetry RRF" << "Mu Minus" << "None muSR";
fFitType->addItems(list);
idx = fFitType->findText(fAdmin->getDefaultFitType());
fFitType->setCurrentIndex(idx);
fMeasurementType = new QComboBox();
fMeasurementType = std::unique_ptr<QComboBox>();
list.clear();
list << "UnDef" << "ZF" << "TF" << "LF";
fMeasurementType->addItems(list);
fMeasurementType->setCurrentIndex(fMsrData->getTypeOfMeasurement());
fT0 = new QComboBox();
fT0 = std::unique_ptr<QComboBox>();
list.clear();
list << "from data file" << "call musrT0" << "enter here";
fT0->addItems(list);
@@ -514,23 +515,23 @@ PIntroPage::PIntroPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
QFormLayout *layout = new QFormLayout;
layout->addRow("Add msr-file name:", fMsrFileName);
layout->addRow("Year:", fYear);
layout->addRow("Run Number:", fRunNumber);
layout->addRow("Institute:", fInstitute);
layout->addRow("Instrument:", fInstrument);
layout->addRow("Fit Type:", fFitType);
layout->addRow("Type of Measurement:", fMeasurementType);
layout->addRow("T0's:", fT0);
layout->addRow("Add msr-file name:", fMsrFileName.get());
layout->addRow("Year:", fYear.get());
layout->addRow("Run Number:", fRunNumber.get());
layout->addRow("Institute:", fInstitute.get());
layout->addRow("Instrument:", fInstrument.get());
layout->addRow("Fit Type:", fFitType.get());
layout->addRow("Type of Measurement:", fMeasurementType.get());
layout->addRow("T0's:", fT0.get());
setLayout(layout);
registerField("runNumber*", fRunNumber);
registerField("runNumber*", fRunNumber.get());
QObject::connect(fInstitute, SIGNAL(activated(int)), this, SLOT(handleInstituteChanged(int)));
QObject::connect(fFitType, SIGNAL(activated(int)), this , SLOT(handleFitType(int)));
QObject::connect(fMeasurementType, SIGNAL(activated(int)), this, SLOT(checkSetup(int)));
QObject::connect(fT0, SIGNAL(activated(int)), this, SLOT(handleT0(int)));
QObject::connect(fInstitute.get(), SIGNAL(activated(int)), this, SLOT(handleInstituteChanged(int)));
QObject::connect(fFitType.get(), SIGNAL(activated(int)), this , SLOT(handleFitType(int)));
QObject::connect(fMeasurementType.get(), SIGNAL(activated(int)), this, SLOT(checkSetup(int)));
QObject::connect(fT0.get(), SIGNAL(activated(int)), this, SLOT(handleT0(int)));
}
//-------------------------------------------------------------------------
@@ -553,7 +554,7 @@ void PIntroPage::handleFitType(int idx)
{
if ( (idx != FIT_TYPE_SINGLE_HISTO) &&
(idx != FIT_TYPE_ASYMMETRY) ){
QMessageBox::warning(0, "WARNING", "Currently only fit type: single histo and asymmetry available.");
QMessageBox::warning(nullptr, "WARNING", "Currently only fit type: single histo and asymmetry available.");
fFitType->setCurrentIndex(FIT_TYPE_SINGLE_HISTO);
}
}
@@ -580,7 +581,7 @@ void PIntroPage::checkSetup(int idx)
case MEASURE_LF:
setup = instru->getLFSetups();
measure = "LF";
QMessageBox::information(0, "INFO", "Not yet implemented.");
QMessageBox::information(nullptr, "INFO", "Not yet implemented.");
break;
case MEASURE_UNDEF:
default:
@@ -589,7 +590,7 @@ void PIntroPage::checkSetup(int idx)
if (setup.size() == 0) {
QString msg = QString("Didn't find any setup for:\nInstitute: %1\nInstrument: %2").arg(fInstitute->currentText()).arg(fInstrument->currentText());
QMessageBox::critical(0, "ERROR", msg);
QMessageBox::critical(nullptr, "ERROR", msg);
return;
} else if (setup.size() == 1) {
if (setup[0].getName() == "Default") {
@@ -684,26 +685,26 @@ PTheoPage::PTheoPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
QString str = QString("Now you will need to enter your theory - fit type: %1").arg(fMsrData->getFitTypeString());
setSubTitle(str);
fTheo = new QPlainTextEdit();
fTheo = std::make_unique<QPlainTextEdit>();
fTheo->setWhatsThis("Enter the theory function here.");
fEditTemplate = new QCheckBox("Edit Template");
fEditTemplate = std::make_unique<QCheckBox>("Edit Template");
fEditTemplate->setToolTip("if checked, it allows to edit the template");
fEditTemplate->hide();
fClearAll = new QPushButton();
fClearAll = std::make_unique<QPushButton>();
fClearAll->setText("Clear All");
fClearAll->setToolTip("will clear the theory edit field.");
fClearAll->setWhatsThis("will clear the theory edit field.");
fCheckTheo = new QPushButton();
fCheckTheo = std::make_unique<QPushButton>();
fCheckTheo->setText("Check");
fCheckTheo->setToolTip("check if the theory is valid.");
fCheckTheo->setWhatsThis("Check is the theory string is valid.");
QVector<PTheoTemplate> templ = fAdmin->getTheoTemplates();
QVector<PMusrfitFunc> funcs = fAdmin->getMusrfitFunc();
fTheoSelect = new QComboBox();
fTheoSelect = std::make_unique<QComboBox>();
QStringList list;
// all the templates defined in musrfit_func.xml
for (int i=0; i<templ.size(); i++) {
@@ -716,25 +717,25 @@ PTheoPage::PTheoPage(PAdmin *admin, PMsrData *data, QWidget *parent) :
fTheoSelect->addItems(list);
fTheoSelect->setWhatsThis("select some predef. theory functions.\nFor all theory functions available check the help");
fTheoAdd = new QPushButton("Add");
fTheoAdd = std::make_unique<QPushButton>("Add");
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addWidget(fTheoSelect);
hLayout->addWidget(fTheoAdd);
hLayout->addWidget(fTheoSelect.get());
hLayout->addWidget(fTheoAdd.get());
QFormLayout *layout = new QFormLayout;
layout->addRow("Enter Theory:", fTheo);
layout->addRow(fEditTemplate);
layout->addRow("Clear Theory:", fClearAll);
layout->addRow("Enter Theory:", fTheo.get());
layout->addRow(fEditTemplate.get());
layout->addRow("Clear Theory:", fClearAll.get());
layout->addRow("Pre Def. Theory Select:", hLayout);
layout->addRow("Press for Validation:", fCheckTheo);
layout->addRow("Press for Validation:", fCheckTheo.get());
setLayout(layout);
QObject::connect(fEditTemplate, SIGNAL(stateChanged(int)), this, SLOT(templateState(int)));
QObject::connect(fClearAll, SIGNAL(clicked()), this, SLOT(clearAll()));
QObject::connect(fCheckTheo, SIGNAL(clicked()), this, SLOT(checkTheory()));
QObject::connect(fTheoAdd, SIGNAL(clicked()), this, SLOT(addTheory()));
QObject::connect(fEditTemplate.get(), SIGNAL(stateChanged(int)), this, SLOT(templateState(int)));
QObject::connect(fClearAll.get(), SIGNAL(clicked()), this, SLOT(clearAll()));
QObject::connect(fCheckTheo.get(), SIGNAL(clicked()), this, SLOT(checkTheory()));
QObject::connect(fTheoAdd.get(), SIGNAL(clicked()), this, SLOT(addTheory()));
}
//-------------------------------------------------------------------------
@@ -907,7 +908,7 @@ void PTheoPage::checkTheory()
ok = analyzeTokens(line[i], 0);
if (!ok) {
QString str = QString("**ERROR** in line %1.\n funX takes no parameter.").arg(i+1);
QMessageBox::critical(0, "Check Theory", str);
QMessageBox::critical(nullptr, "Check Theory", str);
// eventually it would be nice to highlight the faulty line
return;
}
@@ -915,7 +916,7 @@ void PTheoPage::checkTheory()
ok = analyzeTokens(line[i], 0);
if (!ok) {
QString str = QString("**ERROR** in line %1.\n mapX takes no parameter.").arg(i+1);
QMessageBox::critical(0, "Check Theory", str);
QMessageBox::critical(nullptr, "Check Theory", str);
// eventually it would be nice to highlight the faulty line
return;
}
@@ -928,14 +929,14 @@ void PTheoPage::checkTheory()
func = fAdmin->getMusrfitFunc(strList[0]);
if (func.getName() == "UnDef") { // function not found
QString str = QString("**ERROR** in line %1, '%2' is not a recognized musrfit function.").arg(i+1).arg(line[i]);
QMessageBox::critical(0, "Check Theory", str);
QMessageBox::critical(nullptr, "Check Theory", str);
// eventually it would be nice to highlight the faulty line
return;
}
ok = analyzeTokens(line[i], func.getNoOfParam());
if (!ok) {
QString str = QString("**ERROR** in line %1.\n %2 takes %3 parameter.").arg(i+1).arg(func.getName()).arg(func.getNoOfParam());
QMessageBox::critical(0, "Check Theory", str);
QMessageBox::critical(nullptr, "Check Theory", str);
// eventually it would be nice to highlight the faulty line
return;
}
@@ -955,8 +956,8 @@ void PTheoPage::checkTheory()
fTheoValid = true;
QObject *obj = sender();
if (obj == fCheckTheo)
QMessageBox::information(0, "Check Theory", "Theory seems to be OK.");
if (obj == (QObject*)fCheckTheo.get())
QMessageBox::information(nullptr, "Check Theory", "Theory seems to be OK.");
}
//-------------------------------------------------------------------------
@@ -1021,7 +1022,7 @@ bool PTheoPage::analyzeTokens(QString str, int noOfTokens)
dealWithMap(tok[0], stokNo, 0);
} else {
QString msg = QString("Found map of the form '%1'.\nThis is NOT a legal map!").arg(tok[0]);
QMessageBox::critical(0, "analyzeTokens", msg);
QMessageBox::critical(nullptr, "analyzeTokens", msg);
return false;
}
} else if (tok[0].startsWith("fun")) {
@@ -1032,7 +1033,7 @@ bool PTheoPage::analyzeTokens(QString str, int noOfTokens)
dealWithFun(stokNo);
} else {
QString msg = QString("Found fun of the form '%1'.\nThis is NOT a legal function!").arg(tok[0]);
QMessageBox::critical(0, "analyzeTokens", msg);
QMessageBox::critical(nullptr, "analyzeTokens", msg);
return false;
}
}
@@ -1051,7 +1052,7 @@ bool PTheoPage::analyzeTokens(QString str, int noOfTokens)
dealWithParam(tok[0], paramNo, i);
} else if (!tok[i].startsWith("map") && !tok[i].startsWith("fun")) {
QString msg = QString("Found parameter of the form '%1'.\nThis is NOT a legal parameter!").arg(tok[i]);
QMessageBox::critical(0, "analyzeTokens", msg);
QMessageBox::critical(nullptr, "analyzeTokens", msg);
return false;
}
}
@@ -1068,7 +1069,7 @@ bool PTheoPage::analyzeTokens(QString str, int noOfTokens)
dealWithMap(tok[0], mapNo, i);
} else {
QString msg = QString("Found map of the form '%1'.\nThis is NOT a legal map!").arg(tok[i]);
QMessageBox::critical(0, "analyzeTokens", msg);
QMessageBox::critical(nullptr, "analyzeTokens", msg);
return false;
}
}
@@ -1086,7 +1087,7 @@ bool PTheoPage::analyzeTokens(QString str, int noOfTokens)
dealWithFun(funNo);
} else {
QString msg = QString("Found function of the form '%1'.\nThis is NOT a legal function!").arg(tok[i]);
QMessageBox::critical(0, "analyzeTokens", msg);
QMessageBox::critical(nullptr, "analyzeTokens", msg);
return false;
}
}
@@ -1196,7 +1197,6 @@ PMapPage::PMapPage(PMsrData *data, QWidget *parent) :
QWizardPage(parent),
fMsrData(data)
{
fMapPageLayout = 0;
}
//-------------------------------------------------------------------------
@@ -1222,8 +1222,8 @@ void PMapPage::initializePage()
// sort maps
fMsrData->sort("map");
fMapPageLayout = new QFormLayout;
setLayout(fMapPageLayout);
fMapPageLayout = std::make_unique<QFormLayout>();
setLayout(fMapPageLayout.get());
// make sure that the map list is empty
fMapGuiVec.clear();
@@ -1284,12 +1284,12 @@ void PMapPage::initializePage()
fMapPageLayout->addRow(QString("map%1").arg(i+1), hLayout);
}
fShowTheo = new QPushButton("Show &Theory");
fMapPageLayout->addRow(fShowTheo);
fShowTheo = std::make_unique<QPushButton>("Show &Theory");
fMapPageLayout->addRow(fShowTheo.get());
update();
connect(fShowTheo, SIGNAL(pressed()), this, SLOT(showTheo()));
connect(fShowTheo.get(), SIGNAL(pressed()), this, SLOT(showTheo()));
}
//-------------------------------------------------------------------------
@@ -1354,18 +1354,18 @@ PFuncPage::PFuncPage(PMsrData *data, QWidget *parent) :
QString str = QString("Now you will need to enter your functions. Fit type: %1").arg(fMsrData->getFitTypeString());
setSubTitle(str);
fFunc = new QPlainTextEdit();
fFunc = std::make_unique<QPlainTextEdit>();
fFunc->setWhatsThis("Enter the function(s) here.");
fShowTheo = new QPushButton("Show &Theory");
fShowTheo = std::make_unique<QPushButton>("Show &Theory");
QFormLayout *layout = new QFormLayout;
layout->addRow("Enter Function(s):", fFunc);
layout->addRow(fShowTheo);
layout->addRow("Enter Function(s):", fFunc.get());
layout->addRow(fShowTheo.get());
setLayout(layout);
connect(fShowTheo, SIGNAL(pressed()), this, SLOT(showTheo()));
connect(fShowTheo.get(), SIGNAL(pressed()), this, SLOT(showTheo()));
}
//-------------------------------------------------------------------------
@@ -1457,8 +1457,16 @@ bool PFuncPage::validatePage()
while ((idx = str.indexOf("par", idx)) != -1) {
tok = "";
idx += 3;
if (idx >= str.length()) {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'par' in '" << str.toLatin1().data() << "' (idx=" << idx << ")." << std::endl;
return false;
}
while (str[idx].isDigit()) {
tok += str[idx++];
tok += str[idx];
if (idx++ >= str.length()) {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'par' in '" << str.toLatin1().data() << "' (idx=" << idx << ")." << std::endl;
return false;
}
}
parNo = tok.toInt(&ok);
if (ok) {
@@ -1468,6 +1476,9 @@ bool PFuncPage::validatePage()
param.setValue(0.0);
param.setStep(0.1);
paramList.push_back(param);
} else {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'par' in '" << str.toLatin1().data() << "' (tok=" << tok.toLatin1().data() << " not a number)." << std::endl;
return false;
}
}
fMsrData->appendParam(paramList);
@@ -1479,8 +1490,16 @@ bool PFuncPage::validatePage()
while ((idx = str.indexOf("map", idx)) != -1) {
tok = "";
idx += 3;
while (str[idx].isDigit()) {
tok += str[idx++];
if (idx >= str.length()) {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'map' in '" << str.toLatin1().data() << "' (idx=" << idx << ")." << std::endl;
return false;
}
while ((idx < str.length()) && str[idx].isDigit()) {
tok += str[idx];
if (idx++ >= str.length()) {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'map' in '" << str.toLatin1().data() << "' (idx=" << idx << ")." << std::endl;
return false;
}
}
mapNo = tok.toInt(&ok);
if (ok) {
@@ -1488,6 +1507,9 @@ bool PFuncPage::validatePage()
sstr = QString("map%1").arg(mapNo);
map.setName(sstr);
mapList.push_back(map);
} else {
std::cerr << ">> PFuncPage::validatePage(): **ERROR** with 'map' in '" << str.toLatin1().data() << "' (tok=" << tok.toLatin1().data() << " not a number)." << std::endl;
return false;
}
}
fMsrData->appendMap(mapList);
@@ -1545,7 +1567,6 @@ PParamPage::PParamPage(PMsrData *data, QWidget *parent) :
QWizardPage(parent),
fMsrData(data)
{
fParameterPageLayout = 0;
}
//-------------------------------------------------------------------------
@@ -1571,8 +1592,8 @@ void PParamPage::initializePage()
QString str = QString("Here you can fine tune your parameters. Fit type: %1").arg(fMsrData->getFitTypeString());
setSubTitle(str);
fParameterPageLayout = new QFormLayout;
setLayout(fParameterPageLayout);
fParameterPageLayout = std::make_unique<QFormLayout>();
setLayout(fParameterPageLayout.get());
// make sure that parameter list is empty
fParamGuiVec.clear();
@@ -1631,12 +1652,12 @@ void PParamPage::initializePage()
fParameterPageLayout->addRow(QString("%1").arg(i+1), hLayout);
}
fShowTheo = new QPushButton("Show &Theory");
fParameterPageLayout->addRow(fShowTheo);
fShowTheo = std::make_unique<QPushButton>("Show &Theory");
fParameterPageLayout->addRow(fShowTheo.get());
update();
connect(fShowTheo, SIGNAL(pressed()), this, SLOT(showTheo()));
connect(fShowTheo.get(), SIGNAL(pressed()), this, SLOT(showTheo()));
}
//-------------------------------------------------------------------------
@@ -1700,25 +1721,25 @@ PFitInfoPage::PFitInfoPage(PMsrData *data, QWidget *parent) :
QString str = QString("Collect necessary fit information. Fit type: %1").arg(fMsrData->getFitTypeString());
setSubTitle(str);
fFitRangeStart = new QLineEdit("0.0");
fFitRangeStart = std::make_unique<QLineEdit>("0.0");
fFitRangeStart->setValidator(new QDoubleValidator());
fFitRangeEnd = new QLineEdit("9.0");
fFitRangeEnd = std::make_unique<QLineEdit>("9.0");
fFitRangeEnd->setValidator(new QDoubleValidator());
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addWidget(fFitRangeStart);
hLayout->addWidget(fFitRangeEnd);
hLayout->addWidget(fFitRangeStart.get());
hLayout->addWidget(fFitRangeEnd.get());
fPacking = new QLineEdit("1");
fPacking = std::make_unique<QLineEdit>("1");
fPacking->setValidator(new QIntValidator());
fCommands = new QPlainTextEdit();
fCommands = std::make_unique<QPlainTextEdit>();
fCommands->setPlainText("#MAX_LIKELIHOOD\nPRINT_LEVEL 2\nMINIMIZE\nMINOS\nSAVE");
QFormLayout *layout = new QFormLayout;
layout->addRow("Fit Range:", hLayout);
layout->addRow("Packing:", fPacking);
layout->addRow("Commands:", fCommands);
layout->addRow("Packing:", fPacking.get());
layout->addRow("Commands:", fCommands.get());
setLayout(layout);
}
@@ -1784,22 +1805,22 @@ PConclusionPage::PConclusionPage(PAdmin *admin, PMsrData *data, QString *msrFile
QVBoxLayout *vLayout = new QVBoxLayout;
fMsrPathFileLabel = new QLabel("Current msr-File Path:");
fMsrFilePathLineEdit = new QLineEdit(ddir.absolutePath());
fMsrPathFileLabel = std::make_unique<QLabel>("Current msr-File Path:");
fMsrFilePathLineEdit = std::make_unique<QLineEdit>(ddir.absolutePath());
fMsrFilePathLineEdit->setReadOnly(true);
fSaveAsMsrFile = new QPushButton("Save As (msr-file path)");
fSaveAsTemplate = new QPushButton("Save As (template)");
fSaveAsMsrFile = std::make_unique<QPushButton>("Save As (msr-file path)");
fSaveAsTemplate = std::make_unique<QPushButton>("Save As (template)");
vLayout->addWidget(fMsrPathFileLabel);
vLayout->addWidget(fMsrFilePathLineEdit);
vLayout->addWidget(fSaveAsMsrFile);
vLayout->addWidget(fMsrPathFileLabel.get());
vLayout->addWidget(fMsrFilePathLineEdit.get());
vLayout->addWidget(fSaveAsMsrFile.get());
vLayout->addStretch(1);
vLayout->addWidget(fSaveAsTemplate);
vLayout->addWidget(fSaveAsTemplate.get());
setLayout(vLayout);
connect(fSaveAsMsrFile, SIGNAL(pressed()), this, SLOT(saveAsMsrFile()));
connect(fSaveAsTemplate, SIGNAL(pressed()), this, SLOT(saveAsTemplate()));
connect(fSaveAsMsrFile.get(), SIGNAL(pressed()), this, SLOT(saveAsMsrFile()));
connect(fSaveAsTemplate.get(), SIGNAL(pressed()), this, SLOT(saveAsTemplate()));
}
//-------------------------------------------------------------------------
@@ -1995,15 +2016,6 @@ PMusrWiz::PMusrWiz(PAdmin *admin, PMsrData *msrData, QWidget *parent) :
QObject::connect(this, SIGNAL(helpRequested()), this, SLOT(help()));
}
//-------------------------------------------------------------------------
/**
* @brief PMusrWiz::~PMusrWiz
*/
PMusrWiz::~PMusrWiz()
{
}
//-------------------------------------------------------------------------
/**
* @brief PMusrWiz::writeMsrFile
@@ -2023,7 +2035,7 @@ int PMusrWiz::writeMsrFile(int result)
// no msr-file name given, hence generate it
if (fMsrData->getMsrFileName() == QString("")) {
if (fMsrData->getRunNumber() == -1) {
QMessageBox::critical(0, "ERROR", "No run number given! Won't do anything.");
QMessageBox::critical(nullptr, "ERROR", "No run number given! Won't do anything.");
return -2;
}
fMsrData->setMsrFileName(QString("%1").arg(fMsrData->getRunNumber()));
@@ -2070,7 +2082,7 @@ int PMusrWiz::writeMsrFileSingleHisto()
QFile fln(pathFileName);
if (!fln.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(0, "ERROR", "Cannot open file for writting.");
QMessageBox::critical(nullptr, "ERROR", "Cannot open file for writting.");
return -3;
}
@@ -2140,7 +2152,7 @@ int PMusrWiz::writeMsrFileSingleHisto()
PInstrument *instru = fAdmin->getInstrument(fMsrData->getInstitute(), fMsrData->getInstrument());
if (instru == 0) {
QString msg = QString("No setups found for %1: %2").arg(fMsrData->getInstitute(), fMsrData->getInstrument());
QMessageBox::critical(0, "ERROR", msg);
QMessageBox::critical(nullptr, "ERROR", msg);
return -4;
}
PSetup *setup = 0;
@@ -2160,7 +2172,7 @@ int PMusrWiz::writeMsrFileSingleHisto()
}
if (setup == 0) {
QString msg = QString("No setups found for %1: %2: %3").arg(fMsrData->getInstitute(), fMsrData->getInstrument()).arg(fMsrData->getSetup());
QMessageBox::critical(0, "ERROR", msg);
QMessageBox::critical(nullptr, "ERROR", msg);
return -5;
}
int noOfDetec = setup->getNoOfLogicalDetectors();
@@ -2474,7 +2486,7 @@ int PMusrWiz::writeMsrFileAsymmetry()
QFile fln(pathFileName);
if (!fln.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(0, "ERROR", "Cannot open file for writting.");
QMessageBox::critical(nullptr, "ERROR", "Cannot open file for writting.");
return -3;
}
@@ -2541,12 +2553,12 @@ int PMusrWiz::writeMsrFileAsymmetry()
// get proper detector information from the instrument definition
PInstrument *instru = fAdmin->getInstrument(fMsrData->getInstitute(), fMsrData->getInstrument());
if (instru == 0) {
if (instru == nullptr) {
QString msg = QString("No setups found for %1: %2").arg(fMsrData->getInstitute(), fMsrData->getInstrument());
QMessageBox::critical(0, "ERROR", msg);
QMessageBox::critical(nullptr, "ERROR", msg);
return -4;
}
PSetup *setup = 0;
PSetup *setup = nullptr;
switch (fMsrData->getTypeOfMeasurement()) {
case MEASURE_ZF:
setup = instru->getZFSetup(fMsrData->getSetup());
@@ -2561,14 +2573,14 @@ int PMusrWiz::writeMsrFileAsymmetry()
default:
break;
}
if (setup == 0) {
if (setup == nullptr) {
QString msg = QString("No setups found for %1: %2: %3").arg(fMsrData->getInstitute(), fMsrData->getInstrument()).arg(fMsrData->getSetup());
QMessageBox::critical(0, "ERROR", msg);
QMessageBox::critical(nullptr, "ERROR", msg);
return -5;
}
int noOfDetec = setup->getNoOfLogicalAsymDetectors();
PDetector *detector = 0;
PDetector *detector = nullptr;
QString detectorName("");
for (int i=0; i<noOfDetec; i++) {
detector = setup->getAsymDetector(i);
@@ -2892,6 +2904,8 @@ QString PMusrWiz::getRunName(PInstrument *instru)
if (idx != -1) {
do {
count++;
if (idx+count >= runTemplate.length())
break;
} while (runTemplate[idx+count] == 'N');
}
if (count >= 4)
@@ -2932,5 +2946,5 @@ QString PMusrWiz::getRunName(PInstrument *instru)
*/
void PMusrWiz::help()
{
QMessageBox::information(0, "Help", "Eventually there will be a help here.");
QMessageBox::information(nullptr, "Help", "Eventually there will be a help here.");
}