From 449cd24f4ef197750482ef3a90bca63a602aa41d Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Tue, 20 Feb 2018 15:59:50 +0100
Subject: [PATCH] contaminant widget files added

---
 src/CMakeLists.txt                            |  3 +
 src/gui/project_view/project_view.ui          | 14 +++--
 src/gui/project_view/projectwindow.cpp        |  9 +--
 src/gui/project_view/projectwindow.h          |  1 -
 .../contaminant_widget/contaminant_widget.ui  | 16 +++--
 .../contaminant_widget/contaminantwidget.cpp  | 52 +++++++++++++++++
 .../contaminant_widget/contaminantwidget.h    | 58 +++++++++++++++++++
 7 files changed, 132 insertions(+), 21 deletions(-)
 create mode 100644 src/gui/widgets/contaminant_widget/contaminantwidget.cpp
 create mode 100644 src/gui/widgets/contaminant_widget/contaminantwidget.h

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9bf8e93c2..7f9ef4e2d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -161,6 +161,7 @@ SET(XTPCPP_SRCS
   ./gui/tandem_run_dialog/tandemrundialog.cpp
   ./gui/waiting_message_dialog/waitingmessagedialog.cpp
   ./gui/widgets/automatic_filter_widget/automaticfilterwidget.cpp
+  ./gui/widgets/contaminant_widget/contaminantwidget.cpp
   ./gui/xic_view/xic_box/xicbox.cpp
   ./gui/xic_view/xicwindow.cpp
   ./gui/xic_view/xicworkerthread.cpp
@@ -188,6 +189,7 @@ SET (GUI_UIS
   ./gui/tandem_run_dialog/tandem_run_dialog.ui
   ./gui/waiting_message_dialog/waiting_message_dialog.ui
   ./gui/widgets/automatic_filter_widget/automatic_filter_widget.ui
+  ./gui/widgets/contaminant_widget/contaminant_widget.ui
   ./gui/xic_view/xic_box/xic_box.ui
   ./gui/xic_view/xic_window.ui
 )
@@ -221,6 +223,7 @@ SET(XTPCPP_MOC_HDRS
   ./gui/tandem_run_dialog/tandemrundialog.h
   ./gui/waiting_message_dialog/waitingmessagedialog.h
   ./gui/widgets/automatic_filter_widget/automaticfilterwidget.h
+  ./gui/widgets/contaminant_widget/contaminantwidget.h
   ./gui/xic_view/xic_box/xicbox.h
   ./gui/xic_view/xicwindow.h
   ./gui/xic_view/xicworkerthread.h
diff --git a/src/gui/project_view/project_view.ui b/src/gui/project_view/project_view.ui
index 674a4dd86..24b203fb9 100644
--- a/src/gui/project_view/project_view.ui
+++ b/src/gui/project_view/project_view.ui
@@ -51,10 +51,10 @@
         <item row="0" column="0">
          <layout class="QVBoxLayout" name="filter_parameter_tab_layout">
           <item>
-           <layout class="QVBoxLayout" name="filter_parameter_layout"/>
+           <widget class="AutomaticFilterWidget" name="filter_parameter_widget" native="true"/>
           </item>
           <item>
-           <widget class="QGroupBox" name="groupBox_4">
+           <widget class="QGroupBox" name="contaminant_groupbox">
             <property name="title">
              <string>Contaminants</string>
             </property>
@@ -80,7 +80,7 @@
                   <string>select contaminants using a regular expression</string>
                  </property>
                  <property name="text">
-                  <string>contaminant regular expression</string>
+                  <string>contaminant &amp;regular expression</string>
                  </property>
                  <attribute name="buttonGroup">
                   <string notr="true">contaminant_source_buttongroup</string>
@@ -403,6 +403,12 @@
    <header>qcustomplot.h</header>
    <container>1</container>
   </customwidget>
+  <customwidget>
+   <class>AutomaticFilterWidget</class>
+   <extends>QWidget</extends>
+   <header>gui/widgets/automatic_filter_widget/automaticfilterwidget.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections>
@@ -527,7 +533,7 @@
   <slot>doSelectContaminantSource()</slot>
  </slots>
  <buttongroups>
-  <buttongroup name="decoy_source_buttongroup"/>
   <buttongroup name="contaminant_source_buttongroup"/>
+  <buttongroup name="decoy_source_buttongroup"/>
  </buttongroups>
 </ui>
diff --git a/src/gui/project_view/projectwindow.cpp b/src/gui/project_view/projectwindow.cpp
index 870001f64..57c84718f 100644
--- a/src/gui/project_view/projectwindow.cpp
+++ b/src/gui/project_view/projectwindow.cpp
@@ -58,9 +58,6 @@ ProjectWindow::ProjectWindow(MainWindow *parent):
     ui->contaminant_database_listview->setSelectionMode(QAbstractItemView::MultiSelection);
     ui->decoy_database_listview->setSelectionMode(QAbstractItemView::MultiSelection);
 
-    _p_automatic_filter_widget = new AutomaticFilterWidget(this);
-    ui->filter_parameter_layout->addWidget(_p_automatic_filter_widget);
-
 
     _p_edit_modifications = new EditModifications(this);
     _p_edit_label_methods = new EditLabelMethods(this);
@@ -92,7 +89,7 @@ ProjectWindow::ProjectWindow(MainWindow *parent):
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
-    connect (_p_automatic_filter_widget, &AutomaticFilterWidget::automaticFilterParametersChanged, this,&ProjectWindow::doAutomaticFilterParametersChanged);
+    connect (ui->filter_parameter_widget, &AutomaticFilterWidget::automaticFilterParametersChanged, this,&ProjectWindow::doAutomaticFilterParametersChanged);
 
     connect(_p_edit_label_methods, &EditLabelMethods::accepted, this,&ProjectWindow::doAcceptedLabelingMethod);
 
@@ -125,8 +122,6 @@ ProjectWindow::~ProjectWindow()
     qDebug() << "ProjectWindow::~ProjectWindow2";
     delete _p_fasta_str_li ;
     qDebug() << "ProjectWindow::~ProjectWindow3";
-    delete _p_automatic_filter_widget;
-    qDebug() << "ProjectWindow::~ProjectWindow4";
     delete _p_edit_modifications;
     qDebug() << "ProjectWindow::~ProjectWindow5";
     delete _p_edit_label_methods ;
@@ -710,7 +705,7 @@ void ProjectWindow::setProjectSp(ProjectSp project_sp) {
 
     AutomaticFilterParameters params = _project_sp.get()->getAutomaticFilterParameters();
 
-    _p_automatic_filter_widget->setAutomaticFilterParameters(params);
+    ui->filter_parameter_widget->setAutomaticFilterParameters(params);
     //_protein_list_window->setIdentificationGroup(_project_sp.get()->getCurrentIdentificationGroupP());
     //_protein_list_window->show();
 
diff --git a/src/gui/project_view/projectwindow.h b/src/gui/project_view/projectwindow.h
index 7797aad86..119404289 100644
--- a/src/gui/project_view/projectwindow.h
+++ b/src/gui/project_view/projectwindow.h
@@ -116,7 +116,6 @@ private:
     QThread _worker_thread;
     Ui::ProjectView *ui;
     QWidget * _p_identification_widget = nullptr; 
-    AutomaticFilterWidget * _p_automatic_filter_widget = nullptr;
     MainWindow * main_window;
     std::list <ProteinListWindow *> _protein_list_window_collection;
     ProteinListWindow * _p_current_protein_list_window = nullptr;
diff --git a/src/gui/widgets/contaminant_widget/contaminant_widget.ui b/src/gui/widgets/contaminant_widget/contaminant_widget.ui
index 4b7d6a45f..dddbd5815 100644
--- a/src/gui/widgets/contaminant_widget/contaminant_widget.ui
+++ b/src/gui/widgets/contaminant_widget/contaminant_widget.ui
@@ -1,10 +1,8 @@
-<ui version="4.0" >
- <author></author>
- <comment></comment>
- <exportmacro></exportmacro>
- <class>Form</class>
- <widget class="QWidget" name="Form" >
-  <property name="geometry" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ContaminantWidget</class>
+ <widget class="QWidget" name="ContaminantWidget">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -12,10 +10,10 @@
     <height>300</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Form</string>
   </property>
  </widget>
- <pixmapfunction></pixmapfunction>
+ <resources/>
  <connections/>
 </ui>
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.cpp b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
new file mode 100644
index 000000000..61c0dd3b5
--- /dev/null
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
@@ -0,0 +1,52 @@
+/**
+ * \file gui/widgets/contaminant_widget/contaminantwidget.cpp
+ * \date 20/2/2018
+ * \author Olivier Langella
+ * \brief graphic widget to choose contaminant files or regular expression
+ */
+
+/*******************************************************************************
+* Copyright (c) 2018 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 "contaminantwidget.h"
+
+#include "ui_contaminant_widget.h"
+#include <QDebug>
+
+
+ContaminantWidget::ContaminantWidget(QWidget * parent):
+    QWidget(parent),
+    ui(new Ui::ContaminantWidget)
+{
+    qDebug() << "ContaminantWidget::ContaminantWidget begin";
+    ui->setupUi(this);
+
+    qDebug() << "ContaminantWidget::ContaminantWidget end";
+}
+
+ContaminantWidget::~ContaminantWidget()
+{
+    qDebug() << "ContaminantWidget::~ContaminantWidget";
+    delete ui;
+    qDebug() << "ContaminantWidget::~ContaminantWidget end";
+}
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.h b/src/gui/widgets/contaminant_widget/contaminantwidget.h
new file mode 100644
index 000000000..5ffe1dfc1
--- /dev/null
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.h
@@ -0,0 +1,58 @@
+/**
+ * \file gui/widgets/contaminant_widget/contaminantwidget.h
+ * \date 20/2/2018
+ * \author Olivier Langella
+ * \brief graphic widget to choose contaminant files or regular expression
+ */
+
+/*******************************************************************************
+* Copyright (c) 2018 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
+******************************************************************************/
+
+
+#ifndef CONTAMINANTWIDGET_H
+#define CONTAMINANTWIDGET_H
+
+#include <QWidget>
+
+
+namespace Ui {
+class ContaminantWidget;
+}
+
+class ContaminantWidget : public QWidget
+{
+    Q_OBJECT
+
+public:
+    explicit ContaminantWidget(QWidget * parent);
+    ~ContaminantWidget();
+
+public slots:
+
+signals:
+
+private:
+    Ui::ContaminantWidget *ui;
+
+};
+
+#endif // CONTAMINANTWIDGET_H
-- 
GitLab