From 19188f702729b543565fd2154293c12e671246b5 Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Sat, 11 May 2019 07:25:15 +0200
Subject: [PATCH] build tandem run dialog only when it is required

---
 src/gui/mainwindow.cpp | 29 +++++++++--------------------
 1 file changed, 9 insertions(+), 20 deletions(-)

diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index b76b6ad12..bce4fb0de 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -52,7 +52,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::Main)
   _p_load_results_dialog       = new LoadResultsDialog(this);
   _p_export_spreadsheet_dialog = new ExportSpreadsheetDialog(this);
   _p_waiting_message_dialog    = new WaitingMessageDialog(this);
-  _p_tandem_run_dialog         = new TandemRunDialog(this);
 
 
   _project_window = new ProjectWindow(this);
@@ -73,10 +72,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::Main)
 
 #if QT_VERSION >= 0x050000
   // Qt5 code
-  connect(_p_tandem_run_dialog,
-          &TandemRunDialog::accepted,
-          this,
-          &MainWindow::doAcceptedTandemRunDialog);
   connect(_p_load_results_dialog,
           &LoadResultsDialog::accepted,
           this,
@@ -90,21 +85,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::Main)
           this,
           &MainWindow::doCheckNewVersion);
 #else
-  // Qt4 code
-
-  connect(_p_tandem_run_dialog,
-          SIGNAL(accepted()),
-          this,
-          SLOT(doAcceptedTandemRunDialog()));
-  connect(_p_load_results_dialog,
-          SIGNAL(accepted()),
-          this,
-          SLOT(doAcceptedLoadResultDialog()));
-  connect(_p_export_spreadsheet_dialog,
-          SIGNAL(accepted()),
-          this,
-          SLOT(doAcceptedExportSpreadsheetDialog()));
-
 #endif
 }
 
@@ -253,6 +233,7 @@ MainWindow::doAcceptedTandemRunDialog()
 {
   qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
   showWaitingMessage(tr("Running X!Tandem"));
+
   emit operateRunningXtandem(_p_tandem_run_dialog->getTandemRunBatch());
   qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
 }
@@ -355,6 +336,14 @@ MainWindow::doProjectNotReady(QString error)
 void
 MainWindow::doActionTandemRun()
 {
+  if(_p_tandem_run_dialog == nullptr)
+    {
+      _p_tandem_run_dialog = new TandemRunDialog(this);
+      connect(_p_tandem_run_dialog,
+              &TandemRunDialog::accepted,
+              this,
+              &MainWindow::doAcceptedTandemRunDialog);
+    }
   _p_tandem_run_dialog->show();
   _p_tandem_run_dialog->raise();
   _p_tandem_run_dialog->activateWindow();
-- 
GitLab