From 2e4a64c3f2d7d462ff7a866b0c61be6c9827ac48 Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Mon, 15 Jan 2018 11:34:48 +0100
Subject: [PATCH] dont't export compar sheets in individual mode

---
 .../exportspreadsheetdialog.cpp               | 22 +++++++--
 .../exportspreadsheetdialog.h                 |  6 +--
 src/gui/mainwindow.cpp                        |  6 +--
 src/output/ods/odsexport.cpp                  | 49 ++++++++++---------
 4 files changed, 46 insertions(+), 37 deletions(-)

diff --git a/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.cpp b/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.cpp
index 6e8b8ab7..27bd6725 100644
--- a/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.cpp
+++ b/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.cpp
@@ -42,6 +42,7 @@ ExportSpreadsheetDialog::ExportSpreadsheetDialog(QWidget * parent):
     if (settings.value("export_ods/groups", "true").toBool()) {
         ui->groups_checkbox->setCheckState(Qt::Checked);
     }
+    ui->simple_checkbox->setVisible(false);
     ui->simple_checkbox->setCheckState(Qt::Unchecked);
     if (settings.value("export_ods/simple", "false").toBool()) {
         ui->simple_checkbox->setCheckState(Qt::Checked);
@@ -192,9 +193,20 @@ void ExportSpreadsheetDialog::doPtmIslands(bool simple) {
     settings.setValue("export_ods/ptmislands", QString("%1").arg(simple));
 }
 
-void ExportSpreadsheetDialog::disablePtm() {
-    ui->ptm_groupbox->setDisabled(true);
-}
-void ExportSpreadsheetDialog::enablePtm() {
-    ui->ptm_groupbox->setEnabled(true);
+void ExportSpreadsheetDialog::setProject(const Project * p_project) {
+
+    if (p_project->getProjectMode() == ProjectMode::individual) {
+        ui->compar_groupbox->setDisabled(true);
+    }
+    else {
+        ui->compar_groupbox->setDisabled(false);
+    }
+
+    if (p_project->hasPtmExperiment()) {
+        ui->ptm_groupbox->setEnabled(true);
+    }
+    else {
+        ui->ptm_groupbox->setEnabled(false);
+    }
+
 }
diff --git a/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.h b/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.h
index 0c11f1bf..ace613ec 100644
--- a/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.h
+++ b/src/gui/export_spreadsheet_dialog/exportspreadsheetdialog.h
@@ -27,14 +27,13 @@
 #include <QDialog>
 #include <QStringListModel>
 #include "../project_view/automatic_filter_widget/automaticfilterwidget.h"
+#include "../../core/project.h"
 
 
 namespace Ui {
 class ExportSpreadsheetDialog;
 }
 
-class ProjectWindow;
-
 class ExportSpreadsheetDialog : public QDialog
 {
     Q_OBJECT
@@ -43,8 +42,7 @@ public:
     explicit ExportSpreadsheetDialog(QWidget * parent);
     ~ExportSpreadsheetDialog();
 
-    void disablePtm();
-    void enablePtm();
+    void setProject(const Project * p_project);
 
 public slots:
     void doSimpleProteinPeptideList(bool simple);
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 8aa49dd5..53872b17 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -341,12 +341,8 @@ void MainWindow::doActionSaveProject() {
 void MainWindow::doActionSpreadsheet() {
     qDebug() << "MainWindow::doActionSpreadsheet begin";
     try {
-
-        _p_export_spreadsheet_dialog->disablePtm();
         if (_project_sp.get() != nullptr) {
-            if (_project_sp.get()->hasPtmExperiment()) {
-                _p_export_spreadsheet_dialog->enablePtm();
-            }
+            _p_export_spreadsheet_dialog->setProject(_project_sp.get());
         }
         _p_export_spreadsheet_dialog->show();
         _p_export_spreadsheet_dialog->raise();
diff --git a/src/output/ods/odsexport.cpp b/src/output/ods/odsexport.cpp
index 6ebc5e4e..2a60d19b 100644
--- a/src/output/ods/odsexport.cpp
+++ b/src/output/ods/odsexport.cpp
@@ -87,29 +87,32 @@ void OdsExport::write(CalcWriterInterface * p_writer, WorkMonitorInterface * p_m
         p_monitor->message(QObject::tr("writing peptide and positions on proteins"));
         PeptidePosSheet(this, p_writer, _p_project);
     }
-    if (settings.value("export_ods/comparspectra", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing spectra comparisons"));
-        ComparSpectraSheet(this, p_writer, _p_project).writeSheet();
-    }
-    if (settings.value("export_ods/comparspecificspectra", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing specific spectra comparisons"));
-        ComparSpecificSpectraSheet(this, p_writer, _p_project).writeSheet();
-    }
-    if (settings.value("export_ods/comparuniquesequence", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing unique sequence comparisons"));
-        ComparSequenceSheet(this, p_writer, _p_project).writeSheet();
-    }
-    if (settings.value("export_ods/comparspecificuniquesequence", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing specific unique sequence comparisons"));
-        ComparSpecificSequenceSheet(this, p_writer, _p_project).writeSheet();
-    }
-    if (settings.value("export_ods/comparpai", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing PAI comparisons"));
-        ComparPaiSheet(this, p_writer, _p_project).writeSheet();
-    }
-    if (settings.value("export_ods/comparempai", "true").toBool()) {
-        p_monitor->message(QObject::tr("writing emPAI comparisons"));
-        ComparEmpaiSheet(this, p_writer, _p_project).writeSheet();
+    if (_p_project->getProjectMode() != ProjectMode::individual) {
+        //export compar sheets not possible in individual mode
+        if (settings.value("export_ods/comparspectra", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing spectra comparisons"));
+            ComparSpectraSheet(this, p_writer, _p_project).writeSheet();
+        }
+        if (settings.value("export_ods/comparspecificspectra", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing specific spectra comparisons"));
+            ComparSpecificSpectraSheet(this, p_writer, _p_project).writeSheet();
+        }
+        if (settings.value("export_ods/comparuniquesequence", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing unique sequence comparisons"));
+            ComparSequenceSheet(this, p_writer, _p_project).writeSheet();
+        }
+        if (settings.value("export_ods/comparspecificuniquesequence", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing specific unique sequence comparisons"));
+            ComparSpecificSequenceSheet(this, p_writer, _p_project).writeSheet();
+        }
+        if (settings.value("export_ods/comparpai", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing PAI comparisons"));
+            ComparPaiSheet(this, p_writer, _p_project).writeSheet();
+        }
+        if (settings.value("export_ods/comparempai", "true").toBool()) {
+            p_monitor->message(QObject::tr("writing emPAI comparisons"));
+            ComparEmpaiSheet(this, p_writer, _p_project).writeSheet();
+        }
     }
     if (settings.value("export_ods/samples", "true").toBool()) {
         p_monitor->message(QObject::tr("writing samples"));
-- 
GitLab