From f70f0d573d3380e6c1c6ff311c4736b433c76a08 Mon Sep 17 00:00:00 2001
From: Olivier Langella <Olivier.Langella@moulon.inra.fr>
Date: Sat, 10 Jun 2017 12:52:25 +0200
Subject: [PATCH] good settings

---
 .../waiting_message_dialog/waitingmessagedialog.cpp |  2 ++
 src/gui/workerthread.cpp                            | 13 ++++++++++++-
 src/utils/workmonitor.cpp                           |  9 +++++++--
 src/utils/workmonitor.h                             |  5 +++--
 4 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/gui/waiting_message_dialog/waitingmessagedialog.cpp b/src/gui/waiting_message_dialog/waitingmessagedialog.cpp
index 146785f5f..87c1a57e7 100644
--- a/src/gui/waiting_message_dialog/waitingmessagedialog.cpp
+++ b/src/gui/waiting_message_dialog/waitingmessagedialog.cpp
@@ -57,6 +57,8 @@ WaitingMessageDialog::~WaitingMessageDialog()
 }
 
 void WaitingMessageDialog::message(const QString & message) {
+    
+    ui->progress_bar->setVisible(false);
     ui->message_label->setText(message);
 }
 
diff --git a/src/gui/workerthread.cpp b/src/gui/workerthread.cpp
index 8e179cd42..663669196 100644
--- a/src/gui/workerthread.cpp
+++ b/src/gui/workerthread.cpp
@@ -87,11 +87,19 @@ WorkerThread::WorkerThread(MainWindow * p_main_window)
 WorkerThread::WorkerThread(ProjectWindow * p_project_window)
 {
     qDebug() << "WorkerThread::WorkerThread begin ProjectWindow";
+       
+    _p_work_monitor = new WorkMonitor();
+
 #if QT_VERSION >= 0x050000
     // Qt5 code
 #else
 // Qt4 code
     qDebug() << "WorkerThread::WorkerThread Qt4 code";
+    
+        //worker message 
+    connect(_p_work_monitor, SIGNAL(workerMessage(QString)), p_project_window,SLOT(doDisplayLoadingMessage(QString)));
+    connect(_p_work_monitor, SIGNAL(workerMessage(QString, int)), p_project_window,SLOT(doDisplayLoadingMessage(QString, int)));
+
     connect(this, SIGNAL(loadingMessage(QString)), p_project_window,SLOT(doDisplayLoadingMessage(QString)));
     //grouping
     connect(p_project_window, SIGNAL(operateGrouping(ProjectSp)), this,SLOT(doGrouping(ProjectSp)));
@@ -259,9 +267,12 @@ void WorkerThread::doLoadingResults(bool is_individual, AutomaticFilterParameter
         ProjectSp project_sp = Project().makeProjectSp();
         project_sp.get()->setCombineMode(!is_individual);
 
+        _p_work_monitor->setProgressMaximumValue(file_list.size());
+        int i=0;
         for (QString filename : file_list) {
-            emit loadingMessage(tr("loading result file %1").arg(filename));
+            _p_work_monitor->message(tr("loading result file %1 (%2 on %3)").arg(filename).arg(i).arg(file_list.size()), i);
             project_sp.get()->readResultFile(filename);
+            i++;
         }
 
         emit loadingMessage(tr("filtering proteins"));
diff --git a/src/utils/workmonitor.cpp b/src/utils/workmonitor.cpp
index 2c3b80da5..366de85a8 100644
--- a/src/utils/workmonitor.cpp
+++ b/src/utils/workmonitor.cpp
@@ -31,6 +31,10 @@
 #include "workmonitor.h"
 #include <QDebug>
 
+WorkMonitor::WorkMonitor() {
+    _max_value = 100;
+    _timer_duration = 200;
+}
 void WorkMonitor::message(const QString & message) {
     if (_time.elapsed() > _timer_duration) {
         _time.currentTime();
@@ -38,9 +42,10 @@ void WorkMonitor::message(const QString & message) {
     }
 }
 void WorkMonitor::message(const QString & message, int value) {
-    qDebug() << "WorkMonitor::message " << value << " " << _max_value << " " << (value/_max_value)*100;
-    int percent = ((float)value/(float)_max_value)*(float)100;
+    //qDebug() << "WorkMonitor::message " << value << " " << _max_value << " " << (value/_max_value)*100;
     if (_time.elapsed() > _timer_duration) {
+        int percent = ((float)value/(float)_max_value)*(float)100;
+
         _time.restart();
         emit workerMessage(message,percent);
     }
diff --git a/src/utils/workmonitor.h b/src/utils/workmonitor.h
index 9442cebb9..7455825e0 100644
--- a/src/utils/workmonitor.h
+++ b/src/utils/workmonitor.h
@@ -46,6 +46,7 @@ class WorkMonitor: public QObject, public WorkMonitorInterface
 {
     Q_OBJECT
 public:
+    WorkMonitor();
     void message(const QString & message) override;
     void message(const QString & message, int value) override;
     void setProgressMaximumValue(int max_value) override;
@@ -56,8 +57,8 @@ public:
 
 private :
     QTime _time;
-    int _max_value = 100;
-    int _timer_duration = 500;
+    int _max_value;
+    int _timer_duration;
 };
 
 #endif // WORKMONITOR_H
-- 
GitLab