diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index b5f847545c064a71a481c008058405a5d1081906..df2ad7d40c8cdb5632be187650db383cb61f0caf 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -128,8 +128,8 @@ void MainWindow::doDisplayLoadingMessage(QString message) {
     ui->statusbar->showMessage(message);
 }
 
-void MainWindow::doDisplayLoadingMessage(QString message, int value) {
-    qDebug() << "MainWindow::doDisplayLoadingMessage " <<  message << " " << value;
+void MainWindow::doDisplayLoadingMessagePercent(QString message, int value) {
+    qDebug() << "MainWindow::doDisplayLoadingMessagePercent " <<  message << " " << value;
     _p_waiting_message_dialog->message(message, value);
     ui->statusbar->showMessage(message);
 }
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index 7b7529b9838f56fc48008fcf0ca395a18b69451c..f55e70742f48c9f333f42bec184f00b02e17ed0d 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -69,7 +69,7 @@ public slots:
     void doActionSpreadsheet();
     void doActionModifications();
     void doDisplayLoadingMessage(QString message);
-    void doDisplayLoadingMessage(QString message, int value);
+    void doDisplayLoadingMessagePercent(QString message, int value);
     void doWorkerAppendText(char *);
     void doProjectReady(ProjectSp project_sp);
     void doProjectNotReady(QString error);
diff --git a/src/gui/project_view/projectwindow.cpp b/src/gui/project_view/projectwindow.cpp
index 2dc7ad558d67a5d00149c1aaec1316c1de792418..90b11fee1f7d69fb42191c9cdcc83ff3f544530a 100644
--- a/src/gui/project_view/projectwindow.cpp
+++ b/src/gui/project_view/projectwindow.cpp
@@ -312,6 +312,11 @@ void ProjectWindow::doDisplayLoadingMessage(QString message) {
     _p_waiting_message_dialog->message(message);
 }
 
+void ProjectWindow::doDisplayLoadingMessagePercent(QString message, int value) {
+    qDebug() << "ProjectWindow::doDisplayLoadingMessagePercent " <<  message << " " << value;
+    _p_waiting_message_dialog->message(message, value);
+}
+
 void ProjectWindow::doGroupingFinished() {
     qDebug() << "ProjectWindow::doGroupingFinished begin " ;
     hideWaitingMessage();
diff --git a/src/gui/project_view/projectwindow.h b/src/gui/project_view/projectwindow.h
index 7c517980971cf2a04bc1f9d8197f9ac0648ac802..773d4a756f61ee7118b6401a79f30b101d5d6285 100644
--- a/src/gui/project_view/projectwindow.h
+++ b/src/gui/project_view/projectwindow.h
@@ -71,6 +71,7 @@ public slots:
     void doOperationFinished();
     void doGroupingFinished();
     void doDisplayLoadingMessage(QString message);
+    void doDisplayLoadingMessagePercent(QString message, int value);
     void refreshGroup(IdentificationGroup * p_ident_group);
     void refreshPtmGroup(IdentificationGroup * p_ident_group);
     void doAcceptedLabelingMethod();
diff --git a/src/gui/ptm_island_list_view/ptmislandlistwindow.cpp b/src/gui/ptm_island_list_view/ptmislandlistwindow.cpp
index 8d8bd778438b9231b90041fc7ab8187cd5e5cb43..2cd526e9b257c88fdc9c4b54ead89933d5b409f0 100644
--- a/src/gui/ptm_island_list_view/ptmislandlistwindow.cpp
+++ b/src/gui/ptm_island_list_view/ptmislandlistwindow.cpp
@@ -58,11 +58,11 @@ PtmIslandListWindow::PtmIslandListWindow(ProjectWindow *parent):
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
-    /*
-    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
-    connect(this, &PtSpectrumViewer::operateMsDataFile, worker, &PwizLoaderThread::doMsDataFileLoad);
-    connect(worker, &PwizLoaderThread::msDataReady, this, &PtSpectrumViewer::handleMsDataFile);
-    */
+    connect (this, &PtmIslandListWindow::ptmIslandDataChanged, _ptm_table_model_p, &PtmIslandTableModel::onPtmIslandDataChanged);
+
+    connect (_project_window, &ProjectWindow::identificationPtmGroupGrouped, this,&PtmIslandListWindow::doIdentificationPtmGroupGrouped);
+    connect (_project_window, &ProjectWindow::identificationGroupGrouped, this,&PtmIslandListWindow::doIdentificationGroupGrouped);
+    connect(ui->ptm_island_tableview, &QTableView::clicked, _ptm_proxy_model_p, &PtmIslandProxyModel::onTableClicked);
 #else
 // Qt4 code
     connect (this, SIGNAL(ptmIslandDataChanged()), _ptm_table_model_p, SLOT(onPtmIslandDataChanged()));
diff --git a/src/gui/ptm_peptide_list_view/ptmpeptidelistwindow.cpp b/src/gui/ptm_peptide_list_view/ptmpeptidelistwindow.cpp
index d461b5f2f1c536fceefffb2d6590e67711817ae2..3a459722d72270797b27cf44e9b3a51490c22a4f 100644
--- a/src/gui/ptm_peptide_list_view/ptmpeptidelistwindow.cpp
+++ b/src/gui/ptm_peptide_list_view/ptmpeptidelistwindow.cpp
@@ -61,11 +61,8 @@ PtmPeptideListWindow::PtmPeptideListWindow(PtmIslandListWindow * parent):QMainWi
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
-    /*
-    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
-    connect(this, &PtSpectrumViewer::operateMsDataFile, worker, &PwizLoaderThread::doMsDataFileLoad);
-    connect(worker, &PwizLoaderThread::msDataReady, this, &PtSpectrumViewer::handleMsDataFile);
-    */
+    connect(ui->ptm_peptide_tableview, &QTableView::clicked, _ptm_proxy_model_p, &PtmPeptideTableProxyModel::onTableClicked);
+    connect (this, &PtmPeptideListWindow::requestPeptideDetailView, _p_ptm_island_list_window->getProjectWindowP(),&ProjectWindow::doViewPeptideDetail);
 #else
 // Qt4 code
     //connect (this, SIGNAL(ptmIslandDataChanged()), _ptm_table_model_p, SLOT(onPtmIslandDataChanged()));
diff --git a/src/gui/ptm_peptide_list_view/ptmpeptidetableproxymodel.cpp b/src/gui/ptm_peptide_list_view/ptmpeptidetableproxymodel.cpp
index 0689fcf69a16b82071fa766368f9975c7ef19fd6..2f03ac69091dd5c17bb6d61e57fee73ea0e3c65c 100644
--- a/src/gui/ptm_peptide_list_view/ptmpeptidetableproxymodel.cpp
+++ b/src/gui/ptm_peptide_list_view/ptmpeptidetableproxymodel.cpp
@@ -74,11 +74,7 @@ PtmPeptideMenuQaction::PtmPeptideMenuQaction(PtmPeptideTableProxyModel * parent,
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
-    /*
-    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
-    connect(this, &PtSpectrumViewer::operateMsDataFile, worker, &PwizLoaderThread::doMsDataFileLoad);
-    connect(worker, &PwizLoaderThread::msDataReady, this, &PtSpectrumViewer::handleMsDataFile);
-    */
+    connect (this, &PtmPeptideMenuQaction::triggered, this,&PtmPeptideMenuQaction::doTriggered);
 #else
 // Qt4 code
     connect (this, SIGNAL(triggered(bool)), this,SLOT(doTriggered(bool)));
diff --git a/src/gui/tandem_run_dialog/tandemrundialog.cpp b/src/gui/tandem_run_dialog/tandemrundialog.cpp
index c821ac80a5e025dd4e0aa7eade6f7f4d86c679c9..1ec6163851dde58ef97c9a6a9de352a0ff52e346 100644
--- a/src/gui/tandem_run_dialog/tandemrundialog.cpp
+++ b/src/gui/tandem_run_dialog/tandemrundialog.cpp
@@ -51,11 +51,6 @@ TandemRunDialog::TandemRunDialog(QWidget * parent):
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
-    /*
-    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
-    connect(this, &PtSpectrumViewer::operateMsDataFile, worker, &PwizLoaderThread::doMsDataFileLoad);
-    connect(worker, &PwizLoaderThread::msDataReady, this, &PtSpectrumViewer::handleMsDataFile);
-    */
 #else
 // Qt4 code
 
diff --git a/src/gui/workerthread.cpp b/src/gui/workerthread.cpp
index 115c9cf7c05ca90b86ba18524d7b99a7d07876f5..75c13c08747f51f31c5978212baf0056b593fef7 100644
--- a/src/gui/workerthread.cpp
+++ b/src/gui/workerthread.cpp
@@ -48,8 +48,8 @@ WorkerThread::WorkerThread(MainWindow * p_main_window)
 #if QT_VERSION >= 0x050000
     // Qt5 code
     //worker message
-    connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString)>(&WorkMonitor::workerMessage), p_main_window,static_cast<void (MainWindow::*)(QString)>(&MainWindow::doDisplayLoadingMessage));
-    connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString,int)>(&WorkMonitor::workerMessage), p_main_window,static_cast<void (MainWindow::*)(QString,int)>(&MainWindow::doDisplayLoadingMessage));
+    connect(_p_work_monitor, &WorkMonitor::workerMessage, p_main_window,&MainWindow::doDisplayLoadingMessage);
+    connect(_p_work_monitor, &WorkMonitor::workerMessagePercent, p_main_window,&MainWindow::doDisplayLoadingMessagePercent);
     connect(_p_work_monitor, &WorkMonitor::workerAppendText, p_main_window,&MainWindow::doWorkerAppendText);
     
     connect(p_main_window, &MainWindow::operateXpipFile, this,&WorkerThread::doXpipFileLoad);
