Newer
Older
/**
* \file gui/edit_tandem_preset_dialog/edittandempresetdialog.cpp
* \date 30/9/2017
* \author Olivier Langella
* \brief edit tandem preset dialog
*/
/*******************************************************************************
* Copyright (c) 2017 Olivier Langella <olivier.langella@u-psud.fr>.
*
* This file is part of XTPcpp.
*
* XTPcpp is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* XTPcpp is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XTPcpp. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Olivier Langella <olivier.langella@u-psud.fr> - initial API and implementation
******************************************************************************/
#include "edittandempresetdialog.h"
#include <QDebug>
#include "ui_edit_tandem_preset_dialog.h"
EditTandemPresetDialog::EditTandemPresetDialog(QWidget * parent):
QDialog(parent),
ui(new Ui::EditTandemPresetView)
{
qDebug() << "EditTandemPresetDialog::EditTandemPresetDialog begin";
ui->setupUi(this);
this->setModal(true);
#if QT_VERSION >= 0x050000
// Qt5 code
#else
// Qt4 code
#endif
qDebug() << "EditTandemPresetDialog::EditTandemPresetDialog end";
}
EditTandemPresetDialog::~EditTandemPresetDialog()
{
delete ui;
if (_p_tandem_preset_file != nullptr) {
delete _p_tandem_preset_file;
}
}
void EditTandemPresetDialog::setTandemParametersFiles(const TandemParametersFile & tandem_preset_file) {
if (tandem_preset_file.exists()) {
_p_tandem_preset_file = new TandemParametersFile( tandem_preset_file);
} else {
_p_tandem_preset_file = new TandemParametersFile(":/tandem/ressources/model/QExactive_analysis_FDR_nosemi.xml");
}
_tandem_params = _p_tandem_preset_file->getTandemParameters();
void EditTandemPresetDialog::doCopy() {
ui->method_name_line_edit->setText("untitled");
readUi();
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
else {
delete _p_tandem_preset_file;
}
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file = new TandemParametersFile(QString("%1/untitled.xml").arg(default_preset_location));
}
void EditTandemPresetDialog::doSelectDir() {
try {
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
QString directory = QFileDialog::getExistingDirectory(this,tr("Choose preset directory"),default_preset_location );
if (!directory.isEmpty() && ! directory.isNull()) {
settings.setValue("path/tandemrun_preset_directory", directory);
fillPresetComboBox();
}
}
catch (pappso::PappsoException & error) {
//QMessageBox::warning(this,
// tr("Error choosing identification result files : %1").arg(error.qwhat()), error);
}
}
void EditTandemPresetDialog::doSave() {
readUi();
if (_p_tandem_preset_file == nullptr) {
throw pappso::PappsoException(QObject::tr("_p_tandem_preset_file == nullptr"));
}
_p_tandem_preset_file->setTandemParameters(_tandem_params);
}
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"));
}
else {
delete _p_tandem_preset_file;
}
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file = new TandemParametersFile(
ui->preset_combo_box->itemData(index).value<QString>());
_tandem_params = _p_tandem_preset_file->getTandemParameters();
populate();
void EditTandemPresetDialog::fillPresetComboBox() {
ui->preset_combo_box->clear();
QSettings settings;
QString default_preset_location = settings.value("path/tandemrun_preset_directory", "").toString();
QString default_preset_name = _tandem_params.getMethodName();
QDir preset_dir(default_preset_location);
QStringList filters;
filters << "*.xml";
preset_dir.setNameFilters(filters);
for (QFileInfo file_info: preset_dir.entryInfoList() ) {
ui->preset_combo_box->addItem(file_info.baseName(), QVariant(file_info.absoluteFilePath()));
}
int index = ui->preset_combo_box->findText(default_preset_name);
if ( index != -1 ) { // -1 for not found
ui->preset_combo_box->setCurrentIndex(index);
}
}
void EditTandemPresetDialog::doEdit(QString value) {
QObject *senderObj = sender();
QString senderObjName = senderObj->objectName();
qDebug() << "EditTandemPresetDialog::doEdit begin " << senderObjName << " " << value;
qDebug() << "EditTandemPresetDialog::doEdit end " << senderObjName;
}
void EditTandemPresetDialog::doHelp() {
QObject *senderObj = sender();
QString senderObjName = senderObj->objectName();
qDebug() << "EditTandemPresetDialog::doHelp begin " << senderObjName;
if(senderObjName == "parent_ion_window_unit_push_button")
{
//spmmeu.html
QFile html_doc(":/tandem/resources/html_doc/spmmeu.html");
if (html_doc.open(QFile::ReadOnly | QFile::Text)) {
QTextStream in(&html_doc);
ui->doc_plain_text_edit->setHtml(in.readAll());
qDebug() << "EditTandemPresetDialog::doHelp doc " << in.readAll();
}
else {
qDebug() << "EditTandemPresetDialog::doHelp doc not found";
}
}
qDebug() << "EditTandemPresetDialog::doHelp end " << senderObjName;
}
void EditTandemPresetDialog::readUi() {
_tandem_params.setMethodName(ui->method_name_line_edit->text());
_tandem_params.setParamLabelValue("spectrum, parent monoisotopic mass error units", ui->parent_ion_window_unit_combo_box->itemData(ui->parent_ion_window_unit_combo_box->currentIndex()).toString());
_tandem_params.setParamLabelValue("spectrum, parent monoisotopic mass error minus", ui->parent_ion_lower_window_edit->text());
_tandem_params.setParamLabelValue("spectrum, parent monoisotopic mass error plus", ui->parent_ion_upper_window_edit->text());
_tandem_params.setParamLabelValue("spectrum, parent monoisotopic mass isotope error", ui->anticipate_carbon_combo_box->itemData(ui->anticipate_carbon_combo_box->currentIndex()).toString());
}
void EditTandemPresetDialog::populate() {
ui->method_name_line_edit->setText(_tandem_params.getMethodName());
/*
* <note type="input" label="spectrum, parent monoisotopic mass error units">ppm</note>
* */
int index = ui->parent_ion_window_unit_combo_box->findText(_tandem_params.getValue("spectrum, parent monoisotopic mass error units"));
if ( index != -1 ) { // -1 for not found
ui->parent_ion_window_unit_combo_box->setCurrentIndex(index);
}
//<note type="input" label="spectrum, parent monoisotopic mass error minus">10</note>
ui->parent_ion_lower_window_edit->setText(_tandem_params.getValue("spectrum, parent monoisotopic mass error minus"));
//<note type="input" label="spectrum, parent monoisotopic mass error plus">10</note>
ui->parent_ion_upper_window_edit->setText(_tandem_params.getValue("spectrum, parent monoisotopic mass error plus"));
//<note type="input" label="spectrum, parent monoisotopic mass isotope error">yes</note>
index = ui->anticipate_carbon_combo_box->findText(_tandem_params.getValue("spectrum, parent monoisotopic mass isotope error"));
if ( index != -1 ) { // -1 for not found
ui->anticipate_carbon_combo_box->setCurrentIndex(index);
}