From bd4b8dffea5419687041ae44647910f22d54e7ee Mon Sep 17 00:00:00 2001
From: Olivier Langella <Olivier.Langella@moulon.inra.fr>
Date: Thu, 21 Sep 2017 10:14:40 +0200
Subject: [PATCH] WIP: using tandem parameters files in tandem run dialog

---
 src/core/tandem_run/tandemparameters.cpp      |  9 ++++++++-
 src/core/tandem_run/tandemparameters.h        |  1 +
 src/files/tandemparametersfile.cpp            |  4 ++++
 src/files/tandemparametersfile.h              |  4 ++++
 src/gui/tandem_run_dialog/tandemrundialog.cpp | 11 +++++++++++
 5 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/core/tandem_run/tandemparameters.cpp b/src/core/tandem_run/tandemparameters.cpp
index c744bdc4..ad431175 100644
--- a/src/core/tandem_run/tandemparameters.cpp
+++ b/src/core/tandem_run/tandemparameters.cpp
@@ -29,6 +29,7 @@
 
 #include "tandemparameters.h"
 #include <QDebug>
+#include <pappsomspp/exception/exceptionnotfound.h>
 
 TandemParameters::TandemParameters() {
 }
@@ -51,7 +52,13 @@ TandemParameters::TandemParameters(const TandemParameters & other) {
 const QString TandemParameters::getLabelCategory(const QString & value) const {
     return value.split(", ").at(0);
 }
-
+const QString & TandemParameters::getValue(const QString & label) const {
+    QMap<QString,QString>::const_iterator it = _map_label_value.constFind(label);
+    if (it == _map_label_value.end()) {
+        throw pappso::ExceptionNotFound(QObject::tr("X!Tandem preset label %1 not found in method %2").arg(label).arg(_method_name)); 
+    }
+    return it.value();
+}
 void TandemParameters::setParamLabelValue(const QString & label, const QString & value) {
     //list path
     //<note type="input" label="list path, default parameters">/gorgone/pappso/tmp/temp_condor_job24872841484824316495370334631825647/QExactive_analysis_FDR_nosemi.xml</note>
diff --git a/src/core/tandem_run/tandemparameters.h b/src/core/tandem_run/tandemparameters.h
index 5da27ecc..d96065fc 100644
--- a/src/core/tandem_run/tandemparameters.h
+++ b/src/core/tandem_run/tandemparameters.h
@@ -40,6 +40,7 @@ public:
     TandemParameters(const TandemParameters & other);
     virtual ~TandemParameters();
 
+    const QString & getValue(const QString & label) const;
     void setMethodName(const QString & method);
     void setParamLabelValue(const QString & label, const QString & value);
     const QMap<QString, QString> & getMapLabelValue() const;
diff --git a/src/files/tandemparametersfile.cpp b/src/files/tandemparametersfile.cpp
index fdcb1016..84b2cefd 100644
--- a/src/files/tandemparametersfile.cpp
+++ b/src/files/tandemparametersfile.cpp
@@ -33,6 +33,10 @@
 #include <pappsomspp/pappsoexception.h>
 #include "../input/xtandemparamsaxhandler.h"
 
+TandemParametersFile::TandemParametersFile() 
+{
+    qDebug() << "TandemParametersFile::TandemParametersFile no source";
+}
 TandemParametersFile::TandemParametersFile(const QString & fasta_source) : _param_source(fasta_source)
 {
     qDebug() << "TandemParametersFile::TandemParametersFile "<< fasta_source;
diff --git a/src/files/tandemparametersfile.h b/src/files/tandemparametersfile.h
index cd58ee67..a7d6d956 100644
--- a/src/files/tandemparametersfile.h
+++ b/src/files/tandemparametersfile.h
@@ -36,8 +36,10 @@
 
 class TandemParametersFile
 {
+    
 public:
     TandemParametersFile(const QString & param_file);
+    TandemParametersFile();
     TandemParametersFile(const QFileInfo & param_file);
     TandemParametersFile(const TandemParametersFile & other);
     ~TandemParametersFile();
@@ -61,4 +63,6 @@ private :
     const QFileInfo _param_source;
 
 };
+
+Q_DECLARE_METATYPE(TandemParametersFile)
 #endif // TANDEMPARAMETERSFILE_H
diff --git a/src/gui/tandem_run_dialog/tandemrundialog.cpp b/src/gui/tandem_run_dialog/tandemrundialog.cpp
index 6d8819d7..0ad3a880 100644
--- a/src/gui/tandem_run_dialog/tandemrundialog.cpp
+++ b/src/gui/tandem_run_dialog/tandemrundialog.cpp
@@ -34,6 +34,7 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <pappsomspp/pappsoexception.h>
+#include "../../files/tandemparametersfile.h"
 
 //Q_DECLARE_METATYPE(QFileInfo)
 
@@ -69,6 +70,16 @@ TandemRunDialog::~TandemRunDialog()
 void TandemRunDialog::setPresetName(QString preset_name) {
     QSettings settings;
     settings.setValue("tandem/preset_name", preset_name);
+    
+    
+    //get presets :
+    
+    TandemParametersFile param_file = ui->preset_combobox->itemData(ui->preset_combobox->currentIndex()).data(Qt::UserRole).value<TandemParametersFile>();
+    
+    param_file.getTandemParameters().getValue("spectrum, threads");
+
+    
+    
 }
 void TandemRunDialog::fillPresetComboBox() {
     ui->preset_combobox->clear();
-- 
GitLab