@@ -58,7 +58,7 @@ WorkerThread::WorkerThread(MainWindow * p_main_window)
     connect(p_main_window, &MainWindow::operateLoadingResults, this,&WorkerThread::doLoadingResults);
 
     connect(p_main_window, &MainWindow::operateRunningXtandem, this,&WorkerThread::doRunningXtandem);
-    connect(this, static_cast<void (WorkerThread::*)(QString)>(&WorkerThread::loadingMessage), p_main_window,static_cast<void (MainWindow::*)(QString)>(&MainWindow::doDisplayLoadingMessage));
+    connect(this, &WorkerThread::loadingMessage, p_main_window,&MainWindow::doDisplayLoadingMessage);
     connect(this, &WorkerThread::projectNotReady, p_main_window,&MainWindow::doProjectNotReady);
 
     //grouping
@@ -114,10 +114,9 @@ WorkerThread::WorkerThread(ProjectWindow * p_project_window)
     // Qt5 code
     
     //worker message
-    connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString)>(&WorkMonitor::workerMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString)>(&ProjectWindow::doDisplayLoadingMessage));    
-    //connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString, int)>(&WorkMonitor::workerMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString, int)>(&ProjectWindow::doDisplayLoadingMessage));
-
-    connect(this, static_cast<void (WorkerThread::*)(QString)>(&WorkerThread::loadingMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString)>(&ProjectWindow::doDisplayLoadingMessage));
+    connect(_p_work_monitor, &WorkMonitor::workerMessage, p_project_window,&ProjectWindow::doDisplayLoadingMessage);
+    connect(_p_work_monitor, &WorkMonitor::workerMessagePercent, p_project_window,&ProjectWindow::doDisplayLoadingMessagePercent);
+    connect(this, &WorkerThread::loadingMessage, p_project_window,&ProjectWindow::doDisplayLoadingMessage);
     //grouping
     connect(p_project_window, &ProjectWindow::operateGrouping, this,&WorkerThread::doGrouping);
     connect(this, &WorkerThread::groupingFinished, p_project_window,&ProjectWindow::doGroupingFinished);
