diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWRunFiles.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWRunFiles.h index 5b733cc5974a73e2ea56ab11182cc5b9805e9171..96a6c63e8771ab758545f8b9f5163c87b7f1ae27 100644 --- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWRunFiles.h +++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MWRunFiles.h @@ -240,6 +240,8 @@ signals: void liveButtonPressed(bool); /// Signal emitted after asynchronous checking of live stream availability void liveButtonSetEnabledSignal(bool); + /// Emitted when inspection of any found files is completed + void fileInspectionFinished(); public slots: /// Set the file text and try and find it diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonSequentialFitDialog.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonSequentialFitDialog.h index 8807f5667b21ff6f5d551a764b5f6a1c21c6a8ff..e4424425c5a685c1d8005a5ebd039de9ee33bc45 100644 --- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonSequentialFitDialog.h +++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonSequentialFitDialog.h @@ -128,6 +128,9 @@ namespace MantidWidgets /// Stop fitting process void stopFit(); + /// Run fit after getting file input + void continueFit(); + }; diff --git a/MantidQt/MantidWidgets/src/MWRunFiles.cpp b/MantidQt/MantidWidgets/src/MWRunFiles.cpp index 18df2f32dbf03823122ce319c569550c99f831a2..f8a8ea891d0c9e53fba8839c4995c8e5957e7a42 100644 --- a/MantidQt/MantidWidgets/src/MWRunFiles.cpp +++ b/MantidQt/MantidWidgets/src/MWRunFiles.cpp @@ -812,6 +812,8 @@ void MWRunFiles::inspectThreadResult() { setFileProblem(""); } + emit fileInspectionFinished(); + // Only emit the signal if file(s) were found if (!m_foundFiles.isEmpty()) emit filesFound(); diff --git a/MantidQt/MantidWidgets/src/MuonSequentialFitDialog.cpp b/MantidQt/MantidWidgets/src/MuonSequentialFitDialog.cpp index 4c4a06d124606a998cf8e33876cd8695691d71a6..ece05ee74d4c033e9322bcb58e2f7733c7959f4d 100644 --- a/MantidQt/MantidWidgets/src/MuonSequentialFitDialog.cpp +++ b/MantidQt/MantidWidgets/src/MuonSequentialFitDialog.cpp @@ -279,7 +279,8 @@ void MuonSequentialFitDialog::updateCursor(DialogState newState) { } /** - * Start fitting process. + * Start fitting process by running file search. + * Once search is complete, fit continues in continueFit(). */ void MuonSequentialFitDialog::startFit() { if (m_state != Stopped) @@ -291,16 +292,19 @@ void MuonSequentialFitDialog::startFit() { // straight after editing the run box. In that case, lost focus event might // not be processed yet and search might not have been started yet. // Otherwise, search is not done as the widget sees that it has not been - // changed. Taken from LoadDialog.cpp:124. + // changed. + connect(m_ui.runs, SIGNAL(fileInspectionFinished()), this, + SLOT(continueFit())); m_ui.runs->findFiles(); +} - // Wait for file search to finish. - while (m_ui.runs->isSearching()) { - QApplication::processEvents(); - } - - // To process events from the finished thread - QApplication::processEvents(); +/** + * Carries out the fitting process once the file search has completed. + * Called when the run control reports that its search has finished. + */ +void MuonSequentialFitDialog::continueFit() { + disconnect(m_ui.runs, SIGNAL(fileInspectionFinished()), this, + SLOT(continueFit())); // Validate input fields if (!isInputValid()) {