From c5a19d9539ebc8f3323b7718e0dfadedc5d79bb4 Mon Sep 17 00:00:00 2001
From: Samuel Jones <samjones714@gmail.com>
Date: Mon, 5 Nov 2018 16:01:11 +0000
Subject: [PATCH] Re #23570 Reduce calls to fillrows()

---
 .../ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp  | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp b/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
index f6779ab1f70..48cca29fd12 100644
--- a/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
+++ b/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
@@ -44,8 +44,8 @@ ProjectRecoveryPresenter::~ProjectRecoveryPresenter() {
 
 bool ProjectRecoveryPresenter::startRecoveryView() {
   try {
-    m_openView = RecoveryView;
     m_recView = new ProjectRecoveryView(m_mainWindow, this);
+    m_openView = RecoveryView;
     m_recView->exec();
   } catch (...) {
     return true;
@@ -65,8 +65,8 @@ bool ProjectRecoveryPresenter::startRecoveryView() {
 
 bool ProjectRecoveryPresenter::startRecoveryFailure() {
   try {
-    m_openView = FailureView;
     m_failureView = new RecoveryFailureView(m_mainWindow, this);
+    m_openView = FailureView;
     m_failureView->exec();
   } catch (...) {
     return true;
@@ -182,4 +182,9 @@ void ProjectRecoveryPresenter::changeStartMantidToCancelLabel() {
   }
 }
 
-void ProjectRecoveryPresenter::fillAllRows() { m_model->fillRows(); }
\ No newline at end of file
+void ProjectRecoveryPresenter::fillAllRows() {
+  // Only allow this to run once, first run will have value RecoveryView
+  if (m_openView == RecoveryView) {
+    m_model->fillRows();
+  }
+}
\ No newline at end of file
-- 
GitLab