diff --git a/src/utils/workmonitor.cpp b/src/utils/workmonitor.cpp
index bd99cdb8149128ea31c3d6b839a2edce8161d239..a67d70c484c9a7175b70d01ada8449585e67037a 100644
--- a/src/utils/workmonitor.cpp
+++ b/src/utils/workmonitor.cpp
@@ -34,6 +34,7 @@
 WorkMonitor::WorkMonitor() {
     _max_value = 100;
     _timer_duration = 200;
+    _time.restart();
 }
 void WorkMonitor::message(const QString & message) {
     if (_time.elapsed() > _timer_duration) {
@@ -42,12 +43,12 @@ void WorkMonitor::message(const QString & message) {
     }
 }
 void WorkMonitor::message(const QString & message, int value) {
-    //qDebug() << "WorkMonitor::message " << value << " " << _max_value << " " << (value/_max_value)*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);
+        emit workerMessagePercent(message,percent);
     }
 }
 void WorkMonitor::setProgressMaximumValue(int max_value) {
diff --git a/src/utils/workmonitor.h b/src/utils/workmonitor.h
index 38e2df4c5f06c34ec64c68ad06bcef4ed0ce51c1..d347155190aedb1767ef6e63d449d52091bc458a 100644
--- a/src/utils/workmonitor.h
+++ b/src/utils/workmonitor.h
@@ -55,7 +55,7 @@ public:
     
     signals:
     void workerMessage(QString message);
-    void workerMessage(QString message, int value);
+    void workerMessagePercent(QString message, int value);
     void workerAppendText(char * p_char);
 
 private :