Skip to content
Snippets Groups Projects
Commit e5500200 authored by Langella Olivier's avatar Langella Olivier
Browse files

improve tandem form

parent c9ca23fb
No related branches found
No related tags found
No related merge requests found
......@@ -67,6 +67,10 @@ bool TandemParametersFile::exists() const
{
return _param_source.exists();
}
void TandemParametersFile::setDirectory(const QDir & directory) {
QFileInfo new_dir(QString("%1/%2").arg(directory.absolutePath()).arg(_param_source.fileName()));
_param_source = new_dir;
}
void TandemParametersFile::setTandemParameters(const TandemParameters & parameters) {
......@@ -110,20 +114,21 @@ TandemParameters TandemParametersFile::getTandemParameters() const {
QXmlInputSource xmlInputSource(&qfile);
if (simplereader.parse(xmlInputSource)) {
qDebug() << "TandemParametersFile::getTandemParameters parse ok";
qfile.close();
delete parser;
} else {
qDebug() << "TandemParametersFile::getTandemParameters parse error";
qfile.close();
delete parser;
throw pappso::PappsoException(QObject::tr("Error reading %1 X!Tandem preset file :\n %2").arg(_param_source.absoluteFilePath()).arg(parser->errorString()));
delete parser;
}
delete parser;
return parameters;
}
bool TandemParametersFile::isTandemPresetFile() {
bool TandemParametersFile::isTandemPresetFile() const {
if (this->exists()) {
......
......@@ -61,6 +61,10 @@ public:
*/
void setTandemParameters(const TandemParameters & parameters);
/** @brief set param file directory
*/
void setDirectory(const QDir & directory);
private :
void writeXmlParametersFile (QXmlStreamWriter * p_out, const TandemParameters & parameters) const;
......
......@@ -70,13 +70,15 @@ void EditTandemPresetDialog::setTandemParametersFile(const TandemParametersFile
if (tandem_preset_file.exists()) {
_p_tandem_preset_file = new TandemParametersFile( tandem_preset_file);
_preset_directory = _p_tandem_preset_file->getAbsoluteDir().absolutePath();
_tandem_params = _p_tandem_preset_file->getTandemParameters();
} else {
_p_tandem_preset_file = new TandemParametersFile(":/tandem/ressources/model/QExactive_analysis_FDR_nosemi.xml");
_p_tandem_preset_file = new TandemParametersFile(":/tandem/resources/model/QExactive_analysis_FDR_nosemi.xml");
_tandem_params = _p_tandem_preset_file->getTandemParameters();
QSettings settings;
_preset_directory = settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file->setDirectory(QDir(_preset_directory));
}
_tandem_params = _p_tandem_preset_file->getTandemParameters();
fillPresetComboBox();
populate();
......@@ -118,6 +120,7 @@ void EditTandemPresetDialog::doSave() {
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
_p_tandem_preset_file->setDirectory(QDir(_preset_directory));
_p_tandem_preset_file->setTandemParameters(_tandem_params);
fillPresetComboBox();
populate();
......@@ -126,17 +129,23 @@ void EditTandemPresetDialog::doSave() {
void EditTandemPresetDialog::doLoad() {
int index = ui->preset_combo_box->currentIndex();
if ( index != -1 ) { // -1 for not found
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
TandemParametersFile * p_tandem_preset_file = new TandemParametersFile(
ui->preset_combo_box->itemData(index).value<QString>());
if (p_tandem_preset_file->isTandemPresetFile()) {
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
else {
delete _p_tandem_preset_file;
}
_p_tandem_preset_file = p_tandem_preset_file;
_tandem_params = _p_tandem_preset_file->getTandemParameters();
populate();
}
else {
delete _p_tandem_preset_file;
QMessageBox::warning(this,tr("Error :"), tr("%1 is not an X!Tandem parameter file").arg(p_tandem_preset_file->getAbsoluteFilePath()));
}
_p_tandem_preset_file = new TandemParametersFile(
ui->preset_combo_box->itemData(index).value<QString>());
_tandem_params = _p_tandem_preset_file->getTandemParameters();
populate();
}
}
const TandemParametersFile & EditTandemPresetDialog::getTandemParametersFile() const {
......@@ -972,6 +981,11 @@ void EditTandemPresetDialog::done(int r)
if(QDialog::Accepted == r) // ok was pressed
{
readUi();
if (!_p_tandem_preset_file->exists()) {
QMessageBox::warning(this,
tr("Save parameters"), tr("Parameters file does not exists.\nPlease save it before pressing ok or cancel edition"));
return;
}
TandemParameters ref_params = _p_tandem_preset_file->getTandemParameters();
if(ref_params.equals(_tandem_params)) // validate the data somehow
{
......
......@@ -104,7 +104,10 @@ void TandemRunDialog::fillPresetComboBox() {
filters << "*.xml";
preset_dir.setNameFilters(filters);
for (QFileInfo file_info: preset_dir.entryInfoList() ) {
ui->preset_combobox->addItem(file_info.baseName(), QVariant(file_info.absoluteFilePath()));
TandemParametersFile param_file(file_info.absoluteFilePath());
if (param_file.isTandemPresetFile()) {
ui->preset_combobox->addItem(file_info.baseName(), QVariant(file_info.absoluteFilePath()));
}
}
int index = ui->preset_combobox->findText(default_preset_name);
if ( index != -1 ) { // -1 for not found
......
......@@ -29,6 +29,7 @@
#include "xtandemparamsaxhandler.h"
#include <pappsomspp/pappsoexception.h>
#include <QDebug>
XtandemParamSaxHandler::XtandemParamSaxHandler(TandemParameters * p_tandem_parameters) {
......@@ -51,6 +52,13 @@ bool XtandemParamSaxHandler::startElement(const QString & namespaceURI, const QS
bool is_ok = true;
try {
//<bioml label="example api document">
if (_tag_stack.size() == 1) {
if (qName != "bioml") {
_errorStr = QObject::tr("ERROR in XtandemParamSaxHandler::startElement root tag %1 is not <bioml>").arg(qName);
return false;
}
}
//startElement_group
if (qName == "note") {
......@@ -102,7 +110,7 @@ bool XtandemParamSaxHandler::error(const QXmlParseException &exception) {
_errorStr = QObject::tr("Parse error at line %1, column %2 :\n"
"%3").arg(exception.lineNumber()).arg(exception.columnNumber()).arg(
exception.message());
qDebug() << "XtandemParamSaxHandler::error " << _errorStr;
return false;
}
......@@ -111,6 +119,7 @@ bool XtandemParamSaxHandler::fatalError(const QXmlParseException &exception) {
_errorStr = QObject::tr("Parse error at line %1, column %2 :\n"
"%3").arg(exception.lineNumber()).arg(exception.columnNumber()).arg(
exception.message());
qDebug() << "XtandemParamSaxHandler::fatalError " << _errorStr;
return false;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment