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 (_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")
{
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
html_doc.setFileName(":/tandem/resources/html_doc/spmmeu.html");
}
if(senderObjName == "smpc_push_button")
{
//spmmeu.html
html_doc.setFileName(":/tandem/resources/html_doc/smpc.html");
}
if(senderObjName == "spmmem_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/spmmem.html");
}
if(senderObjName == "spmmep_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/spmmep.html");
}
if(senderObjName == "spmmie_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/spmmie.html");
}
if(senderObjName == "sfmt_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/sfmt.html");
}
if(senderObjName == "sfmmeu_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/sfmmeu.html");
}
if(senderObjName == "sfmme_push_button")
{
html_doc.setFileName(":/tandem/resources/html_doc/sfmme.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() {
try {
_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->currentText());
_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->currentText());
_tandem_params.setParamLabelValue("spectrum, maximum parent charge", ui->smpc_edit->text());
_tandem_params.setParamLabelValue("spectrum, fragment mass type", ui->sfmt_combo_box->currentText());
_tandem_params.setParamLabelValue("spectrum, fragment monoisotopic mass error units", ui->sfmmeu_combo_box->currentText());
_tandem_params.setParamLabelValue("spectrum, fragment monoisotopic mass error", ui->sfmme_edit->text());
}
catch (pappso::PappsoException & error) {
QMessageBox::warning(this,tr("Error in parameters :"), error.qwhat());
}
}
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);
}
else {
qDebug() << "EditTandemPresetDialog::populate " << 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);
}
//<note type="input" label="spectrum, maximum parent charge">4</note>
ui->smpc_edit->setText(_tandem_params.getValue("spectrum, maximum parent charge"));
//<note type="input" label="spectrum, fragment mass type">monoisotopic</note>
index = ui->sfmt_combo_box->findText("monoisotopic");
if ( index != -1 ) { // -1 for not found
ui->sfmt_combo_box->setCurrentIndex(index);
}
//<note type="input" label="spectrum, fragment monoisotopic mass error units">Daltons</note>
index = ui->sfmmeu_combo_box->findText(_tandem_params.getValue("spectrum, fragment monoisotopic mass error units"));
if ( index != -1 ) { // -1 for not found
ui->sfmmeu_combo_box->setCurrentIndex(index);
}
//<note type="input" label="spectrum, fragment monoisotopic mass error">0.02</note>
ui->sfmme_edit->setText(_tandem_params.getValue("spectrum, fragment monoisotopic mass error"));