From 047e48d86c29d34d03bc3e308b5baa46c3a6aaeb Mon Sep 17 00:00:00 2001
From: Olivier Langella <Olivier.Langella@moulon.inra.fr>
Date: Mon, 3 Apr 2017 22:16:31 +0200
Subject: [PATCH] new identification widget

---
 src/CMakeLists.txt                            |  7 +-
 src/core/project.cpp                          |  3 +
 src/core/project.h                            |  1 +
 src/gui/peptide_detail_view/peptidewindow.cpp | 10 ++-
 src/gui/project_view/project_view.ui          | 72 +------------------
 src/gui/project_view/projectwindow.cpp        | 19 +++--
 6 files changed, 30 insertions(+), 82 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a40d8a47c..d8e0bb75f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -29,8 +29,8 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5
 
 #sudo apt-get install libpappsomspp-dev
 #FIND_PACKAGE( Pappsomspp REQUIRED )
-# SET (PAPPSOMSPP_DIR  "/home/olivier/eclipse/git/pappsomspp")
- SET (PAPPSOMSPP_DIR  "/home/langella/developpement/git/pappsomspp")
+ SET (PAPPSOMSPP_DIR  "/home/olivier/eclipse/git/pappsomspp")
+# SET (PAPPSOMSPP_DIR  "/home/langella/developpement/git/pappsomspp")
  SET (PAPPSOMSPP_INCLUDE_DIR "${PAPPSOMSPP_DIR}/src")
  SET (PAPPSOMSPP_QT4_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/libpappsomspp-qt4.so")
 
@@ -87,6 +87,7 @@ SET(XTPCPP_SRCS
   ./gui/peptide_list_view/peptidelistwindow.cpp
   ./gui/peptide_list_view/peptidetablemodel.cpp
   ./gui/peptide_list_view/peptidetableproxymodel.cpp
+  ./gui/project_view/identification_group_widget/identificationgroupwidget.cpp
   ./gui/project_view/projectwindow.cpp
   ./gui/protein_view/proteinwindow.cpp
   ./gui/protein_list_view/proteinlistwindow.cpp
@@ -98,6 +99,7 @@ SET (GUI_UIS
   ./gui/main.ui
   ./gui/peptide_detail_view/peptide_detail_view.ui
   ./gui/peptide_list_view/peptide_view.ui
+  ./gui/project_view/identification_group_widget/identification_group_widget.ui
   ./gui/project_view/project_view.ui
   ./gui/protein_list_view/protein_view.ui
   ./gui/protein_view/protein_detail_view.ui
@@ -111,6 +113,7 @@ SET(XTPCPP_MOC_HDRS
   ./gui/peptide_list_view/peptidelistwindow.h
   ./gui/peptide_list_view/peptidetablemodel.h
   ./gui/peptide_list_view/peptidetableproxymodel.h
+  ./gui/project_view/identification_group_widget/identificationgroupwidget.h
   ./gui/project_view/projectwindow.h
   ./gui/protein_list_view/proteinlistwindow.h
   ./gui/protein_list_view/proteintablemodel.h
diff --git a/src/core/project.cpp b/src/core/project.cpp
index ff0b7c75b..6139b6d20 100644
--- a/src/core/project.cpp
+++ b/src/core/project.cpp
@@ -38,6 +38,9 @@ Project::~Project()
         it++;
     }
 }
+std::vector<IdentificationGroup *> Project::getIdentificationGroupList() {
+    return _identification_goup_list;
+}
 const GroupingType Project::getGroupingType() const {
   return _grouping_type;
 }
diff --git a/src/core/project.h b/src/core/project.h
index 5f64afb93..880ac3e38 100644
--- a/src/core/project.h
+++ b/src/core/project.h
@@ -57,6 +57,7 @@ public:
     
     const GroupingType getGroupingType() const;
  
+    std::vector<IdentificationGroup *> getIdentificationGroupList();
 
 private :
     std::vector<IdentificationGroup *> _identification_goup_list;
diff --git a/src/gui/peptide_detail_view/peptidewindow.cpp b/src/gui/peptide_detail_view/peptidewindow.cpp
index 7ea01378c..63d794727 100644
--- a/src/gui/peptide_detail_view/peptidewindow.cpp
+++ b/src/gui/peptide_detail_view/peptidewindow.cpp
@@ -136,10 +136,11 @@ void PeptideWindow::chooseDefaultMzDataDir() {
     if (filename.isEmpty()) {
         return;
     }
-    QString path = QFileInfo(filename).absolutePath();
+    QString path = QFileInfo(filename).absoluteFilePath();
     settings.setValue("path/mzdatadir", path);
     ui->mz_data_dir_label->setText(path);
-
+    emit loadSpectrumSp(_p_peptide_match);
+    ui->statusbar->showMessage(tr("loading spectrum"));
 }
 
 
@@ -147,6 +148,8 @@ void PeptideWindow::doSpectrumSpReady(SpectrumSp spectrum_sp, QString error) {
     qDebug() << "PeptideWindow::doSpectrumSpReady begin";
     if (!error.isEmpty()) {
         //not found
+        
+        ui->statusbar->showMessage(tr("spectrum not found"));
         QSettings settings;
         QString path = settings.value("path/mzdatadir", "").toString();
 
@@ -156,11 +159,13 @@ void PeptideWindow::doSpectrumSpReady(SpectrumSp spectrum_sp, QString error) {
         ui->spectrumWidget->setVisible(false);
     }
     else {
+        ui->statusbar->showMessage(tr(""));
         pappso::QualifiedSpectrum spectrum_copy;
         spectrum_copy.setPrecursorCharge(_p_peptide_match->getCharge());
         spectrum_copy.setOriginalSpectrumSp(spectrum_sp);
 
         ui->spectrumWidget->setQualifiedSpectrum(spectrum_copy);
+        ui->file_not_found->setVisible(false);
         ui->spectrumWidget->setVisible(true);
     }
     qDebug() << "PeptideWindow::doSpectrumSpReady end";
@@ -173,6 +178,7 @@ void PeptideWindow::setPeptideMatch(PeptideMatch * p_peptide_match) {
 
     qDebug() << "PeptideWindow::setPeptideMatch emit loadSpectrumSp(_p_peptide_match)";
     emit loadSpectrumSp(_p_peptide_match);
+    ui->statusbar->showMessage(tr("loading spectrum"));
 
     pappso::PeptideSp peptide = _p_peptide_match->getPeptideXtpSp();
     ui->spectrumWidget->setPrecision(_p_precision);
diff --git a/src/gui/project_view/project_view.ui b/src/gui/project_view/project_view.ui
index e9e2a5661..2c663259c 100644
--- a/src/gui/project_view/project_view.ui
+++ b/src/gui/project_view/project_view.ui
@@ -29,77 +29,7 @@
        </attribute>
        <layout class="QGridLayout" name="gridLayout">
         <item row="0" column="0">
-         <layout class="QFormLayout" name="formLayout_1">
-          <item row="0" column="0">
-           <widget class="QPushButton" name="viewProteinListButton">
-            <property name="toolTip">
-             <string>press ctrl to open a new window</string>
-            </property>
-            <property name="text">
-             <string>View protein list</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="sample_number_label">
-            <property name="text">
-             <string>Number of samples</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="group_number_label">
-            <property name="text">
-             <string>Number of groups</string>
-            </property>
-           </widget>
-          </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="subgroup_number_label">
-            <property name="text">
-             <string>Number of subgroups</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="QLabel" name="sample_number_display">
-            <property name="text">
-             <string>0</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="1">
-           <widget class="QLabel" name="group_number_display">
-            <property name="text">
-             <string>0</string>
-            </property>
-           </widget>
-          </item>
-          <item row="3" column="1">
-           <widget class="QLabel" name="subgroup_number_display">
-            <property name="text">
-             <string>0</string>
-            </property>
-           </widget>
-          </item>
-          <item row="4" column="0">
-           <widget class="QLabel" name="label_2">
-            <property name="text">
-             <string>Number of grouped proteins</string>
-            </property>
-           </widget>
-          </item>
-          <item row="4" column="1">
-           <widget class="QLabel" name="protein_number_display">
-            <property name="text">
-             <string>0</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
+         <layout class="QGridLayout" name="identifications_layout"/>
         </item>
        </layout>
       </widget>
diff --git a/src/gui/project_view/projectwindow.cpp b/src/gui/project_view/projectwindow.cpp
index f631bb829..944804971 100644
--- a/src/gui/project_view/projectwindow.cpp
+++ b/src/gui/project_view/projectwindow.cpp
@@ -26,8 +26,10 @@
 #include "../mainwindow.h"
 #include "gui/peptide_list_view/peptidelistwindow.h"
 #include "gui/protein_list_view/proteinlistwindow.h"
+#include "gui/project_view/identification_group_widget/identificationgroupwidget.h"
 #include <QDebug>
 #include <QApplication>
+#include <QGridLayout>
 #include <QMessageBox>
 #include <pappsomspp/pappsoexception.h>
 
@@ -49,7 +51,6 @@ ProjectWindow::ProjectWindow(MainWindow *parent):
 #else
 // Qt4 code
     //connect (_protein_list_window, SIGNAL(proteinMatchClicked(ProteinMatch *)), this //,SLOT(doProteinMatchClicked(ProteinMatch *)));
-    connect (ui->viewProteinListButton, SIGNAL(clicked()), this ,SLOT(doViewProteinList()));
 
 #endif
     /*
@@ -116,12 +117,6 @@ void ProjectWindow::refreshGroup(IdentificationGroup * p_ident_group) {
     }
     else {
         try {
-            vector< pappso::MsRunIdSp > ms_run_list = p_ident_group->getMsRunIdSpList();
-            ui->sample_number_display->setText(QString("%1").arg(ms_run_list.size()));
-
-            ui->group_number_display->setText(QString("%1").arg(p_ident_group->countGroup()));
-            ui->subgroup_number_display->setText(QString("%1").arg(p_ident_group->countSubGroup()));
-            ui->protein_number_display->setText(QString("%1").arg(p_ident_group->countGrouped()));
             emit identificationGroupGrouped(p_ident_group);
         }
         catch (pappso::PappsoException exception_pappso) {
@@ -266,6 +261,16 @@ void ProjectWindow::setProjectSp(ProjectSp project_sp) {
     _p_current_peptide_detail_window = nullptr;
 
     _project_sp = project_sp;
+    
+    std::vector<IdentificationGroup *> identification_list = _project_sp.get()->getIdentificationGroupList();
+    qDebug() << " ProjectWindow::setProjectSp size=" << identification_list.size();
+    if (identification_list.size() == 1) {
+        
+        IdentificationGroupWidget * identification_widget = new IdentificationGroupWidget(this,identification_list[0]);
+        ui->identifications_layout->addWidget(identification_widget);
+    }
+    else {
+    }
     refreshGroup(_project_sp.get()->getCurrentIdentificationGroupP());
     //_protein_list_window->setIdentificationGroup(_project_sp.get()->getCurrentIdentificationGroupP());
     //_protein_list_window->show();
-- 
GitLab